summaryrefslogtreecommitdiff
path: root/lib/neighbor.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2015-08-09 13:42:18 +0200
committerChristoph Helma <helma@in-silico.ch>2015-08-09 13:42:18 +0200
commitb0be61443018f5058e976302498f8d1a8397e1f4 (patch)
treebd8d60359b250c1f7be7a929a8223114b842ae9f /lib/neighbor.rb
parent65c7bdd2bc5de1c2f7bf44a4ed93cb80cc7b4b17 (diff)
crossvalidation.rb, neighbor.rb addedmongodb
Diffstat (limited to 'lib/neighbor.rb')
-rw-r--r--lib/neighbor.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/neighbor.rb b/lib/neighbor.rb
new file mode 100644
index 0000000..a2c28d4
--- /dev/null
+++ b/lib/neighbor.rb
@@ -0,0 +1,25 @@
+module OpenTox
+ module Algorithm
+ class Neighbor
+
+ def self.fingerprint_similarity compound, params={}
+ compound.neighbors params[:min_sim]
+ end
+
+ def self.fminer_similarity compound, params
+ feature_dataset = Dataset.find params[:feature_dataset_id]
+ query_fingerprint = Algorithm::Descriptor.smarts_match(compound, feature_dataset.features.collect{|f| f.smarts} )
+ neighbors = []
+
+ # find neighbors
+ feature_dataset.data_entries.each_with_index do |fingerprint, i|
+ sim = Algorithm::Similarity.tanimoto fingerprint, query_fingerprint
+ if sim > params[:min_sim]
+ neighbors << [feature_dataset.compound_ids[i],sim] # use compound_ids, instantiation of Compounds is too time consuming
+ end
+ end
+ neighbors
+ end
+ end
+ end
+end