summaryrefslogtreecommitdiff
path: root/fminer.rb
diff options
context:
space:
mode:
authorDavid Vorgrimmler <vorgrimmlerdavid@gmx.de>2010-07-20 18:38:45 +0200
committerDavid Vorgrimmler <vorgrimmlerdavid@gmx.de>2010-07-20 18:38:45 +0200
commited902f9233ba62a775889d4fdf4e7a7695c23470 (patch)
treec7d163e3c4604b15bbcf9f88fda8f84d07ac73b3 /fminer.rb
parent3b36d0d8e025a10b7743aaf138e34f134618b1f0 (diff)
Activating property calculation for regression
Diffstat (limited to 'fminer.rb')
-rw-r--r--fminer.rb22
1 files changed, 18 insertions, 4 deletions
diff --git a/fminer.rb b/fminer.rb
index 9242f9f..3554dbb 100644
--- a/fminer.rb
+++ b/fminer.rb
@@ -21,7 +21,7 @@ get '/fminer/?' do
end
post '/fminer/?' do
-
+
halt 404, "Please submit a dataset_uri." unless params[:dataset_uri] and !params[:dataset_uri].nil?
halt 404, "Please submit a feature_uri." unless params[:feature_uri] and !params[:feature_uri].nil?
LOGGER.debug "Dataset: " + params[:dataset_uri]
@@ -48,9 +48,10 @@ post '/fminer/?' do
id = 1 # fminer start id is not 0
compounds = []
+ g_hash = Hash.new# DV: for effect calculation in regression part
@@fminer.Reset
LOGGER.debug "Fminer: initialising ..."
- training_dataset.data.each do |c,features|
+ training_dataset.data.each do |c,features|
begin
smiles = OpenTox::Compound.new(:uri => c.to_s).smiles
rescue
@@ -82,6 +83,7 @@ post '/fminer/?' do
begin
@@fminer.AddCompound(smiles,id)
@@fminer.AddActivity(activity, id)
+ g_hash[id]=activity # DV: insert global information
rescue
LOGGER.warn "Could not add " + smiles + "\t" + act.to_s + " to fminer"
end
@@ -90,6 +92,8 @@ post '/fminer/?' do
id += 1
end
end
+ g_array=g_hash.values # DV: calculation of global median for effect calculation
+ g_median=OpenTox::Utils.median(g_array)
minfreq = (0.06*id).round
@@fminer.SetMinfreq(minfreq)
LOGGER.debug "Fminer: initialised with #{id} compounds, minimum frequency #{minfreq}"
@@ -113,9 +117,19 @@ post '/fminer/?' do
else
effect = 'deactivating'
end
- else
+ else #regression part
ids = f[2]
- effect = 'activating' # AM: Pending: needs analysis of median act
+ # DV: effect calculation
+ f_arr=Array.new
+ f[2].each do |id|
+ f_arr.push(g_hash[id])
+ end
+ f_median=OpenTox::Utils.median(f_arr)
+ if g_median >= f_median
+ effect = 'activating'
+ else
+ effect = 'deactivating'
+ end
end
tuple = {