summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2016-06-08 18:26:07 +0200
committerChristoph Helma <helma@in-silico.ch>2016-06-08 18:26:07 +0200
commit0f31c884d1bcfa448a1bf43a41d8fd6cf88bfc52 (patch)
treeb50005c5211487a0bfac93ac918f06d1bcd476ba /lib
parentf7e87b45f15083e5fcdea64821f06ed93ece4c4e (diff)
compound tests fixed
Diffstat (limited to 'lib')
-rw-r--r--lib/classification.rb2
-rw-r--r--lib/compound.rb16
-rw-r--r--lib/regression.rb6
3 files changed, 13 insertions, 11 deletions
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 = []