diff options
author | Christoph Helma <helma@in-silico.ch> | 2016-05-13 13:38:24 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2016-05-13 13:38:24 +0200 |
commit | c90644211e214a50f6fdb3a936bf247f45f1f4be (patch) | |
tree | 9ae3f0b33feb55f3904c4d7a08e39567223b07aa /lib/compound.rb | |
parent | b8bb12c8a163c238d7d4387c1914e2100bb660df (diff) |
compound tests fixed
Diffstat (limited to 'lib/compound.rb')
-rw-r--r-- | lib/compound.rb | 27 |
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 |