, , :
, . , .
sqlite> create table atoms (id INT, atom TEXT, amino TEXT);
sqlite> insert into atoms VALUES (1, 'O', 'HOH');
sqlite> insert into atoms VALUES (2, 'A', 'ARG');
sqlite> insert into atoms VALUES (3, 'B', 'CYS');
sqlite> insert into atoms VALUES (4, 'C', 'SER');
sqlite> insert into atoms VALUES (5, 'D', 'ARG');
sqlite> insert into atoms VALUES (6, 'O1', 'HOH');
sqlite> insert into atoms VALUES (7, 'A1', 'ARG');
sqlite> insert into atoms VALUES (8, 'B1', 'CYS');
sqlite> insert into atoms VALUES (9, 'C1', 'SER');
sqlite> insert into atoms VALUES (10, 'D1', 'ARG');
sqlite> select * from atoms;
1|O|HOH
2|A|ARG
3|B|CYS
4|C|SER
5|D|ARG
6|O1|HOH
7|A1|ARG
8|B1|CYS
9|C1|SER
10|D1|ARG
UPD
:
sqlite> .headers ON
sqlite> .mode columns
sqlite> select * from atoms;
id atom amino
---------- ---------- ----------
1 O HOH
2 A ARG
3 B CYS
4 C SER
5 D ARG
6 O1 HOH
7 A1 ARG
8 B1 CYS
9 C1 SER
10 D1 ARG
sqlite> select * from contacts;
donor_id acceptor_id directness
---------- ----------- ----------
1 4 D
1 5 D
2 1 D
3 1 D
6 9 D
6 10 D
7 6 D
8 6 D
:
select
c1.donor_id, c2.acceptor_id, 'W' as directness
from
contacts c1, contacts c2, atoms a
where
c1.acceptor_id = c2.donor_id
and c1.acceptor_id=a.id
and a.amino='HOH'
UNION ALL
select
c1.donor_id, c2.donor_id, 'X' as directness
from
contacts c1, contacts c2, atoms a
where
c1.acceptor_id = c2.acceptor_id
and c1.acceptor_id=a.id
and a.amino='HOH'
and c1.donor_id < c2.donor_id
UNION ALL
select
c1.acceptor_id, c2.acceptor_id, 'X' as directness
from
contacts c1, contacts c2, atoms a
where
c1.donor_id = c2.donor_id
and c1.donor_id=a.id
and a.amino='HOH'
and c1.acceptor_id < c2.acceptor_id;
:
donor_id acceptor_id directness
---------- ----------- ----------
2 4 W
2 5 W
3 4 W
3 5 W
7 9 W
7 10 W
8 9 W
8 10 W
2 3 X
7 8 X
4 5 X
9 10 X