summaryrefslogtreecommitdiff
path: root/lib/compound.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2016-05-13 13:38:24 +0200
committerChristoph Helma <helma@in-silico.ch>2016-05-13 13:38:24 +0200
commitc90644211e214a50f6fdb3a936bf247f45f1f4be (patch)
tree9ae3f0b33feb55f3904c4d7a08e39567223b07aa /lib/compound.rb
parentb8bb12c8a163c238d7d4387c1914e2100bb660df (diff)
compound tests fixed
Diffstat (limited to 'lib/compound.rb')
-rw-r--r--lib/compound.rb27
1 files changed, 17 insertions, 10 deletions
diff --git a/lib/compound.rb b/lib/compound.rb
index 2554d54..89e9db2 100644
--- a/lib/compound.rb
+++ b/lib/compound.rb
@@ -254,13 +254,15 @@ module OpenTox
self["chemblid"]
end
-# def fingerprint_count_neighbors params
-# # TODO fix
-# neighbors = []
-# query_fingerprint = self.fingerprint params[:type]
-# training_dataset = Dataset.find(params[:training_dataset_id]).compounds.each do |compound|
-# unless self == compound
-# candidate_fingerprint = compound.fingerprint params[:type]
+=begin
+ def fingerprint_neighbors(type:, min_sim: 0.1, dataset_id:, prediction_feature_id:)
+ neighbors = []
+ dataset = Dataset.find(dataset_id)
+ query_fingerprint = self.fingerprint type
+ dataset.compounds.each do |compound|
+ values = dataset.values(compound,prediction_feature_id)
+ if values
+ candidate_fingerprint = compound.fingerprint type
# features = (query_fingerprint + candidate_fingerprint).uniq
# min_sum = 0
# max_sum = 0
@@ -274,7 +276,13 @@ module OpenTox
# end
# end
# neighbors.sort{|a,b| b.last <=> a.last}
-# end
+ sim = Algorithm::Similarity.tanimoto(query_fingerprint , candidate_fingerprint)
+ neighbors << {"_id" => compound.id, "toxicities" => values, "similarity" => sim} if sim >= min_sim
+ end
+ end
+ neighbors.sort{|a,b| b["similarity"] <=> a["similarity"]}
+ end
+=end
def fingerprint_neighbors(type:, min_sim: 0.1, dataset_id:, prediction_feature_id:)
neighbors = []
@@ -294,9 +302,8 @@ module OpenTox
neighbors << {"_id" => compound.id, "toxicities" => values, "similarity" => sim} if sim >= min_sim
end
end
- neighbors.sort!{|a,b| b["similarity"] <=> a["similarity"]}
end
- neighbors
+ neighbors.sort{|a,b| b["similarity"] <=> a["similarity"]}
end
# def physchem_neighbors params