chemruby 0.9.3 → 1.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README +2 -2
- data/Rakefile +67 -63
- data/ext/extconf.rb +2 -0
- data/ext/subcomp.c +461 -320
- data/ext/utils.c +56 -0
- data/ext/utils.h +13 -0
- data/lib/chem.rb +34 -8
- data/lib/chem/db.rb +8 -0
- data/lib/chem/db/cansmi.rb +1 -1
- data/lib/chem/db/cdx.rb +1 -1
- data/lib/chem/db/cml.rb +52 -0
- data/lib/chem/db/gd.rb +64 -0
- data/lib/chem/db/gspan.rb +2 -2
- data/lib/chem/db/kcf_rpair.rb +34 -0
- data/lib/chem/db/kegg.rb +35 -1
- data/lib/chem/db/mdl.rb +75 -34
- data/lib/chem/db/opsin.rb +24 -0
- data/lib/chem/db/pdb.rb +105 -0
- data/lib/chem/db/pdf.rb +2 -0
- data/lib/chem/db/pubchem.rb +1071 -88
- data/lib/chem/db/rmagick.rb +5 -3
- data/lib/chem/db/sdf.rb +28 -2
- data/lib/chem/db/smiles/smiles.ry +27 -25
- data/lib/chem/db/smiles/smiparser.rb +29 -27
- data/lib/chem/db/types/type_gd.rb +35 -0
- data/lib/chem/db/types/type_gspan.rb +2 -2
- data/lib/chem/db/types/type_kcf.rb +19 -0
- data/lib/chem/db/types/type_kegg.rb +2 -0
- data/lib/chem/db/types/type_mdl.rb +1 -1
- data/lib/chem/db/types/type_png.rb +5 -1
- data/lib/chem/db/types/type_rdf.rb +22 -0
- data/lib/chem/db/types/type_xyz.rb +1 -1
- data/lib/chem/db/vector.rb +19 -3
- data/lib/chem/model.rb +5 -2
- data/lib/chem/utils.rb +17 -1
- data/lib/chem/utils/bitdb.rb +49 -0
- data/lib/chem/utils/cas.rb +28 -0
- data/lib/chem/utils/cdk.rb +403 -0
- data/lib/chem/utils/fingerprint.rb +98 -0
- data/lib/chem/utils/geometry.rb +8 -0
- data/lib/chem/utils/net.rb +303 -0
- data/lib/chem/utils/once.rb +28 -0
- data/lib/chem/utils/openbabel.rb +204 -0
- data/lib/chem/utils/sssr.rb +33 -25
- data/lib/chem/utils/sub.rb +6 -0
- data/lib/chem/utils/transform.rb +9 -8
- data/lib/chem/utils/ullmann.rb +138 -95
- data/lib/graph.rb +5 -6
- data/lib/graph/utils.rb +8 -0
- data/sample/calc_maximum_common_subgraph.rb +27 -0
- data/sample/calc_properties.rb +9 -0
- data/sample/data/atp.mol +69 -0
- data/sample/data/pioglitazone.mol +58 -0
- data/sample/data/rosiglitazone.mol +55 -0
- data/sample/data/troglitazone.mol +70 -0
- data/sample/find_compound_by_keggapi.rb +19 -0
- data/sample/generate_inchi.rb +7 -0
- data/sample/generate_substructurekey.rb +11 -0
- data/sample/images/ex6.rb +17 -0
- data/sample/images/ex7.rb +18 -0
- data/sample/iupac2mol.rb +8 -0
- data/sample/kekule.rb +13 -0
- data/sample/logp.rb +4 -0
- data/sample/mcs.rb +13 -0
- data/sample/mol2pdf.rb +8 -0
- data/sample/pubchem_fetch.rb +8 -0
- data/sample/pubchem_search.rb +12 -0
- data/sample/rosiglitazone.mol +57 -0
- data/sample/smarts.rb +10 -0
- data/sample/structure_match.rb +8 -0
- data/sample/structure_match_color.rb +22 -0
- data/sample/thiazolidinedione.mol +19 -0
- data/sample/troglitazone.mol +232 -0
- data/sample/vicinity.rb +8 -0
- data/test/data/CID_704.sdf +236 -0
- data/test/data/CID_994.sdf +146 -0
- data/test/data/db_EXPT03276.txt +321 -0
- data/test/data/pioglitazone.mol +58 -0
- data/test/data/rosiglitazone.mol +55 -0
- data/test/data/thiazolidinedione.mol +19 -0
- data/test/data/troglitazone.mol +70 -0
- data/test/{test_adj.rb → tc_adj.rb} +0 -0
- data/test/{test_canonical_smiles.rb → tc_canonical_smiles.rb} +0 -0
- data/test/tc_casrn.rb +17 -0
- data/test/tc_cdk.rb +89 -0
- data/test/{test_cdx.rb → tc_cdx.rb} +0 -0
- data/test/{test_chem.rb → tc_chem.rb} +0 -0
- data/test/{test_cluster.rb → tc_cluster.rb} +0 -0
- data/test/{test_db.rb → tc_db.rb} +0 -0
- data/test/tc_develop.rb +38 -0
- data/test/tc_drugbank.rb +13 -0
- data/test/{test_eps.rb → tc_eps.rb} +0 -0
- data/test/tc_gd.rb +8 -0
- data/test/{test_geometry.rb → tc_geometry.rb} +0 -0
- data/test/tc_graph.rb +15 -0
- data/test/{test_gspan.rb → tc_gspan.rb} +0 -0
- data/test/{test_iupac.rb → tc_iupac.rb} +0 -0
- data/test/{test_kcf.rb → tc_kcf.rb} +0 -0
- data/test/{test_kcf_glycan.rb → tc_kcf_glycan.rb} +0 -0
- data/test/{test_kegg.rb → tc_kegg.rb} +13 -0
- data/test/{test_linucs.rb → tc_linucs.rb} +0 -0
- data/test/{test_mdl.rb → tc_mdl.rb} +20 -0
- data/test/{test_mol2.rb → tc_mol2.rb} +1 -1
- data/test/{test_morgan.rb → tc_morgan.rb} +0 -0
- data/test/tc_net.rb +5 -0
- data/test/tc_once.rb +29 -0
- data/test/tc_openbabel.rb +57 -0
- data/test/{test_pdf.rb → tc_pdf.rb} +0 -0
- data/test/{test_prop.rb → tc_prop.rb} +1 -1
- data/test/tc_pubchem.rb +32 -0
- data/test/{test_rmagick.rb → tc_rmagick.rb} +0 -0
- data/test/{test_sbdb.rb → tc_sbdb.rb} +0 -0
- data/test/{test_sdf.rb → tc_sdf.rb} +2 -0
- data/test/{test_smiles.rb → tc_smiles.rb} +46 -30
- data/test/tc_sssr.rb +1 -0
- data/test/{test_sub.rb → tc_sub.rb} +0 -0
- data/test/tc_subcomp.rb +59 -0
- data/test/{test_traverse.rb → tc_traverse.rb} +0 -0
- data/test/{test_writer.rb → tc_writer.rb} +0 -0
- data/test/{test_xyz.rb → tc_xyz.rb} +0 -0
- data/test/ts_current.rb +11 -0
- data/test/ts_image.rb +6 -0
- data/test/ts_main.rb +12 -0
- metadata +259 -194
- data/lib/chem/utils/graph_db.rb +0 -146
- data/test/test_sssr.rb +0 -18
- data/test/test_subcomp.rb +0 -37
data/lib/graph/utils.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'chem'
|
5
|
+
|
6
|
+
troglitazone = Chem.load("troglitazone.mol")
|
7
|
+
rosiglitazone = Chem.load("rosiglitazone.mol")
|
8
|
+
|
9
|
+
mcs = troglitazone.cdk_mcs(rosiglitazone)
|
10
|
+
|
11
|
+
map = mcs[0].match(troglitazone)[0]
|
12
|
+
|
13
|
+
map.each_value do |atom|
|
14
|
+
atom.color = [1, 0, 0]
|
15
|
+
end
|
16
|
+
|
17
|
+
troglitazone.edges.each do |bond, from, to|
|
18
|
+
if map.values.include?(from) and map.values.include?(to)
|
19
|
+
bond.color = [1, 0, 0]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
troglitazone.remove_hydrogens!
|
24
|
+
troglitazone.save("mcs.pdf")
|
25
|
+
|
26
|
+
|
27
|
+
|
data/sample/data/atp.mol
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
|
2
|
+
-ISIS- 02070623502D
|
3
|
+
|
4
|
+
31 33 0 0 0 0 0 0 0 0999 V2000
|
5
|
+
2.4776 -1.7290 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
6
|
+
0.6787 -1.6299 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
7
|
+
1.6694 0.2591 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
8
|
+
-0.3254 -0.5277 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
9
|
+
2.3200 -0.2785 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
|
10
|
+
2.0257 -1.0363 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
11
|
+
1.1912 -0.9888 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
12
|
+
0.9734 -0.1896 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
13
|
+
0.2042 0.1028 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
14
|
+
4.4581 0.1598 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
15
|
+
5.1745 0.5731 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
16
|
+
5.1716 1.4037 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
17
|
+
4.4563 1.8128 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
18
|
+
2.9639 1.6550 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
19
|
+
2.4765 0.9902 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
20
|
+
2.9582 0.3213 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0
|
21
|
+
3.7432 0.5727 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
22
|
+
3.7468 1.3970 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
23
|
+
4.4519 2.6378 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
24
|
+
-1.1542 -0.5208 0.0000 P 0 0 3 0 0 0 0 0 0 0 0 0
|
25
|
+
-1.9792 -0.5208 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
26
|
+
-1.1583 0.3042 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
27
|
+
-1.1583 -1.3458 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
28
|
+
-2.8042 -0.5167 0.0000 P 0 0 3 0 0 0 0 0 0 0 0 0
|
29
|
+
-3.6292 -0.5125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
30
|
+
-2.8000 0.3083 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
31
|
+
-2.8083 -1.3417 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
32
|
+
-4.4542 -0.5125 0.0000 P 0 0 3 0 0 0 0 0 0 0 0 0
|
33
|
+
-5.2792 -0.5125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
34
|
+
-4.4542 0.3125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
35
|
+
-4.4542 -1.3375 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
36
|
+
8 9 1 1 0 0 0
|
37
|
+
9 4 1 0 0 0 0
|
38
|
+
6 1 1 6 0 0 0
|
39
|
+
14 15 2 0 0 0 0
|
40
|
+
16 17 1 0 0 0 0
|
41
|
+
18 14 1 0 0 0 0
|
42
|
+
15 16 1 0 0 0 0
|
43
|
+
5 16 1 1 0 0 0
|
44
|
+
7 2 1 6 0 0 0
|
45
|
+
13 19 1 0 0 0 0
|
46
|
+
4 20 1 0 0 0 0
|
47
|
+
17 10 1 0 0 0 0
|
48
|
+
20 21 1 0 0 0 0
|
49
|
+
8 3 1 0 0 0 0
|
50
|
+
20 22 2 0 0 0 0
|
51
|
+
10 11 2 0 0 0 0
|
52
|
+
20 23 1 0 0 0 0
|
53
|
+
8 7 1 0 0 0 0
|
54
|
+
21 24 1 0 0 0 0
|
55
|
+
11 12 1 0 0 0 0
|
56
|
+
24 25 1 0 0 0 0
|
57
|
+
3 5 1 0 0 0 0
|
58
|
+
24 26 2 0 0 0 0
|
59
|
+
12 13 2 0 0 0 0
|
60
|
+
24 27 1 0 0 0 0
|
61
|
+
13 18 1 0 0 0 0
|
62
|
+
25 28 1 0 0 0 0
|
63
|
+
17 18 2 0 0 0 0
|
64
|
+
28 29 1 0 0 0 0
|
65
|
+
7 6 1 0 0 0 0
|
66
|
+
28 30 2 0 0 0 0
|
67
|
+
5 6 1 0 0 0 0
|
68
|
+
28 31 1 0 0 0 0
|
69
|
+
M END
|
@@ -0,0 +1,58 @@
|
|
1
|
+
pioglitazone.mol
|
2
|
+
ChemDraw06080600242D
|
3
|
+
|
4
|
+
26 27 0 0 0 0 0 0 0 0999 V2000
|
5
|
+
-4.2782 0.4874 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
6
|
+
-4.2782 -0.3376 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
7
|
+
-3.5637 -0.7501 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
8
|
+
-2.8493 -0.3376 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
9
|
+
-2.8493 0.4874 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
10
|
+
-3.5637 0.8999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
11
|
+
-2.1348 0.8999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
12
|
+
-1.4203 0.4874 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
13
|
+
-0.7059 0.8999 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
14
|
+
0.0086 0.4874 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
15
|
+
0.0086 -0.3376 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
16
|
+
0.7231 -0.7501 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
17
|
+
1.4376 -0.3376 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
18
|
+
1.4376 0.4874 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
19
|
+
0.7231 0.8999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
20
|
+
-4.9927 -0.7501 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
21
|
+
-4.9927 -1.5751 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
22
|
+
2.1520 -0.7501 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
23
|
+
2.8665 -0.3376 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
24
|
+
3.6202 -0.6731 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0
|
25
|
+
4.1722 -0.0600 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
26
|
+
3.7597 0.6544 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
27
|
+
2.9527 0.4829 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
28
|
+
4.9927 -0.1463 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
29
|
+
2.3396 1.0350 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
30
|
+
3.8977 1.5751 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
31
|
+
1 2 2 0
|
32
|
+
2 3 1 0
|
33
|
+
3 4 2 0
|
34
|
+
4 5 1 0
|
35
|
+
5 6 2 0
|
36
|
+
6 1 1 0
|
37
|
+
5 7 1 0
|
38
|
+
7 8 1 0
|
39
|
+
8 9 1 0
|
40
|
+
9 10 1 0
|
41
|
+
10 11 2 0
|
42
|
+
11 12 1 0
|
43
|
+
12 13 2 0
|
44
|
+
13 14 1 0
|
45
|
+
14 15 2 0
|
46
|
+
15 10 1 0
|
47
|
+
2 16 1 0
|
48
|
+
16 17 1 0
|
49
|
+
13 18 1 0
|
50
|
+
18 19 1 0
|
51
|
+
19 20 1 0
|
52
|
+
20 21 1 0
|
53
|
+
21 22 1 0
|
54
|
+
22 23 1 0
|
55
|
+
23 19 1 0
|
56
|
+
21 24 2 0
|
57
|
+
23 25 2 0
|
58
|
+
M END
|
@@ -0,0 +1,55 @@
|
|
1
|
+
Rosiglitazone.mol
|
2
|
+
ChemDraw06090600212D
|
3
|
+
|
4
|
+
24 26 0 0 0 0 0 0 0 0999 V2000
|
5
|
+
3.0227 0.7707 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
6
|
+
3.8477 0.7707 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0
|
7
|
+
4.1026 1.5553 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
8
|
+
3.4352 2.0402 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
9
|
+
2.7677 1.5553 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
10
|
+
2.5378 0.1032 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
11
|
+
1.7128 0.1032 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
12
|
+
1.3003 0.8177 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
13
|
+
0.4753 0.8177 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
14
|
+
0.0628 0.1032 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
15
|
+
0.4753 -0.6113 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
16
|
+
1.3003 -0.6113 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
17
|
+
-0.7622 0.1032 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
18
|
+
-1.1747 -0.6113 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
19
|
+
-1.9997 -0.6113 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
20
|
+
-2.4122 -1.3257 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
21
|
+
-3.2372 -1.3257 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
22
|
+
1.9831 1.8102 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
23
|
+
4.8872 1.8102 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
24
|
+
-3.6497 -0.6113 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
25
|
+
-4.4747 -0.6113 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
26
|
+
-4.8872 -1.3257 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
27
|
+
-4.4747 -2.0402 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
28
|
+
-3.6497 -2.0402 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
29
|
+
1 2 1 0
|
30
|
+
2 3 1 0
|
31
|
+
3 4 1 0
|
32
|
+
4 5 1 0
|
33
|
+
5 1 1 0
|
34
|
+
1 6 1 0
|
35
|
+
6 7 1 0
|
36
|
+
7 8 1 0
|
37
|
+
8 9 2 0
|
38
|
+
9 10 1 0
|
39
|
+
10 11 2 0
|
40
|
+
11 12 1 0
|
41
|
+
12 7 2 0
|
42
|
+
10 13 1 0
|
43
|
+
13 14 1 0
|
44
|
+
14 15 1 0
|
45
|
+
15 16 1 0
|
46
|
+
16 17 1 0
|
47
|
+
5 18 2 0
|
48
|
+
3 19 2 0
|
49
|
+
17 20 2 0
|
50
|
+
20 21 1 0
|
51
|
+
21 22 2 0
|
52
|
+
22 23 1 0
|
53
|
+
23 24 2 0
|
54
|
+
24 17 1 0
|
55
|
+
M END
|
@@ -0,0 +1,70 @@
|
|
1
|
+
troglitazone.mol
|
2
|
+
ChemDraw06080600252D
|
3
|
+
|
4
|
+
31 34 0 0 0 0 0 0 0 0999 V2000
|
5
|
+
-4.2071 0.3052 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
6
|
+
-4.2071 -0.5198 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
7
|
+
-3.4927 -0.9323 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
8
|
+
-2.7782 -0.5198 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
9
|
+
-2.7782 0.3052 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
10
|
+
-3.4927 0.7177 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
11
|
+
-2.0637 -0.9323 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
12
|
+
-1.3492 -0.5198 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
13
|
+
-1.3492 0.3052 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
14
|
+
-2.0637 0.7177 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
15
|
+
-0.9367 -1.2343 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
16
|
+
-0.6348 -0.1073 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
17
|
+
0.0797 -0.5198 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
18
|
+
0.7942 -0.1073 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
19
|
+
1.5086 -0.5198 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
20
|
+
2.2231 -0.1073 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
21
|
+
2.2231 0.7177 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
22
|
+
1.5086 1.1302 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
23
|
+
0.7942 0.7177 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
24
|
+
2.9376 1.1302 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
25
|
+
3.6521 0.7177 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
26
|
+
3.6521 -0.1073 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0
|
27
|
+
4.4367 -0.3622 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
28
|
+
4.9216 0.3052 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
29
|
+
4.4367 0.9727 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
30
|
+
4.6916 1.7573 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
31
|
+
4.6916 -1.1468 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
32
|
+
-3.4927 1.5427 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
33
|
+
-4.9216 -0.9323 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
34
|
+
-4.9216 0.7177 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
35
|
+
-3.4927 -1.7573 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
36
|
+
1 2 1 0
|
37
|
+
2 3 2 0
|
38
|
+
3 4 1 0
|
39
|
+
4 5 2 0
|
40
|
+
5 6 1 0
|
41
|
+
6 1 2 0
|
42
|
+
4 7 1 0
|
43
|
+
7 8 1 0
|
44
|
+
8 9 1 0
|
45
|
+
9 10 1 0
|
46
|
+
10 5 1 0
|
47
|
+
8 11 1 0
|
48
|
+
8 12 1 0
|
49
|
+
12 13 1 0
|
50
|
+
13 14 1 0
|
51
|
+
14 15 2 0
|
52
|
+
15 16 1 0
|
53
|
+
16 17 2 0
|
54
|
+
17 18 1 0
|
55
|
+
18 19 2 0
|
56
|
+
19 14 1 0
|
57
|
+
17 20 1 0
|
58
|
+
20 21 1 0
|
59
|
+
21 22 1 0
|
60
|
+
22 23 1 0
|
61
|
+
23 24 1 0
|
62
|
+
24 25 1 0
|
63
|
+
25 21 1 0
|
64
|
+
25 26 2 0
|
65
|
+
23 27 2 0
|
66
|
+
6 28 1 0
|
67
|
+
2 29 1 0
|
68
|
+
1 30 1 0
|
69
|
+
3 31 1 0
|
70
|
+
M END
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'chem'
|
5
|
+
require 'soap/wsdlDriver'
|
6
|
+
|
7
|
+
SMILES("C1C(=O)NC(=O)S1").save("thiazolidinedione.mol")
|
8
|
+
|
9
|
+
wsdl = "http://soap.genome.jp/KEGG.wsdl"
|
10
|
+
serv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
|
11
|
+
|
12
|
+
molfile = File.open("thiazolidinedione.mol").read
|
13
|
+
results = serv.search_drugs_by_subcomp(molfile, 1, 30)
|
14
|
+
|
15
|
+
results.each do |mol|
|
16
|
+
puts mol.target_id
|
17
|
+
url = "-f m #{mol.target_id}"
|
18
|
+
File.open(mol.target_id + ".mol", "w").print(serv.bget(url))
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
$: << '../../lib/'
|
2
|
+
$: << '../../ext/'
|
3
|
+
|
4
|
+
require 'chem'
|
5
|
+
|
6
|
+
mol = Chem.open_mol("ATP.mol")
|
7
|
+
query = Chem.open_mol("adenine.mol")
|
8
|
+
|
9
|
+
m = mol.match_by_ullmann(query)
|
10
|
+
matched_nodes = m.inject([]){|ret, i| ret.push(mol.nodes[i])}
|
11
|
+
|
12
|
+
mol.edges.each do |bond, atom1, atom2|
|
13
|
+
bond.color = [1, 0, 0] if matched_nodes.include?(atom1) and matched_nodes.include?(atom2)
|
14
|
+
end
|
15
|
+
|
16
|
+
mol.nodes.each{|node| node.visible = true unless node.element == :C}
|
17
|
+
mol.save("color.pdf")
|
@@ -0,0 +1,18 @@
|
|
1
|
+
$: << "../../lib"
|
2
|
+
$: << "../../ext"
|
3
|
+
|
4
|
+
require 'chem'
|
5
|
+
|
6
|
+
mol = Chem.open_mol("mol/atp.mol")
|
7
|
+
query = Chem.open_mol("mol/adenine.mol")
|
8
|
+
|
9
|
+
m = mol.match(query)
|
10
|
+
|
11
|
+
mol.edges.each do |bond, atom1, atom2|
|
12
|
+
bond.color = [1, 0, 0] if m.keys.include?(atom1) and m.keys.include?(atom2)
|
13
|
+
end
|
14
|
+
|
15
|
+
mol.nodes.each{|atom| atom.color = [1, 0, 0]}
|
16
|
+
|
17
|
+
mol.nodes.each{|node| node.visible = false unless node.element == :C}
|
18
|
+
mol.save("color.png")
|
data/sample/iupac2mol.rb
ADDED
data/sample/kekule.rb
ADDED
data/sample/logp.rb
ADDED
data/sample/mcs.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'chem'
|
2
|
+
|
3
|
+
mol1 = Chem.load("data/troglitazone.mol")
|
4
|
+
mol2 = Chem.load("data/rosiglitazone.mol")
|
5
|
+
|
6
|
+
mol1.cdk_mcs(mol2).each_with_index do |mol, idx|
|
7
|
+
mol1.hilight(mol.match(mol1)[0].values)
|
8
|
+
mol1.save("temp/mcs-1-#{idx}.pdf")
|
9
|
+
|
10
|
+
mol2.hilight(mol.match(mol2)[0].values)
|
11
|
+
mol2.save("temp/mcs-2-#{idx}.pdf")
|
12
|
+
|
13
|
+
end
|
data/sample/mol2pdf.rb
ADDED