summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordv <dv@dv.de>2011-08-03 16:48:45 +0200
committerdv <dv@dv.de>2011-08-03 16:48:45 +0200
commit6b382e3925b85d0efe2fcc75b1651c611e2c3e09 (patch)
treefbdc83dfa27ee00d2a82ccf699a55ed030f4142a
parent3fddd473ee16757ac5ae98b5ebcdca2834439ded (diff)
parent3282ef4f902e2d5d40b715d0642a1901f5e558e5 (diff)
Merge branch 'reg_min_max' into development
-rw-r--r--lib/algorithm.rb2
-rw-r--r--lib/model.rb11
-rw-r--r--lib/serializer.rb2
3 files changed, 13 insertions, 2 deletions
diff --git a/lib/algorithm.rb b/lib/algorithm.rb
index 9a5ff01..0ba6a83 100644
--- a/lib/algorithm.rb
+++ b/lib/algorithm.rb
@@ -330,6 +330,7 @@ module OpenTox
prediction = mlr( {:n_prop => props[0], :q_prop => props[1], :sims => sims, :acts => acts} )
transformer = eval("OpenTox::Algorithm::Transform::#{params[:transform]["class"]}.new ([#{prediction}], #{params[:transform]["offset"]})")
prediction = transformer.values[0]
+ prediction = nil if prediction.infinite? || params[:prediction_min_max][1] < prediction || params[:prediction_min_max][0] > prediction
LOGGER.debug "Prediction is: '" + prediction.to_s + "'."
params[:conf_stdev] = false if params[:conf_stdev].nil?
confidence = get_confidence({:sims => sims, :acts => acts, :neighbors => params[:neighbors], :conf_stdev => params[:conf_stdev]})
@@ -441,6 +442,7 @@ module OpenTox
prediction = props.nil? ? local_svm(acts, sims, "nu-svr", params) : local_svm_prop(props, acts, "nu-svr")
transformer = eval("OpenTox::Algorithm::Transform::#{params[:transform]["class"]}.new ([#{prediction}], #{params[:transform]["offset"]})")
prediction = transformer.values[0]
+ prediction = nil if prediction.infinite? || params[:prediction_min_max][1] < prediction || params[:prediction_min_max][0] > prediction
LOGGER.debug "Prediction is: '" + prediction.to_s + "'."
params[:conf_stdev] = false if params[:conf_stdev].nil?
confidence = get_confidence({:sims => sims, :acts => acts, :neighbors => params[:neighbors], :conf_stdev => params[:conf_stdev]})
diff --git a/lib/model.rb b/lib/model.rb
index 26c42a5..ff0ce0e 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -102,7 +102,7 @@ module OpenTox
include Algorithm
include Model
- attr_accessor :compound, :prediction_dataset, :features, :effects, :activities, :p_values, :fingerprints, :feature_calculation_algorithm, :similarity_algorithm, :prediction_algorithm, :min_sim, :subjectid, :prop_kernel, :value_map, :nr_hits, :transform, :conf_stdev
+ attr_accessor :compound, :prediction_dataset, :features, :effects, :activities, :p_values, :fingerprints, :feature_calculation_algorithm, :similarity_algorithm, :prediction_algorithm, :min_sim, :subjectid, :prop_kernel, :value_map, :nr_hits, :transform, :conf_stdev, :prediction_min_max
def initialize(uri=nil)
@@ -120,6 +120,7 @@ module OpenTox
@p_values = {}
@fingerprints = {}
@value_map = {}
+ @prediction_min_max = []
@feature_calculation_algorithm = "Substructure.match"
@similarity_algorithm = "Similarity.tanimoto"
@@ -224,6 +225,13 @@ module OpenTox
} )
end
+ if OpenTox::Feature.find(metadata[OT.dependentVariables]).feature_type == "regression"
+ all_activities = []
+ all_activities = @activities.values.flatten.collect! { |i| i.to_f }
+ @prediction_min_max[0] = (all_activities.to_scale.min/2)
+ @prediction_min_max[1] = (all_activities.to_scale.max*2)
+ end
+
unless database_activity(subjectid) # adds database activity to @prediction_dataset
neighbors
@@ -237,6 +245,7 @@ module OpenTox
:value_map => @value_map,
:nr_hits => @nr_hits,
:conf_stdev => @conf_stdev,
+ :prediction_min_max => @prediction_min_max,
:transform => @transform } ) ")
value_feature_uri = File.join( @uri, "predicted", "value")
diff --git a/lib/serializer.rb b/lib/serializer.rb
index 03dcf1f..d53f7fb 100644
--- a/lib/serializer.rb
+++ b/lib/serializer.rb
@@ -192,7 +192,7 @@ module OpenTox
@object[metadata[OT.featureDataset]] = { RDF["type"] => [{ "type" => "uri", "value" => OT.Dataset }] }
@object[metadata[OT.trainingDataset]] = { RDF["type"] => [{ "type" => "uri", "value" => OT.Dataset }] }
@object[metadata[OT.dependentVariables]] = { RDF["type"] => [{ "type" => "uri", "value" => OT.Feature }] }
- metadata[OT.predictedVariables].each{|feature| @object[feature] = { RDF["type"] => [{ "type" => "uri", "value" => OT.Feature }] }}
+ metadata[OT.predictedVariables].each{|feature| @object[feature] = { RDF["type"] => [{ "type" => "uri", "value" => OT.Feature }]}} unless metadata[OT.predictedVariables].nil?
# TODO: add algorithms from parameters
@object["http://ot-dev.in-silico.ch/algorithm/fminer/bbrc"] = { RDF["type"] => [{ "type" => "uri", "value" => OT.Algorithm }] }
@object["http://ot-dev.in-silico.ch/algorithm/fminer/last"] = { RDF["type"] => [{ "type" => "uri", "value" => OT.Algorithm }] }