chemruby 0.9.3 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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