diff options
author | Andreas Maunz <andreas@maunz.de> | 2012-02-09 15:31:01 +0100 |
---|---|---|
committer | Andreas Maunz <andreas@maunz.de> | 2012-02-09 15:31:01 +0100 |
commit | 49eb76b0f2c2037e4a1e664752271b7e4a955f72 (patch) | |
tree | 144ed6918f33046d503d6e66afaee1ec96f4d63a | |
parent | c80b7ac28dce2df193fb61c042b0563f35b48012 (diff) | |
parent | 0fa509eeab52c336552a38db1a3f7195f840a1f2 (diff) |
Merge branch 'development' into pc_new_1pc_new_1
-rw-r--r-- | fminer.rb | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -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 |