chemruby 0.9.3 → 1.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. data/README +2 -2
  2. data/Rakefile +67 -63
  3. data/ext/extconf.rb +2 -0
  4. data/ext/subcomp.c +461 -320
  5. data/ext/utils.c +56 -0
  6. data/ext/utils.h +13 -0
  7. data/lib/chem.rb +34 -8
  8. data/lib/chem/db.rb +8 -0
  9. data/lib/chem/db/cansmi.rb +1 -1
  10. data/lib/chem/db/cdx.rb +1 -1
  11. data/lib/chem/db/cml.rb +52 -0
  12. data/lib/chem/db/gd.rb +64 -0
  13. data/lib/chem/db/gspan.rb +2 -2
  14. data/lib/chem/db/kcf_rpair.rb +34 -0
  15. data/lib/chem/db/kegg.rb +35 -1
  16. data/lib/chem/db/mdl.rb +75 -34
  17. data/lib/chem/db/opsin.rb +24 -0
  18. data/lib/chem/db/pdb.rb +105 -0
  19. data/lib/chem/db/pdf.rb +2 -0
  20. data/lib/chem/db/pubchem.rb +1071 -88
  21. data/lib/chem/db/rmagick.rb +5 -3
  22. data/lib/chem/db/sdf.rb +28 -2
  23. data/lib/chem/db/smiles/smiles.ry +27 -25
  24. data/lib/chem/db/smiles/smiparser.rb +29 -27
  25. data/lib/chem/db/types/type_gd.rb +35 -0
  26. data/lib/chem/db/types/type_gspan.rb +2 -2
  27. data/lib/chem/db/types/type_kcf.rb +19 -0
  28. data/lib/chem/db/types/type_kegg.rb +2 -0
  29. data/lib/chem/db/types/type_mdl.rb +1 -1
  30. data/lib/chem/db/types/type_png.rb +5 -1
  31. data/lib/chem/db/types/type_rdf.rb +22 -0
  32. data/lib/chem/db/types/type_xyz.rb +1 -1
  33. data/lib/chem/db/vector.rb +19 -3
  34. data/lib/chem/model.rb +5 -2
  35. data/lib/chem/utils.rb +17 -1
  36. data/lib/chem/utils/bitdb.rb +49 -0
  37. data/lib/chem/utils/cas.rb +28 -0
  38. data/lib/chem/utils/cdk.rb +403 -0
  39. data/lib/chem/utils/fingerprint.rb +98 -0
  40. data/lib/chem/utils/geometry.rb +8 -0
  41. data/lib/chem/utils/net.rb +303 -0
  42. data/lib/chem/utils/once.rb +28 -0
  43. data/lib/chem/utils/openbabel.rb +204 -0
  44. data/lib/chem/utils/sssr.rb +33 -25
  45. data/lib/chem/utils/sub.rb +6 -0
  46. data/lib/chem/utils/transform.rb +9 -8
  47. data/lib/chem/utils/ullmann.rb +138 -95
  48. data/lib/graph.rb +5 -6
  49. data/lib/graph/utils.rb +8 -0
  50. data/sample/calc_maximum_common_subgraph.rb +27 -0
  51. data/sample/calc_properties.rb +9 -0
  52. data/sample/data/atp.mol +69 -0
  53. data/sample/data/pioglitazone.mol +58 -0
  54. data/sample/data/rosiglitazone.mol +55 -0
  55. data/sample/data/troglitazone.mol +70 -0
  56. data/sample/find_compound_by_keggapi.rb +19 -0
  57. data/sample/generate_inchi.rb +7 -0
  58. data/sample/generate_substructurekey.rb +11 -0
  59. data/sample/images/ex6.rb +17 -0
  60. data/sample/images/ex7.rb +18 -0
  61. data/sample/iupac2mol.rb +8 -0
  62. data/sample/kekule.rb +13 -0
  63. data/sample/logp.rb +4 -0
  64. data/sample/mcs.rb +13 -0
  65. data/sample/mol2pdf.rb +8 -0
  66. data/sample/pubchem_fetch.rb +8 -0
  67. data/sample/pubchem_search.rb +12 -0
  68. data/sample/rosiglitazone.mol +57 -0
  69. data/sample/smarts.rb +10 -0
  70. data/sample/structure_match.rb +8 -0
  71. data/sample/structure_match_color.rb +22 -0
  72. data/sample/thiazolidinedione.mol +19 -0
  73. data/sample/troglitazone.mol +232 -0
  74. data/sample/vicinity.rb +8 -0
  75. data/test/data/CID_704.sdf +236 -0
  76. data/test/data/CID_994.sdf +146 -0
  77. data/test/data/db_EXPT03276.txt +321 -0
  78. data/test/data/pioglitazone.mol +58 -0
  79. data/test/data/rosiglitazone.mol +55 -0
  80. data/test/data/thiazolidinedione.mol +19 -0
  81. data/test/data/troglitazone.mol +70 -0
  82. data/test/{test_adj.rb → tc_adj.rb} +0 -0
  83. data/test/{test_canonical_smiles.rb → tc_canonical_smiles.rb} +0 -0
  84. data/test/tc_casrn.rb +17 -0
  85. data/test/tc_cdk.rb +89 -0
  86. data/test/{test_cdx.rb → tc_cdx.rb} +0 -0
  87. data/test/{test_chem.rb → tc_chem.rb} +0 -0
  88. data/test/{test_cluster.rb → tc_cluster.rb} +0 -0
  89. data/test/{test_db.rb → tc_db.rb} +0 -0
  90. data/test/tc_develop.rb +38 -0
  91. data/test/tc_drugbank.rb +13 -0
  92. data/test/{test_eps.rb → tc_eps.rb} +0 -0
  93. data/test/tc_gd.rb +8 -0
  94. data/test/{test_geometry.rb → tc_geometry.rb} +0 -0
  95. data/test/tc_graph.rb +15 -0
  96. data/test/{test_gspan.rb → tc_gspan.rb} +0 -0
  97. data/test/{test_iupac.rb → tc_iupac.rb} +0 -0
  98. data/test/{test_kcf.rb → tc_kcf.rb} +0 -0
  99. data/test/{test_kcf_glycan.rb → tc_kcf_glycan.rb} +0 -0
  100. data/test/{test_kegg.rb → tc_kegg.rb} +13 -0
  101. data/test/{test_linucs.rb → tc_linucs.rb} +0 -0
  102. data/test/{test_mdl.rb → tc_mdl.rb} +20 -0
  103. data/test/{test_mol2.rb → tc_mol2.rb} +1 -1
  104. data/test/{test_morgan.rb → tc_morgan.rb} +0 -0
  105. data/test/tc_net.rb +5 -0
  106. data/test/tc_once.rb +29 -0
  107. data/test/tc_openbabel.rb +57 -0
  108. data/test/{test_pdf.rb → tc_pdf.rb} +0 -0
  109. data/test/{test_prop.rb → tc_prop.rb} +1 -1
  110. data/test/tc_pubchem.rb +32 -0
  111. data/test/{test_rmagick.rb → tc_rmagick.rb} +0 -0
  112. data/test/{test_sbdb.rb → tc_sbdb.rb} +0 -0
  113. data/test/{test_sdf.rb → tc_sdf.rb} +2 -0
  114. data/test/{test_smiles.rb → tc_smiles.rb} +46 -30
  115. data/test/tc_sssr.rb +1 -0
  116. data/test/{test_sub.rb → tc_sub.rb} +0 -0
  117. data/test/tc_subcomp.rb +59 -0
  118. data/test/{test_traverse.rb → tc_traverse.rb} +0 -0
  119. data/test/{test_writer.rb → tc_writer.rb} +0 -0
  120. data/test/{test_xyz.rb → tc_xyz.rb} +0 -0
  121. data/test/ts_current.rb +11 -0
  122. data/test/ts_image.rb +6 -0
  123. data/test/ts_main.rb +12 -0
  124. metadata +259 -194
  125. data/lib/chem/utils/graph_db.rb +0 -146
  126. data/test/test_sssr.rb +0 -18
  127. data/test/test_subcomp.rb +0 -37
@@ -0,0 +1,8 @@
1
+
2
+ module Graph
3
+
4
+ # Returns Terminal Nodes
5
+ def terminal_nodes
6
+ self.nodes.find_all{|node| self.adjacent_to(node).length == 1}
7
+ end
8
+ end
@@ -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
+
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'chem'
5
+
6
+ Dir.glob("*.mol").each do |file|
7
+ mol = Chem.load(file)
8
+ p [mol.cdk_xlogp, mol.cdk_wiener_numbers]
9
+ end
@@ -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,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'chem'
5
+
6
+ mol = Chem.load("troglitazone.mol")
7
+ puts mol.to_inchi
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'chem'
5
+
6
+ molfile = ARGV.shift
7
+ mols = Chem.load(molfile, :sdf)
8
+ sk = mols.to_a[0].pubchem_subskeys
9
+ puts "%0880b" % sk
10
+ p sk.to_bit_positions
11
+ p sk.to_bit_positions.length
@@ -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")
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'chem'
5
+
6
+ iupac_name = "5-[[4-[2-(methyl-pyridin-2-yl-amino)ethoxy]phenyl]methyl]-1,3-thiazolidine-2,4-dione"
7
+ opsin_mol = Chem.opsin_parse(iupac_name)
8
+ opsin_mol.save("rosiglitazone.mol")
@@ -0,0 +1,13 @@
1
+ require 'chem'
2
+
3
+ benzene = SMILES("C1=CC=CC=C1").cdk_setup
4
+
5
+ # Faulon, JCICS 1996, 36, 731
6
+
7
+ 16.times do |n|
8
+ benzene.\
9
+ cdk_generate_randomly.\
10
+ cdk_generate_2D.\
11
+ cdk_save_as("temp/benzene#{n}.png")
12
+ end
13
+
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'chem'
3
+ #test/data/atp.mol
4
+ p Chem.load("data/atp.mol").cdk_xlogp
@@ -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
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'chem'
5
+
6
+ mol=Chem.load("rosiglitazone.mol")
7
+ mol2 = mol.cdk_calc_2d
8
+ mol2.save("rosiglitazone.pdf")
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'open-uri'
4
+
5
+ cid = ARGV.shift
6
+ url = "http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi?cid=#{cid}&disopt=DisplaySDF"
7
+ sdf = open(url).read
8
+ puts sdf