From 0f31c884d1bcfa448a1bf43a41d8fd6cf88bfc52 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 8 Jun 2016 18:26:07 +0200 Subject: compound tests fixed --- lib/classification.rb | 2 +- lib/compound.rb | 16 +++++++++------- lib/regression.rb | 6 +++--- 3 files changed, 13 insertions(+), 11 deletions(-) (limited to 'lib') diff --git a/lib/classification.rb b/lib/classification.rb index 0f3c6d9..2ccd7d1 100644 --- a/lib/classification.rb +++ b/lib/classification.rb @@ -3,7 +3,7 @@ module OpenTox class Classification - def self.weighted_majority_vote substance, neighbors + def self.weighted_majority_vote substance:, neighbors: sims = {} neighbors.each do |neighbor| sim = neighbor["similarity"] diff --git a/lib/compound.rb b/lib/compound.rb index 4541816..17cc240 100644 --- a/lib/compound.rb +++ b/lib/compound.rb @@ -257,12 +257,13 @@ module OpenTox def fingerprint_neighbors(type:, min_sim: 0.1, dataset_id:, prediction_feature_id:) neighbors = [] dataset = Dataset.find(dataset_id) - if type == DEFAULT_FINGERPRINT - neighbors = db_neighbors(min_sim: min_sim, dataset_id: dataset_id) - neighbors.each do |n| - n["measurements"] = dataset.values(n["_id"],prediction_feature_id) - end - else + # TODO: fix db_neighbors +# if type == DEFAULT_FINGERPRINT +# neighbors = db_neighbors(min_sim: min_sim, dataset_id: dataset_id) +# neighbors.each do |n| +# n["measurements"] = dataset.values(n["_id"],prediction_feature_id) +# end +# else query_fingerprint = self.fingerprint type dataset.compounds.each do |compound| values = dataset.values(compound,prediction_feature_id) @@ -271,7 +272,7 @@ module OpenTox sim = Algorithm::Similarity.tanimoto(query_fingerprint , candidate_fingerprint) neighbors << {"_id" => compound.id, "measurements" => values, "similarity" => sim} if sim >= min_sim end - end +# end end neighbors.sort{|a,b| b["similarity"] <=> a["similarity"]} end @@ -294,6 +295,7 @@ module OpenTox # end def db_neighbors min_sim: 0.1, dataset_id: + p fingerprints[DEFAULT_FINGERPRINT] # from http://blog.matt-swain.com/post/87093745652/chemical-similarity-search-in-mongodb #qn = default_fingerprint_size diff --git a/lib/regression.rb b/lib/regression.rb index 51317ac..d034d0b 100644 --- a/lib/regression.rb +++ b/lib/regression.rb @@ -18,7 +18,7 @@ module OpenTox {:value => prediction} end - def self.local_fingerprint_regression substance:, neighbors:, method: pls#, method_params="sigma=0.05" + def self.local_fingerprint_regression substance:, neighbors:, method: "pls" #, method_params="sigma=0.05" values = [] fingerprints = {} weights = [] @@ -55,7 +55,7 @@ module OpenTox substance_features = variables.collect{|f| substance.fingerprint.include?(f) ? "T" : "F"} prediction = r_model_prediction method, data_frame, variables, weights, substance_features if prediction.nil? or prediction[:value].nil? - prediction = local_weighted_average substance, neighbors + prediction = local_weighted_average(substance: substance, neighbors: neighbors) prediction[:warning] = "Could not create local PLS model. Using weighted average of similar substances." prediction else @@ -68,7 +68,7 @@ module OpenTox end - def self.local_physchem_regression substance:, neighbors:, method: pls + def self.local_physchem_regression substance:, neighbors:, method: "pls" activities = [] weights = [] -- cgit v1.2.3