diff options
author | Christoph Helma <helma@in-silico.ch> | 2011-04-05 19:07:54 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2011-04-05 19:07:54 +0200 |
commit | 459458aaacda3b5a0e053ff5cd4a4a97e89186e4 (patch) | |
tree | 1427fbf48a1f5d095ebe07ff50f40edf2b966a3f | |
parent | 3bb6365594d168281019bdec303e70c123414ce4 (diff) |
regression lazar and feature_type fixed
-rw-r--r-- | fminer.rb | 12 | ||||
-rw-r--r-- | lazar.rb | 8 |
2 files changed, 12 insertions, 8 deletions
@@ -71,7 +71,6 @@ post '/fminer/bbrc/?' do halt 404, "Please submit a dataset_uri." unless params[:dataset_uri] and !params[:dataset_uri].nil? halt 404, "Please submit a prediction_feature." unless params[:prediction_feature] and !params[:prediction_feature].nil? prediction_feature = OpenTox::Feature.find params[:prediction_feature] - training_dataset = OpenTox::Dataset.find "#{params[:dataset_uri]}", @subjectid halt 404, "No feature #{params[:prediction_feature]} in dataset #{params[:dataset_uri]}" unless training_dataset.features and training_dataset.features.include?(params[:prediction_feature]) @@ -243,7 +242,7 @@ post '/fminer/last/?' do halt 404, "Please submit a dataset_uri." unless params[:dataset_uri] and !params[:dataset_uri].nil? halt 404, "Please submit a prediction_feature." unless params[:prediction_feature] and !params[:prediction_feature].nil? - prediction_feature = params[:prediction_feature] + prediction_feature = OpenTox::Feature.find params[:prediction_feature] training_dataset = OpenTox::Dataset.new "#{params[:dataset_uri]}", @subjectid training_dataset.load_all(@subjectid) halt 404, "No feature #{params[:prediction_feature]} in dataset #{params[:dataset_uri]}" unless training_dataset.features and training_dataset.features.include?(params[:prediction_feature]) @@ -260,8 +259,13 @@ post '/fminer/last/?' do @@last.SetType(1) if params[:feature_type] == "paths" @@last.SetMaxHops(params[:hops]) if params[:hops] @@last.SetConsoleOut(false) + if prediction_feature.feature_type == "regression" + @@bbrc.SetRegression(true) + else + @training_classes = training_dataset.feature_classes(prediction_feature.uri) + end - feature_dataset = OpenTox::Dataset.new + feature_dataset = OpenTox::Dataset.new(nil, @subjectid) feature_dataset.add_metadata({ DC.title => "LAST representatives for " + training_dataset.metadata[DC.title].to_s, DC.creator => url_for('/fminer/last',:full), @@ -292,7 +296,7 @@ post '/fminer/last/?' do next end entry.each do |feature,values| - if feature == prediction_feature + if feature == prediction_feature.uri values.each do |value| if value.nil? LOGGER.warn "No #{feature} activiity for #{compound.to_s}." @@ -39,7 +39,7 @@ post '/lazar/?' do unless params[:prediction_feature] # try to read prediction_feature from dataset halt 404, "#{training_activities.features.size} features in dataset #{dataset_uri}. Please provide a prediction_feature parameter." unless training_activities.features.size == 1 prediction_feature = OpenTox::Feature.find(training_activities.features.keys.first,@subjectid) - #params[:prediction_feature] = prediction_feature + params[:prediction_feature] = prediction_feature.uri # pass to feature mining service end feature_generation_uri = @@feature_generation_default unless feature_generation_uri = params[:feature_generation_uri] @@ -77,12 +77,12 @@ post '/lazar/?' do halt 404, "Dataset #{feature_dataset_uri} not found." if training_features.nil? # sorted features for index lookups - lazar.features = training_features.features.sort if prediction_feature.feature_type == "regression" + lazar.features = training_features.features.sort if prediction_feature.feature_type == "regression" and lazar.feature_calculation_algorithm != "Substructure.match" training_features.data_entries.each do |compound,entry| lazar.fingerprints[compound] = [] unless lazar.fingerprints[compound] entry.keys.each do |feature| - if feature_generation_uri.match(/fminer/) + if lazar.feature_calculation_algorithm == "Substructure.match" if training_features.features[feature] smarts = training_features.features[feature][OT.smarts] lazar.fingerprints[compound] << smarts @@ -109,13 +109,13 @@ post '/lazar/?' do else LOGGER.warn "More than one entry (#{entry[feature].inspect}) for compound #{compound}, feature #{feature}" end - lazar.prediction_algorithm = "Neighbors.local_svm_regression" end end end end @training_classes = training_activities.feature_classes(prediction_feature.uri) if prediction_feature.feature_type == "classification" + lazar.prediction_algorithm = "Neighbors.local_svm_regression" if prediction_feature.feature_type == "regression" training_activities.data_entries.each do |compound,entry| lazar.activities[compound] = [] unless lazar.activities[compound] |