From dd774317497160966f2b1012733ebc50fa37f962 Mon Sep 17 00:00:00 2001 From: David Vorgrimmler Date: Mon, 14 May 2012 11:41:52 +0200 Subject: Added bbrc_sample scripts. --- bbrc-sample/bbrc_sample.rb | 71 ++++++++++++++++++++++++++++++++++++++ bbrc-sample/datasets.yaml | 36 +++++++++++++++++++ bbrc-sample/factors_config | 36 +++++++++++++++++++ bbrc-sample/wrapper_bbrc_sample.sh | 45 ++++++++++++++++++++++++ 4 files changed, 188 insertions(+) create mode 100644 bbrc-sample/bbrc_sample.rb create mode 100644 bbrc-sample/datasets.yaml create mode 100644 bbrc-sample/factors_config create mode 100755 bbrc-sample/wrapper_bbrc_sample.sh diff --git a/bbrc-sample/bbrc_sample.rb b/bbrc-sample/bbrc_sample.rb new file mode 100644 index 0000000..98c02ef --- /dev/null +++ b/bbrc-sample/bbrc_sample.rb @@ -0,0 +1,71 @@ +# Do a 10-fold crossvalidation +# # Author: Andreas Maunz, David Vorgrimmler +# # @params: Dataset_name(see dataset.yaml), pc_type(electronic,cpsa or constitutional ... or nil to disable), prediction_algorithm(local_mlr_prop or local_svm_regression ...), algo_params (e.g. ;param_name1=param_value1;param_name2=param_value2 or nil), random_seed (1, 2, ... or 10), path (e.g. ../data/dataset.yaml) + +require 'rubygems' +require 'opentox-ruby' +require 'yaml' + +if ARGV.size != 3 + puts "Args: path/to/dataset.yaml ds_name num_boots" + puts ARGV.size + exit +end + +path = ARGV[0] +ds_file = path.split("/").last + +if File.exists?(path) + puts "[#{Time.now.utc.iso8601(4).to_s}] #{ds_file} exists." +else + puts "#{ds_file} does not exist." + exit +end + +subjectid = nil + +ds_name = ARGV[1] # e.g. MOU +num_boots = ARGV[2] # e.g. electronic,cpsa or nil to disable + +ds = YAML::load_file("#{path}") +ds_uri = ds[ds_name]["dataset"] + +algo_params = {} +algo_params["dataset_uri"] = ds_uri +algo_params["num_boots"] = num_boots + +puts "[#{Time.now.utc.iso8601(4).to_s}] #{algo_params.to_yaml}" + +ds = OpenTox::Dataset.find(ds_uri) +ds_nr_de = ds.data_entries.size +ds_nr_com = ds.compounds.size +t = Time.now +result_uri = OpenTox::RestClientWrapper.post( File.join(CONFIG[:services]["opentox-algorithm"],"fminer/bbrc/sample"), algo_params ) +duration = Time.now - t +ds_result = OpenTox::Dataset.find(result_uri) +ds_result_nr_de = ds_result.data_entries.size +ds_result_nr_com = ds_result.compounds.size +ds_result_nr_f = ds_result.features.size + +min_sampling_support = ds_result.metadata[OT::parameters][2][OT::paramValue] +num_boots = ds_result.metadata[OT::parameters][3][OT::paramValue] +min_frequency_per_sample = ds_result.metadata[OT::parameters][4][OT::paramValue] +nr_hits = ds_result.metadata[OT::parameters][5][OT::paramValue] +merge_time = ds_result.metadata[OT::parameters][6][OT::paramValue] +n_stripped_mss = ds_result.metadata[OT::parameters][7][OT::paramValue] +n_stripped_cst = ds_result.metadata[OT::parameters][8][OT::paramValue] +random_seed = ds_result.metadata[OT::parameters][9][OT::paramValue] + +puts +puts "[#{Time.now.utc.iso8601(4).to_s}] Bbrc result: #{result_uri}" +puts "[#{Time.now.utc.iso8601(4).to_s}] nr dataentries: #{ds_result_nr_de} , (of #{ds_nr_de} )" +puts "[#{Time.now.utc.iso8601(4).to_s}] nr dataentries: #{ds_result_nr_com} , (of #{ds_nr_com} )" +puts "[#{Time.now.utc.iso8601(4).to_s}] nr features: #{ds_result_nr_f}" +puts "[#{Time.now.utc.iso8601(4).to_s}] Merge time: #{merge_time}" +puts "[#{Time.now.utc.iso8601(4).to_s}] Duration: #{duration}" + +puts "=hyperlink(\"#{ds_uri}\";\"#{ds_name}\"),#{num_boots},#{min_sampling_support},#{min_frequency_per_sample},#{nr_hits},=hyperlink(\"#{result_uri}\";\"bbrc_result\"),#{ds_result_nr_com},#{ds_nr_com},#{ds_result_nr_f},#{duration},#{merge_time},#{n_stripped_mss},#{n_stripped_cst},#{random_seed}" + +puts "------------------------" +puts + diff --git a/bbrc-sample/datasets.yaml b/bbrc-sample/datasets.yaml new file mode 100644 index 0000000..409b0f3 --- /dev/null +++ b/bbrc-sample/datasets.yaml @@ -0,0 +1,36 @@ +{ + + "SAL": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/4649" + }, + + "MOU": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/7843" + }, + + "MCC": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/7868" + }, + + "RAT": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/7970" + }, + + "BB": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/7971" + }, + + "NCT": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/7972" + }, + + "YOSH": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/7973" + }, + + "YOSH2": { + "dataset": "http://toxcreate3.in-silico.ch:8086/dataset/45267" + } + + +} diff --git a/bbrc-sample/factors_config b/bbrc-sample/factors_config new file mode 100644 index 0000000..a9de64d --- /dev/null +++ b/bbrc-sample/factors_config @@ -0,0 +1,36 @@ +#Dataset num_boots +SAL 500 +SAL 400 +SAL 300 +SAL 200 +SAL 100 +MOU 500 +MOU 400 +MOU 300 +MOU 200 +MOU 100 +MCC 500 +MCC 400 +MCC 300 +MCC 200 +MCC 100 +RAT 500 +RAT 400 +RAT 300 +RAT 200 +RAT 100 +BB 500 +BB 400 +BB 300 +BB 200 +BB 100 +NCT 500 +NCT 400 +NCT 300 +NCT 200 +NCT 100 +YOSH 500 +YOSH 400 +YOSH 300 +YOSH 200 +YOSH 100 diff --git a/bbrc-sample/wrapper_bbrc_sample.sh b/bbrc-sample/wrapper_bbrc_sample.sh new file mode 100755 index 0000000..26eeaa4 --- /dev/null +++ b/bbrc-sample/wrapper_bbrc_sample.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# Wrapper +# David Vorgrimmler, 2012 + +if [ $# -lt 2 ]; then + echo "Usage: $0 factors path/to/dataset.yaml" + exit +fi + +#PWD=`pwd` +#echo $PWD +#if [ ! -f $PWD/../data/datasets.yaml ] +if [ ! -f $2 ] +then + echo "datasets.yaml does not exist." + exit +fi + +# Configure basics +source $HOME/.bash_aliases +otconfig +THIS_DATE=`date +%Y%m%d_%H_` +BBRC="bbrc_sample.rb" +FACTORS="$1" + +# Don't start when running +while ps x | grep $BBRC | grep -v grep >/dev/null 2>&1; do sleep 30; done + +LOGFILE="$THIS_DATE""$USER""_bbrc_sample.log" +#rm "$LOGFILE" >/dev/null 2>&1 +if [ -f $LOGFILE ] +then + LOGFILE="$LOGFILE`date +%M%S`" +fi + + +cat $FACTORS | while read factor; do + if ! [[ "$factor" =~ "#" ]]; then # allow comments + echo "${THIS_DATE}: $factor" >> $LOGFILE>&1 + echo "ruby $BBRC $2 $factor" >> $LOGFILE 2>&1 + ruby $BBRC $2 $factor >> $LOGFILE 2>&1 + echo >> $LOGFILE 2>&1 + fi +done + -- cgit v1.2.3