summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Maunz <andreas@maunz.de>2012-02-09 15:31:01 +0100
committerAndreas Maunz <andreas@maunz.de>2012-02-09 15:31:01 +0100
commit49eb76b0f2c2037e4a1e664752271b7e4a955f72 (patch)
tree144ed6918f33046d503d6e66afaee1ec96f4d63a
parentc80b7ac28dce2df193fb61c042b0563f35b48012 (diff)
parent0fa509eeab52c336552a38db1a3f7195f840a1f2 (diff)
Merge branch 'development' into pc_new_1pc_new_1
-rw-r--r--fminer.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/fminer.rb b/fminer.rb
index 0739b62..a5ea61d 100644
--- a/fminer.rb
+++ b/fminer.rb
@@ -85,6 +85,37 @@ get "/fminer/last/?" do
end
end
+# Creates same features for dataset <dataset_uri> that have been created
+# with fminer in dataset <feature_dataset_uri>
+# accept params[:nr_hits] as used in other fminer methods
+post '/fminer/:method/match?' do
+ raise OpenTox::BadRequestError.new "feature_dataset_uri not given" unless params[:feature_dataset_uri]
+ raise OpenTox::BadRequestError.new "dataset_uri not given" unless params[:dataset_uri]
+ task = OpenTox::Task.create("Matching features", url_for('/fminer/match',:full)) do |task|
+ f_dataset = OpenTox::Dataset.find params[:feature_dataset_uri],@subjectid
+ c_dataset = OpenTox::Dataset.find params[:dataset_uri],@subjectid
+ res_dataset = OpenTox::Dataset.create CONFIG[:services]["dataset"],@subjectid
+ f_dataset.features.each do |f,m|
+ res_dataset.add_feature(f,m)
+ end
+ c_dataset.compounds.each do |c|
+ res_dataset.add_compound(c)
+ comp = OpenTox::Compound.new(c)
+ f_dataset.features.each do |f,m|
+ if params[:nr_hits] == "true"
+ hits = comp.match_hits([m[OT.smarts]])
+ res_dataset.add(c,f,hits[m[OT.smarts]]) if hits[m[OT.smarts]]
+ else
+ res_dataset.add(c,f,1) if comp.match?(m[OT.smarts])
+ end
+ end
+ end
+ res_dataset.save @subjectid
+ res_dataset.uri
+ end
+ return_task(task)
+end
+
# Run bbrc algorithm on dataset
#
# @param [String] dataset_uri URI of the training dataset