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
@@ -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
|
File without changes
|
data/test/tc_casrn.rb
ADDED
@@ -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
|
data/test/tc_cdk.rb
ADDED
@@ -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
|
data/test/tc_develop.rb
ADDED
@@ -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
|
data/test/tc_drugbank.rb
ADDED
@@ -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
|
data/test/tc_gd.rb
ADDED
File without changes
|
data/test/tc_graph.rb
ADDED
@@ -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
|
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
|
|