summaryrefslogtreecommitdiff
path: root/test/compound.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/compound.rb')
-rw-r--r--test/compound.rb98
1 files changed, 4 insertions, 94 deletions
diff --git a/test/compound.rb b/test/compound.rb
index 7342310..bdfb749 100644
--- a/test/compound.rb
+++ b/test/compound.rb
@@ -2,19 +2,16 @@ require_relative "setup.rb"
class CompoundTest < MiniTest::Test
- def test_0_compound_from_smiles
+ def test_compound_from_smiles
c = OpenTox::Compound.from_smiles "F[B-](F)(F)F.[Na+]"
assert_equal "InChI=1S/BF4.Na/c2-1(3,4)5;/q-1;+1", c.inchi.chomp
assert_equal "F[B-](F)(F)F.[Na+]", c.smiles, "A failure here might be caused by a compound webservice running on 64bit architectures using an outdated version of OpenBabel. Please install OpenBabel version 2.3.2 or higher." # seems to be fixed in 2.3.2
end
- def test_1_compound_from_smiles
+ def test_compound_from_smiles
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C#N"
assert_equal "InChI=1S/C6H9NO/c1-5(4-7)3-6(2)8/h5H,3H2,1-2H3", c.inchi
assert_equal "CC(C#N)CC(=O)C", c.smiles
- end
-
- def test_2_compound_from_smiles
c = OpenTox::Compound.from_smiles "N#[N+]C1=CC=CC=C1.F[B-](F)(F)F"
assert_equal "InChI=1S/C6H5N2.BF4/c7-8-6-4-2-1-3-5-6;2-1(3,4)5/h1-5H;/q+1;-1", c.inchi
assert_equal "F[B-](F)(F)F.N#[N+]c1ccccc1", c.smiles
@@ -79,16 +76,6 @@ print c.sdf
assert_equal 9, c.fingerprint("FP4").size
end
- def test_neighbors
- d = Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.csv")
- d.compounds.each do |c|
- refute_nil c.fingerprint("MP2D")
- end
- c = d.compounds[371]
- n = c.fingerprint_neighbors({:type => "FP4", :min_sim => 0.7, :training_dataset_id => d.id })
- assert n.size >= 18, "Neighbors size (#{n.size}) should be larger than 17"
- end
-
def test_openbabel_segfault
inchi = "InChI=1S/C19H27NO7/c1-11-9-19(12(2)27-19)17(23)26-14-6-8-20(4)7-5-13(15(14)21)10-25-16(22)18(11,3)24/h5,11-12,14,24H,6-10H2,1-4H3/b13-5-/t11-,12-,14-,18-,19?/m1/s1"
@@ -107,25 +94,6 @@ print c.sdf
end
end
- def test_fingerprint_neighbors
- types = ["FP2", "FP3", "FP4", "MACCS"]
- min_sim = 0.7
- training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.csv")
- [
- "CC(=O)CC(C)C#N",
- "CC(=O)CC(C)C",
- "C(=O)CC(C)C#N",
- ].each do |smi|
- c = OpenTox::Compound.from_smiles smi
- types.each do |type|
- neighbors = c.fingerprint_neighbors({:type => type, :training_dataset_id => training_dataset.id, :min_sim => min_sim})
- unless type == "FP2" and smi == "CC(=O)CC(C)C#N" or smi == "C(=O)CC(C)C#N" and (type == "FP2" or type == "MACCS")
- refute_empty neighbors
- end
- end
- end
- end
-
def test_mna
c = OpenTox::Compound.from_smiles "N#[N+]C1=CC=CC=C1.F[B-](F)(F)F"
assert_equal 18, c.fingerprint("MNA").size
@@ -138,72 +106,14 @@ print c.sdf
assert 7, c.fingerprint("MP2D").uniq.size
end
- def test_fingerprint_count_neighbors
- types = ["MP2D", "MNA"]
- min_sim = 0.0
- training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.csv")
- [
- "CC(=O)CC(C)C#N",
- "CC(=O)CC(C)C",
- "C(=O)CC(C)C#N",
- ].each do |smi|
- c = OpenTox::Compound.from_smiles smi
- types.each do |type|
- neighbors = c.fingerprint_count_neighbors({:type => type, :training_dataset_id => training_dataset.id, :min_sim => min_sim})
- if type == "FP4"
- fp4_neighbors = c.neighbors
- neighbors.each do |n|
- assert_includes fp4_neighbors, n
- end
- end
- end
- end
- end
-
- def test_fingerprint_db_neighbors
- #skip
- training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.csv")
- [
- "CC(=O)CC(C)C#N",
- "CC(=O)CC(C)C",
- "C(=O)CC(C)C#N",
- ].each do |smi|
- c = OpenTox::Compound.from_smiles smi
- t = Time.now
- neighbors = c.db_neighbors(:training_dataset_id => training_dataset.id, :min_sim => 0.2)
- p Time.now - t
- t = Time.now
- neighbors2 = c.fingerprint_neighbors({:type => "MP2D", :training_dataset_id => training_dataset.id, :min_sim => 0.2})
- p Time.now - t
- p neighbors.size
- p neighbors2.size
- #p neighbors
- #p neighbors2
- #p neighbors2 - neighbors
- #assert_equal neighbors, neighbors2
- end
- end
-
def test_molecular_weight
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C"
assert_equal 100.15888, c.molecular_weight
end
- def test_mg_conversions
- # TODO fix!
- skip
- c = OpenTox::Compound.from_smiles "O"
- mw = c.molecular_weight
- assert_equal 18.01528, mw
- assert_equal 0.8105107141417474, c.logmmol_to_mg(4.34688225631145, mw)
- assert_equal 9007.64, c.mmol_to_mg(500, mw)
- assert_equal 2437.9999984148976, c.logmg_to_mg(3.387033701)
- end
-
def test_physchem
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C"
- assert_equal PhysChem::OBDESCRIPTORS.size, c.physchem.size
- assert_equal PhysChem::OBDESCRIPTORS.size, c.physchem(PhysChem.openbabel_descriptors).size
- assert_equal PhysChem::unique_descriptors.size, c.physchem(PhysChem.unique_descriptors).size
+ properties = c.calculate_properties(PhysChem.openbabel_descriptors)
+ assert_equal PhysChem::OPENBABEL.size, properties.size
end
end