diff options
Diffstat (limited to 'scripts/crossvalidation.rb')
-rwxr-xr-x | scripts/crossvalidation.rb | 33 |
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 |