From dcd8379fcd2448b83f1b390fc74bb0b4025f8dd8 Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Mon, 7 May 2012 08:36:18 +0200 Subject: Embedded R code --- application.rb | 1 + bbrc-sample | 2 +- fminer.rb | 15 +++++++++++++++ last-utils | 2 +- 4 files changed, 18 insertions(+), 2 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 index 0043519..fc4ae7d 160000 --- a/bbrc-sample +++ b/bbrc-sample @@ -1 +1 @@ -Subproject commit 00435190a8f49e43fc5194a024156300472294e3 +Subproject commit fc4ae7d22a60838a62747069660542c304ce2f12 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 index efcc3f4..8a3dd9b 160000 --- a/last-utils +++ b/last-utils @@ -1 +1 @@ -Subproject commit efcc3f41dd9e2f590a1520dfee3bf709120b2e41 +Subproject commit 8a3dd9bb550f0ea264c2f4e844f664f0a42ca16f -- cgit v1.2.3