summaryrefslogtreecommitdiff
path: root/application.rb
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2013-03-04 10:28:02 +0100
committergebele <gebele@in-silico.ch>2013-03-04 10:28:02 +0100
commit0c2554a5a2c3aebf3e99d70fee2075a9b99f9abe (patch)
tree5b4085247b2a9edebdb027a75f85c4ae584f3017 /application.rb
first commit
Diffstat (limited to 'application.rb')
-rw-r--r--application.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/application.rb b/application.rb
new file mode 100644
index 0000000..bd1985c
--- /dev/null
+++ b/application.rb
@@ -0,0 +1,58 @@
+require 'rubygems'
+require 'compass' #must be loaded before sinatra
+require 'sinatra'
+require 'haml' #must be loaded after sinatra
+require 'opentox-client'
+require 'opentox-server'
+require File.join(File.dirname(__FILE__),'helper.rb')
+require File.join(ENV["HOME"],".opentox","config","lazar-gui.rb")
+
+
+get '/?' do
+ redirect to('/predict')
+end
+
+get '/predict/?' do
+ @models = []
+ models = OpenTox::Model.all $model[:uri]
+ models.each do |model|
+ model.get
+ @models << model
+ end
+ haml :predict
+end
+
+post '/predict/?' do
+ @identifier = params[:identifier]
+ @compound = OpenTox::Compound.from_smiles $compound[:uri], @identifier.to_s
+ @models = []
+ @predictions = []
+ lazar = OpenTox::Algorithm.new File.join($algorithm[:uri],"lazar")
+
+ params[:selection].each do |model|
+ @mselected = model[0]
+ @mall = OpenTox::Model.all $model[:uri]
+ @mall.each do |m|
+ m.get
+ @models << m if m.title.match("#{@mselected}")
+ end
+ end
+ @models.each do |m|
+ @prediction_uri = m.run :compound_uri => "#{@compound.uri}"
+ prediction = OpenTox::Dataset.new @prediction_uri
+ @predictions << prediction
+ end
+
+ @prediction_results = []
+ @predictions.each{|p| @prediction_results << p.get}
+
+
+ haml :prediction
+end
+
+get '/stylesheets/:name.css' do
+ content_type 'text/css', :charset => 'utf-8'
+ sass(:"stylesheets/#{params[:name]}", Compass.sass_engine_options )
+end
+
+