summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Maunz <andreas@maunz.de>2012-05-07 08:36:18 +0200
committerAndreas Maunz <andreas@maunz.de>2012-05-07 08:36:18 +0200
commitdcd8379fcd2448b83f1b390fc74bb0b4025f8dd8 (patch)
tree4e446b41d448f2b20dadfbb2ae63949b372dbf57
parent8b024e1b1b950e7a66c3bcab7c78f119c731aa3a (diff)
Embedded R code
-rw-r--r--application.rb1
m---------bbrc-sample0
-rw-r--r--fminer.rb15
m---------last-utils0
4 files changed, 16 insertions, 0 deletions
diff --git a/application.rb b/application.rb
index b00ba9f..ee1bf65 100644
--- a/application.rb
+++ b/application.rb
@@ -20,6 +20,7 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'last-utils/lu.rb')
gem "opentox-ruby", "~> 3"
require 'opentox-ruby'
require 'rjb'
+require 'rinruby'
# main
diff --git a/bbrc-sample b/bbrc-sample
-Subproject 00435190a8f49e43fc5194a024156300472294e
+Subproject fc4ae7d22a60838a62747069660542c304ce2f1
diff --git a/fminer.rb b/fminer.rb
index 53985ab..cec902e 100644
--- a/fminer.rb
+++ b/fminer.rb
@@ -345,10 +345,25 @@ post '/fminer/bbrc/sample/?' do
raise "No compounds in dataset #{fminer.training_dataset.uri}" if fminer.compounds.size==0
+
# run bbrc-sample, obtain smarts and p-values
features = Set.new
task.progress 10
+ @r = RinRuby.new(true,false) # global R instance leads to Socket errors after a large number of requests
+ @r.assign "dataset.uri", params[:dataset_uri]
+ @r.assign "prediction.feature.uri", fminer.prediction_feature.uri
+ @r.assign "num.boots", num_boots
+ @r.assign "min.frequency.per.sample", fminer.minfreq
+ @r.assign "min.sampling.support", min_sampling_support
+ @r.assign "bbrc.service", File.join(CONFIG[:services]["opentox-algorithm"], "fminer/bbrc")
+ @r.assign "dataset.service", CONFIG[:services]["opentox-dataset"]
+
+ @r.eval "source(\"bbrc-sample/bbrc-sample.R\")"
+ @r.eval "bootBbrc(dataset.uri, prediction.feature.uri, num.boots, min.frequency.per.sample, min.sampling.support, NULL, bbrc.service, dataset.service, F)"
+
+ smarts = (@r.pull "ans.patterns").collect! { |id| id.gsub(/\'/,"") } # remove extra quotes
+ r_p_values = @r.pull "ans.p.values"
# matching
task.progress 90
diff --git a/last-utils b/last-utils
-Subproject efcc3f41dd9e2f590a1520dfee3bf709120b2e4
+Subproject 8a3dd9bb550f0ea264c2f4e844f664f0a42ca16