diff options
-rw-r--r-- | README | 12 | ||||
-rw-r--r-- | application.rb | 2 | ||||
-rwxr-xr-x | lazar.rb | 29 | ||||
-rw-r--r-- | public/robots.txt | 2 |
4 files changed, 28 insertions, 17 deletions
@@ -21,22 +21,22 @@ Supported MIME formats (http://chemical-mime.sourceforge.net/): Examples: List all lazar models - curl http://webservices.in-silico.ch/test/model + curl http://webservices.in-silico.ch/model Get the representation of a lazar model - curl -H "Accept:application/rdf+xml" http://webservices.in-silico.ch/test/model/{id} + curl -H "Accept:application/rdf+xml" http://webservices.in-silico.ch/model/{id} Predict a compound - curl -X POST -d compound_uri={compound_uri} http://webservices.in-silico.ch/test/model/{id} + curl -X POST -d compound_uri={compound_uri} http://webservices.in-silico.ch/model/{id} Predict a compound and get the result as YAML - curl -X POST -H "Accept:application/x-yaml" -d compound_uri={compound_uri} http://webservices.in-silico.ch/test/model/{id} + curl -X POST -H "Accept:application/x-yaml" -d compound_uri={compound_uri} http://webservices.in-silico.ch/model/{id} Predict a dataset - curl -X POST -d dataset_uri={dataset_uri} http://webservices.in-silico.ch/test/model/{id} + curl -X POST -d dataset_uri={dataset_uri} http://webservices.in-silico.ch/model/{id} Delete a model - curl -X DELETE http://webservices.in-silico.ch/test/model/{id} + curl -X DELETE http://webservices.in-silico.ch/model/{id} More documentation: Source code (application.rb, lazar.rb) diff --git a/application.rb b/application.rb index a04b60d..7538196 100644 --- a/application.rb +++ b/application.rb @@ -1,5 +1,5 @@ require 'rubygems' -gem 'opentox-ruby-api-wrapper', '= 1.4.4.4' +gem "opentox-ruby-api-wrapper", "= 1.5.6" require 'opentox-ruby-api-wrapper' LOGGER.progname = File.expand_path(__FILE__) @@ -3,8 +3,6 @@ class Lazar < Model attr_accessor :prediction_dataset def classify(compound_uri,prediction) - - prediction.title += " lazar classification" lazar = YAML.load self.yaml compound = OpenTox::Compound.new(:uri => compound_uri) @@ -46,6 +44,11 @@ class Lazar < Model :confidence => conf, :similarities => similarities, :features => compound_matches + # uncomment to enable owl-dl serialisation of predictions + # url_for("/lazar#classification") => classification, + # url_for("/lazar#confidence") => conf, + # url_for("/lazar#similarities") => similarities, + # url_for("/lazar#features") => compound_matches } prediction.data[compound_uri] << {feature_uri => tuple} end @@ -57,16 +60,17 @@ class Lazar < Model lazar = YAML.load self.yaml db_activities = lazar.activities[compound_uri] if db_activities - prediction.source = lazar.trainingDataset + prediction.creator = lazar.trainingDataset feature_uri = lazar.dependentVariables prediction.compounds << compound_uri prediction.features << feature_uri prediction.data[compound_uri] = [] unless prediction.data[compound_uri] db_activities.each do |act| - tuple = { - :classification => act, - :confidence => 1} - prediction.data[compound_uri] << {feature_uri => tuple} + prediction.data[compound_uri] << {feature_uri => act} + #tuple = { + # :classification => act} + #:confidence => "experimental"} + #prediction.data[compound_uri] << {feature_uri => tuple} end true else @@ -136,9 +140,9 @@ get '/:id/algorithm/?' do YAML.load(Lazar.get(params[:id]).yaml).algorithm end -get '/:id/training_dataset/?' do +get '/:id/trainingDataset/?' do response['Content-Type'] = 'text/plain' - YAML.load(Lazar.get(params[:id]).yaml).activity_dataset_uri + YAML.load(Lazar.get(params[:id]).yaml).trainingDataset end get '/:id/feature_dataset/?' do @@ -165,6 +169,7 @@ post '/:id/?' do # create prediction prediction = OpenTox::Dataset.new prediction.creator = lazar.uri prediction.title = URI.decode YAML.load(lazar.yaml).dependentVariables.split(/#/).last + prediction.title += " lazar classification" if compound_uri lazar.classify(compound_uri,prediction) unless lazar.database_activity?(compound_uri,prediction) @@ -185,7 +190,11 @@ elsif dataset_uri input_dataset.compounds.each do |compound_uri| lazar.classify(compound_uri,prediction) unless lazar.database_activity?(compound_uri,prediction) end - uri = prediction.save.chomp + begin + uri = prediction.save.chomp + rescue + halt 500, "Could not save prediction dataset" + end end halt 202,task_uri end diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..1f53798 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / |