summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2012-01-31 11:27:31 +0100
committermguetlein <martin.guetlein@gmail.com>2012-01-31 11:27:31 +0100
commit5fdf86d55f47fa3bdca0bb8f5482a7fd33f60987 (patch)
treee4d5e15a3f83d2f2da94e79df86f945efd5f236a
parent0553eddba202ae481a1cdc3b7cc59002c4777ad4 (diff)
feature match functionallity for fminer
-rw-r--r--fminer.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/fminer.rb b/fminer.rb
index 0739b62..36e242e 100644
--- a/fminer.rb
+++ b/fminer.rb
@@ -85,6 +85,31 @@ get "/fminer/last/?" do
end
end
+# Creates same features for dataset <dataset_uri> that have been created
+# with fminer in dataset <feature_dataset_uri>
+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 @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|
+ res_dataset.add(c,f,1) if comp.match?(m[OT.smarts])
+ end
+ end
+ res_dataset.save
+ res_dataset.uri
+ end
+ return_task(task)
+end
+
# Run bbrc algorithm on dataset
#
# @param [String] dataset_uri URI of the training dataset