summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2016-05-27 19:16:16 +0200
committerChristoph Helma <helma@in-silico.ch>2016-05-27 19:16:16 +0200
commitf46ba3b7262f5b551c81fc9396c5b7f0cac7f030 (patch)
tree2fb5efc12c70d62e2befb5ffdd6415656fd9f309 /test
parentcc08e6beda7f7d70ebf6c6929a22d1a0cd7c1a20 (diff)
first correlation of nanoparticle predictions
Diffstat (limited to 'test')
-rw-r--r--test/dataset.rb1
-rw-r--r--test/nanoparticles.rb36
-rw-r--r--test/setup.rb4
3 files changed, 26 insertions, 15 deletions
diff --git a/test/dataset.rb b/test/dataset.rb
index 7ec9973..e59441b 100644
--- a/test/dataset.rb
+++ b/test/dataset.rb
@@ -154,6 +154,7 @@ class DatasetTest < MiniTest::Test
c = Compound.from_smiles row.shift
serialized[c.inchi] = row
end
+ #puts serialized.to_yaml
original.each do |inchi,row|
row.each_with_index do |v,i|
if v.numeric?
diff --git a/test/nanoparticles.rb b/test/nanoparticles.rb
index 897552d..1cd1ff0 100644
--- a/test/nanoparticles.rb
+++ b/test/nanoparticles.rb
@@ -9,10 +9,9 @@ class NanoparticleTest < MiniTest::Test
end
def test_create_model_with_feature_selection
- skip
training_dataset = Dataset.find_or_create_by(:name => "Protein Corona Fingerprinting Predicts the Cellular Interaction of Gold and Silver Nanoparticles")
- feature = Feature.find_or_create_by(name: "7.99 Toxicity (other) ICP-AES", category: "TOX", unit: "mL/ug(Mg)")
- model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_physchem_regression", :neighbor_algorithm => "nanoparticle_neighbors"})
+ feature = Feature.find_or_create_by(name: "Net cell association", category: "TOX", unit: "mL/ug(Mg)")
+ model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_weighted_average", :neighbor_algorithm => "nanoparticle_neighbors", :feature_selection_algorithm => "correlation_filter"})
nanoparticle = training_dataset.nanoparticles[-34]
#p nanoparticle.neighbors
prediction = model.predict nanoparticle
@@ -23,45 +22,55 @@ class NanoparticleTest < MiniTest::Test
def test_create_model
training_dataset = Dataset.find_or_create_by(:name => "Protein Corona Fingerprinting Predicts the Cellular Interaction of Gold and Silver Nanoparticles")
- #p training_dataset.nanoparticles.size
feature = Feature.find_or_create_by(name: "Net cell association", category: "TOX", unit: "mL/ug(Mg)")
model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_weighted_average", :neighbor_algorithm => "nanoparticle_neighbors"})
- #model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_physchem_regression", :neighbor_algorithm => "nanoparticle_neighbors"})
nanoparticle = training_dataset.nanoparticles[-34]
prediction = model.predict nanoparticle
- p prediction
refute_nil prediction[:value]
+ assert_includes nanoparticle.dataset_ids, training_dataset.id
+ model.delete
end
def test_validate_model
training_dataset = Dataset.find_or_create_by(:name => "Protein Corona Fingerprinting Predicts the Cellular Interaction of Gold and Silver Nanoparticles")
feature = Feature.find_or_create_by(name: "Net cell association", category: "TOX", unit: "mL/ug(Mg)")
- #feature = Feature.find_or_create_by(name: "7.99 Toxicity (other) ICP-AES", category: "TOX", unit: "mL/ug(Mg)")
- model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_weighted_average", :neighbor_algorithm => "nanoparticle_neighbors"})
- p model
+ model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_weighted_average", :neighbor_algorithm => "nanoparticle_neighbors", :neighbor_algorithm_parameters => {:min_sim => 0.5}})
cv = RegressionCrossValidation.create model
p cv
+ File.open("tmp.png","w+"){|f| f.puts cv.correlation_plot}
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
end
def test_validate_pls_model
training_dataset = Dataset.find_or_create_by(:name => "Protein Corona Fingerprinting Predicts the Cellular Interaction of Gold and Silver Nanoparticles")
feature = Feature.find_or_create_by(name: "Net cell association", category: "TOX", unit: "mL/ug(Mg)")
- #feature = Feature.find_or_create_by(name: "7.99 Toxicity (other) ICP-AES", category: "TOX", unit: "mL/ug(Mg)")
model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_physchem_regression", :neighbor_algorithm => "nanoparticle_neighbors"})
- #model = Model::LazarRegression.create(feature, training_dataset, {:prediction_algorithm => "OpenTox::Algorithm::Regression.local_weighted_average", :neighbor_algorithm => "nanoparticle_neighbors"})
- p model
cv = RegressionCrossValidation.create model
p cv
+ File.open("tmp.png","w+"){|f| f.puts cv.correlation_plot}
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
end
def test_export
- skip
Dataset.all.each do |d|
puts d.to_csv
end
end
def test_summaries
+ datasets = Dataset.all
+ datasets = datasets.select{|d| !d.name.nil?}
+ datasets.each do |d|
+ p d.name
+
+ #p d.features.select{|f| f.name.match (/Total/)}
+ #p d.features.collect{|f| "#{f.name} #{f.unit} #{f.conditions}"}
+ p d.features.uniq.collect{|f| f.name}
+ end
+ assert_equal 9, datasets.size
+=begin
skip
features = Feature.all.to_a
#p features.collect do |f|
@@ -83,6 +92,7 @@ class NanoparticleTest < MiniTest::Test
#pccounts.each{|e,n| p Feature.find(e),n if n > 100}
#p toxcounts.collect{|e,n| Feature.find(e).name if n > 1}.uniq
toxcounts.each{|e,n| p Feature.find(e),n if n > 100}
+=end
end
diff --git a/test/setup.rb b/test/setup.rb
index e7c32b4..6c97282 100644
--- a/test/setup.rb
+++ b/test/setup.rb
@@ -5,5 +5,5 @@ require_relative '../lib/lazar.rb'
include OpenTox
TEST_DIR ||= File.expand_path(File.dirname(__FILE__))
DATA_DIR ||= File.join(TEST_DIR,"data")
-$mongo.database.drop
-$gridfs = $mongo.database.fs
+#$mongo.database.drop
+#$gridfs = $mongo.database.fs