summaryrefslogtreecommitdiff
path: root/scripts/crossvalidation.rb
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/crossvalidation.rb')
-rwxr-xr-xscripts/crossvalidation.rb33
1 files changed, 21 insertions, 12 deletions
diff --git a/scripts/crossvalidation.rb b/scripts/crossvalidation.rb
index 79aeb83..9657af1 100755
--- a/scripts/crossvalidation.rb
+++ b/scripts/crossvalidation.rb
@@ -1,25 +1,34 @@
-require_relative 'include.rb'
-
+#!/usr/bin/env ruby
+require_relative '../../lazar/lib/lazar'
+include OpenTox
+require 'yaml'
name = File.basename ARGV[0], ".csv"
-file = File.join DATA,ARGV[0]
+file = File.join "data",ARGV[0]
dataset = Dataset.from_csv_file file
-model = Model::LazarRegression.create(dataset, :prediction_algorithm => "OpenTox::Algorithm::Regression.local_fingerprint_regression")
+model = Model::LazarRegression.create(training_dataset: dataset)#, :prediction_algorithm => "OpenTox::Algorithm::Regression.local_fingerprint_regression")
#model = Model::LazarRegression.create(dataset, :prediction_algorithm => "OpenTox::Algorithm::Regression.local_physchem_regression")
#model = Model::LazarRegression.create(dataset, :prediction_algorithm => "OpenTox::Algorithm::Regression.local_weighted_average")
-csv_file = File.join(DATA,ARGV[0].sub(/.csv/,"-cv-#{ARGV[1]}.csv"))
-id_file = File.join(DATA,ARGV[0].sub(/.csv/,"-cv-#{ARGV[1]}.id"))
-cv = RegressionCrossValidation.create model
+csv_file = File.join("data",ARGV[0].sub(/.csv/,"-cv-#{ARGV[1]}.csv"))
+id_file = File.join("data",ARGV[0].sub(/.csv/,"-cv-#{ARGV[1]}.id"))
+cv = Validation::RegressionCrossValidation.create model
File.open(id_file,"w+"){|f| f.puts cv.id}
-
+#cv = Validation::RegressionCrossValidation.first
+p cv.id
data = []
-cv.predictions.each do |p|
- smi = Compound.find(p[0]).smiles
- data << [smi,p[1].median,p[2],p[3]]
+cv.predictions.each do |cid,p|
+ smi = Compound.find(cid).smiles
+ if p["prediction_interval"]
+ data << [smi,p["value"],p["measurements"].median,p["prediction_interval"][0],p["prediction_interval"][1]]
+ else
+ data << [smi,p["value"],p["measurements"].median,nil,nil]
+ end
end
data.sort!{|a,b| a[1] <=> b[1]}
CSV.open(csv_file,"w+") do |csv|
- csv << ["SMILES","LOAEL_measured_median","LOAEL_predicted","Confidence"]
+ csv << ["SMILES","LOAEL_measured_median","LOAEL_predicted","Prediction_interval_low","Prediction_interval_high"]
data.each{|r| csv << r}
end
+=begin
+=end