summaryrefslogtreecommitdiff
path: root/lazar.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.de>2010-03-15 13:41:10 +0100
committerChristoph Helma <helma@in-silico.de>2010-03-15 13:41:10 +0100
commit55edc357dc7a33f258fb5117f5d0084a4f1eb8ed (patch)
tree309d5b55293c91972694b10a7e3e3b1ad588e2ad /lazar.rb
parent278933dddbfa4f77d42175d4849a5737f086ab16 (diff)
small modification to internal yaml representation
Diffstat (limited to 'lazar.rb')
-rw-r--r--lazar.rb39
1 files changed, 25 insertions, 14 deletions
diff --git a/lazar.rb b/lazar.rb
index 5d551a5..d2834bd 100644
--- a/lazar.rb
+++ b/lazar.rb
@@ -8,8 +8,7 @@ post '/lazar/?' do # create a model
LOGGER.debug "Dataset: " + params[:dataset_uri]
LOGGER.debug "Endpoint: " + params[:feature_uri]
LOGGER.debug "Feature generation: " + params[:feature_generation_uri]
- dataset_uri = "#{params[:dataset_uri]}"#?feature_uris\\[\\]=#{CGI.escape(params[:feature_uri])}"
- #dataset_uri = "#{params[:dataset_uri]}?feature_uris\\[\\]=#{CGI.escape(params[:feature_uri])}"
+ dataset_uri = "#{params[:dataset_uri]}"
begin
training_activities = OpenTox::Dataset.find(dataset_uri)
rescue
@@ -43,23 +42,36 @@ post '/lazar/?' do # create a model
halt 404, "Dataset #{feature_dataset_uri} not found." if training_features.nil?
lazar = OpenTox::Model::Lazar.new
lazar.dependent_variable = params[:feature_uri]
- training_features.data.each do |compound,feature|
+ halt 404, "More than one descriptor type" unless training_features.features.size == 1
+ bbrc = training_features.features.first
+ training_features.data.each do |compound,features|
lazar.fingerprints[compound] = [] unless lazar.fingerprints[compound]
- feature.each do |uri,fragment|
- if uri.match(/BBRC_representative/)
- smarts = fragment["http://localhost/algorithm/fminer#smarts"]
- lazar.fingerprints[compound] << smarts
- lazar.features << smarts
- lazar.p_values[smarts] = fragment["http://localhost/algorithm/fminer#p_value"]
- lazar.effects[smarts] = fragment["http://localhost/algorithm/fminer#effect"]
+ features.each do |feature|
+ tuple = feature[bbrc]
+ if tuple
+ smarts =nil; p_value = nil; effect = nil
+ tuple.each do |k,v|
+ case k
+ when /fminer#smarts/
+ smarts = v
+ lazar.features << smarts
+ lazar.fingerprints[compound] << smarts
+ when /fminer#p_value/
+ p_value = v
+ when /fminer#effect/
+ effect = v
+ end
+ end
+ lazar.p_values[smarts] = p_value
+ lazar.effects[smarts] = effect
end
end
end
activities = {}
- training_activities.data.each do |compound,feature|
+ training_activities.data.each do |compound,features|
lazar.activities[compound] = [] unless lazar.activities[compound]
- feature[params[:feature_uri]].each do |f|
- case f.to_s
+ features.each do |feature|
+ case feature[params[:feature_uri]].to_s
when "true"
lazar.activities[compound] << true
when "false"
@@ -81,6 +93,5 @@ post '/lazar/?' do # create a model
#status 303
response['Content-Type'] = 'text/uri-list'
task.uri + "\n"
- #model.uri
end