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,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,19 @@
1
+ thiazolidinedione.mol
2
+ ChemDraw06080600152D
3
+
4
+ 7 7 0 0 0 0 0 0 0 0999 V2000
5
+ -0.6898 -0.3011 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
6
+ 0.1352 -0.3011 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
7
+ 0.3901 0.4836 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
8
+ -0.2773 0.9685 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0
9
+ -0.9448 0.4836 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
10
+ 1.1747 0.7385 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
11
+ -1.1747 -0.9685 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
12
+ 1 2 1 0
13
+ 2 3 1 0
14
+ 3 4 1 0
15
+ 4 5 1 0
16
+ 5 1 1 0
17
+ 3 6 2 0
18
+ 1 7 2 0
19
+ 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
File without changes
@@ -0,0 +1,17 @@
1
+
2
+ require 'test/unit'
3
+
4
+ class CASRNTest < Test::Unit::TestCase
5
+
6
+ def test_validity
7
+ [
8
+ ["aaa", false],
9
+ ["107-07-3", true],
10
+ ["107-07-4", false],
11
+ ["aa-07-3", false],
12
+ ].each do |casrn, test|
13
+ assert_equal(casrn.is_valid_casrn?, test)
14
+ end
15
+ end
16
+
17
+ end
@@ -0,0 +1,89 @@
1
+ class CDKTest < Test::Unit::TestCase
2
+
3
+ def test_load_cdk_save_ob
4
+ mol = Chem::CDK::parse_smiles("C1CCC=N1")
5
+ mol2 = mol.cdk_generate_2D
6
+ mol2.use_open_babel
7
+ mol2.ob_save_as("temp/cdk2ob.mol", "mdl")
8
+ end
9
+
10
+ def t#est_random_generator
11
+ mol1 = Chem::CDK::parse_smiles("C1CCC=N1").cdk_generate_2D_mol
12
+ mol1.cdk_save_as("temp/original.png")
13
+ mol2 = mol1.cdk_generate_randomly.cdk_generate
14
+ mol2.cdk_save_as("temp/random.png")
15
+ end
16
+
17
+ def test_load_mdl
18
+ mol = Chem::CDK::parse_mdl(File.open($data_dir + "troglitazone.mol").read)
19
+ # mol.cdk_save_as("temp/troglitazone.png")
20
+ end
21
+
22
+ def test_load_cr_save_structure
23
+ troglitazone = Chem.load($data_dir + "troglitazone.mol")
24
+ mol = troglitazone.cdk_generate_2D
25
+ # mol.cdk_save_as("temp/troglitazone.png")
26
+ end
27
+
28
+ def test_common_subgraphs
29
+ troglitazone = Chem.load($data_dir + "troglitazone.mol")
30
+ pioglitazone = Chem.load($data_dir + "pioglitazone.mol")
31
+
32
+ troglitazone.cdk_mcs(pioglitazone).each_with_index do |mcs, i|
33
+ hash = mcs.match(troglitazone)[0]
34
+ hash.each do |from, to|
35
+ to.visible = true
36
+ to.color = [1, 0, 0]
37
+ end
38
+ troglitazone.save("temp/#{i}.pdf")
39
+ troglitazone.nodes.each{|atom| atom.color = [0, 0, 0]}
40
+ # RuntimeError: Fail: unknown method name `setMolecule'
41
+ # mol = mcs.cdk_generate_2D # ??
42
+ # mcs.cdk_save_as("temp/mcs-#{i}.png")
43
+ # mcs.save("temp.pdf")
44
+ end
45
+ end
46
+
47
+ def test_wiener
48
+ end
49
+
50
+ def get_sample
51
+ Chem.load($data_dir + "troglitazone.mol")
52
+ end
53
+
54
+ def test_CPSA
55
+ t = get_sample
56
+ t.cdk_CPSA.all?{|n| assert(n.kind_of?(Numeric))}
57
+ end
58
+
59
+ def test_RotatableBondsCount
60
+ t = get_sample
61
+ p t.cdk_RotatableBondsCount
62
+ end
63
+
64
+ def test_load
65
+ # Chem::CDK::load($data_dir + "troglitgazone")
66
+ end
67
+
68
+ def test_find_all_rings
69
+ t = get_sample
70
+ # p t.cdk_find_all_rings
71
+ end
72
+
73
+ def test_sssr
74
+ t = get_sample
75
+ require 'pp'
76
+ t.cdk_sssr.each do |ring|
77
+ p ring.length
78
+ end
79
+ end
80
+
81
+ def test_all_rings
82
+ t = get_sample
83
+ require 'pp'
84
+ t.cdk_find_all_rings.each do |ring|
85
+ p ring.length
86
+ end
87
+ end
88
+
89
+ end
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,38 @@
1
+
2
+ MolDir = "/home/tanaka/data/kegg/ligand/mol/C%05d.mol"
3
+
4
+ class DevelopmentTest < Test::Unit::TestCase
5
+
6
+ def test_net
7
+ # p Chem.search("pparg", :db => :pubmed)
8
+ # search adenine
9
+ res = Chem.search("CCC", :db => :pubchem)
10
+ # res = Chem.search("C1=NC2=C(N1)C(=NC=N2)N", :db => :pubchem)
11
+ sleep 3
12
+ res.fetch_all
13
+ #res.retrieve
14
+ end
15
+
16
+ end
17
+
18
+ __END__
19
+
20
+ class PendingTest < Test::Unit::TestCase
21
+
22
+ def test_raise
23
+ BitDatabase.new("temp/test.fng", 80) do |db|
24
+ assert_raise(Exception){ db.push([81]) }
25
+ db.push([24, 30, 32, 55])
26
+ end
27
+ end
28
+
29
+ def test_fingerprint
30
+ BitDatabase.open("temp/test2.fng", 80) do |db|
31
+ db.push([24, 30, 31, 32, 55])
32
+ assert(true)
33
+ end
34
+
35
+ BitDatabase.search("temp/test2.fng", [24, 30, 55])
36
+ end
37
+
38
+ end
@@ -0,0 +1,13 @@
1
+
2
+ # tentatively stopped
3
+
4
+ # class DrugBankTest < Test::Unit::TestCase
5
+ # def test_load
6
+ # entry = Chem::DrugBankEntry.load($data_dir + "db_EXPT03276.txt")
7
+ # assert_equal(6, entry.creation_date.month)
8
+ # assert_nil(entry.update_date)
9
+ # assert_equal("EXPT03276", entry.accession_no)
10
+ # assert_equal(403.477, entry.molecular_weight)
11
+ # assert_nil(entry.melting_point)
12
+ # end
13
+ # end
File without changes
@@ -0,0 +1,8 @@
1
+ require 'chem'
2
+
3
+ class GDTest < Test::Unit::TestCase
4
+
5
+ def test_gd
6
+ mol = Chem.open_mol($data_dir + "cyclohexane.mol")
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ class DummyGraph
2
+ include Graph
3
+ end
4
+
5
+ class GraphTest < Test::Unit::TestCase
6
+
7
+ def test_to_mdl
8
+ graph = DummyGraph.new
9
+ graph.nodes = [1, 2, 3]
10
+ graph.edges = [[0, 1, 2], [1, 2, 3]]
11
+
12
+ assert_equal([1, 3], graph.terminal_nodes)
13
+ end
14
+
15
+ end
File without changes
File without changes
File without changes
@@ -13,6 +13,19 @@ require 'chem/db/kegg'
13
13
 
14
14
  class KeggOpenTest < Test::Unit::TestCase
15
15
 
16
+ def test_coc
17
+ Chem::KEGG["C00147"]
18
+ assert_instance_of(Chem::KEGG::EC, Chem::KEGG["EC1.2.3.4"], "EC1.2.3.4")
19
+ assert_instance_of(Chem::KEGG::EC, Chem::KEGG["EC1.2.3.*"], "EC1.2.3.*")
20
+ assert_instance_of(Chem::KEGG::EC, Chem::KEGG["EC10.20.30.*"], "EC10.20.30.*")
21
+ assert_raises(Chem::KEGGException){
22
+ Chem::KEGG["Unknown"]
23
+ }
24
+ assert_raises(Chem::KEGGException){
25
+ Chem::KEGG["EC1"]
26
+ }
27
+ end
28
+
16
29
  def test_open
17
30
  # environment dependent test!
18
31
  #dir = "/home/tanaka/share/data/kegg"
File without changes
@@ -41,5 +41,25 @@ class MDLTest < Test::Unit::TestCase
41
41
  assert_equal(26, types[:single])
42
42
  end
43
43
 
44
+ def test_mdl_header
45
+ # -ISIS- 02070623502D
46
+ mol = Chem.open_mol($data_dir + "atp.mol")
47
+ assert_equal("-ISIS- ", mol.program_name)
48
+ assert_equal(DateTime.new(2006, 2, 7, 23, 50), mol.date_time)
49
+ assert_equal("2D", mol.dimensional_codes)
50
+ end
51
+
52
+ def test_save_mdl
53
+ mol = Chem.open_mol($data_dir + "atp.mol")
54
+ mol.save(File.join("temp", "save_test.mol"))
55
+ now = DateTime.now
56
+ mol = Chem.open_mol(File.join(%w(temp save_test.mol)))
57
+ assert_equal(now.year, mol.date_time.year)
58
+ assert_equal(now.mday, mol.date_time.mday)
59
+ assert_equal(now.month, mol.date_time.month)
60
+ assert_equal(now.hour, mol.date_time.hour)
61
+ assert_equal(now.min, mol.date_time.min)
62
+ end
63
+
44
64
  end
45
65