diff options
Diffstat (limited to 'reach_reports')
-rwxr-xr-x | reach_reports/reach_application.rb | 110 | ||||
-rwxr-xr-x | reach_reports/reach_persistance.rb | 4 | ||||
-rwxr-xr-x | reach_reports/reach_service.rb | 51 |
3 files changed, 85 insertions, 80 deletions
diff --git a/reach_reports/reach_application.rb b/reach_reports/reach_application.rb index 9b45e8b..fe40487 100755 --- a/reach_reports/reach_application.rb +++ b/reach_reports/reach_application.rb @@ -3,7 +3,7 @@ require lib end -QMRF_EDITOR_URI = "http://ortona.informatik.uni-freiburg.de/qmrfedit2/OT_QMRFEditor.jnlp" +QMRF_EDITOR_URI = "http://ortona.informatik.uni-freiburg.de/qmrfedit/OT_QMRFEditor.jnlp" # hack for as long as mysql lite is used def mysql_lite_retry( n_times=15 ) @@ -25,7 +25,7 @@ require 'reach_reports/reach_service.rb' require "lib/format_util.rb" def extract_type(params) - halt 400, "illegal type, neither QMRF nor QPRF: "+params[:type] unless params[:type] && params[:type] =~ /(?i)Q(M|P)RF/ + raise OpenTox::BadRequestError.new "illegal type, neither QMRF nor QPRF: "+params[:type] unless params[:type] && params[:type] =~ /(?i)Q(M|P)RF/ params.delete("type") end @@ -96,7 +96,7 @@ get '/reach_report/:type/:id' do case request.env['HTTP_ACCEPT'].to_s when "application/rdf+xml" - halt 400, "application/rdf+xml not yet supported" + raise OpenTox::BadRequestError.new "application/rdf+xml not yet supported" owl = OpenTox::Owl.create(type+"Report",rep.report_uri) owl.set_data( rep.get_content.keys_to_rdf_format ) owl.rdf @@ -117,7 +117,7 @@ get '/reach_report/:type/:id' do content_type "application/x-yaml" rep.to_yaml else - halt 400, "MIME type '"+request.env['HTTP_ACCEPT'].to_s+"' not supported, valid Accept-Headers are \"application/rdf+xml\", \"application/x-yaml\", \"application/qmrf-xml\"." + raise OpenTox::BadRequestError.new "MIME type '"+request.env['HTTP_ACCEPT'].to_s+"' not supported, valid Accept-Headers are \"application/rdf+xml\", \"application/x-yaml\", \"application/qmrf-xml\"." end end @@ -128,7 +128,7 @@ post '/reach_report/:type/:id' do rep = ReachReports.get_report(type, params[:id]) input = request.env["rack.input"].read - halt 400, "no xml data specified" unless input && input.to_s.size>0 + raise OpenTox::BadRequestError.new "no xml data specified" unless input && input.to_s.size>0 LOGGER.debug "size of posted data: "+input.to_s.size.to_s ReachReports::QmrfReport.from_xml(rep,input) @@ -165,63 +165,63 @@ get '/reach_report/:type/:id/editor' do jnlp = <<EOF <?xml version ="1.0" encoding="utf-8"?> -<jnlp spec="1.0+" codebase="http://opentox.informatik.uni-freiburg.de/" href="qmrfedit2/OT_QMRFEditor.jnlp" > +<jnlp spec="1.0+" codebase="http://opentox.informatik.uni-freiburg.de/" href="qmrfedit/OT_QMRFEditor.jnlp" > <information> <title>QMRF Editor</title> <vendor>www.opentox.org</vendor> <description>(Q)SAR Model Reporting Format Editor</description> <description kind="short">(Q)SAR Model Reporting Format Editor</description> -<icon href="qmrfedit2/OTLogo.png" /> +<icon href="qmrfedit/OTLogo.png" /> </information> <resources> <j2se version="1.6+" java-vm-args="-Xincgc"/> -<jar href="qmrfedit2/OT_QMRFEditor.jar" download="eager" main="true"/> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-applications.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-builder3d.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-charges.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-core.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-datadebug.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-data.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-experimental.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-extra.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-forcefield.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-interfaces.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-io.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-jchempaint.applet.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-jchempaint.application.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-jchempaint.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-libio-cml.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-libio-weka.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-nonotify.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-pdb-cml.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-pdb.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-qsar-cml.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-qsar.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/cdk-qsar-pdb.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/commons-cli-1.0.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/commons-io-1.1.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/commons-logging-1.0.4.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/commons-codec-1.3.jar" download="eager" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/fop.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/jai_codec.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/jai_core.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/jgrapht-0.6.0.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/jh.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/l2fprod-common-all.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/libfonts-0.1.4.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/log4j-1.2.8.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/log4j.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/mysql-connector-java-5.0.5-bin.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/naming-factory-dbcp.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/naming-factory.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/naming-resources.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/opsin-big-0.1.0.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/org.restlet.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/swing-layout-1.0.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/xmlgraphics-commons-1.1.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/xom-1.1b2.jar" download="lazy" /> -<jar href="qmrfedit2/OT_QMRFEditor_lib/xom-1.1.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor.jar" download="eager" main="true"/> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-applications.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-builder3d.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-charges.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-core.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-datadebug.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-data.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-experimental.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-extra.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-forcefield.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-interfaces.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-io.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-jchempaint.applet.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-jchempaint.application.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-jchempaint.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-libio-cml.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-libio-weka.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-nonotify.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-pdb-cml.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-pdb.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-qsar-cml.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-qsar.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/cdk-qsar-pdb.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/commons-cli-1.0.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/commons-io-1.1.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/commons-logging-1.0.4.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/commons-codec-1.3.jar" download="eager" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/fop.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/jai_codec.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/jai_core.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/jgrapht-0.6.0.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/jh.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/l2fprod-common-all.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/libfonts-0.1.4.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/log4j-1.2.8.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/log4j.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/mysql-connector-java-5.0.5-bin.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/naming-factory-dbcp.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/naming-factory.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/naming-resources.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/opsin-big-0.1.0.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/org.restlet.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/swing-layout-1.0.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/xmlgraphics-commons-1.1.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/xom-1.1b2.jar" download="lazy" /> +<jar href="qmrfedit/OT_QMRFEditor_lib/xom-1.1.jar" download="lazy" /> </resources> @@ -240,8 +240,8 @@ EOF jnlp += <<EOF </argument> -<argument>-d http://opentox.informatik.uni-freiburg.de/qmrfedit2/qmrf.dtd</argument> -<argument>-t http://opentox.informatik.uni-freiburg.de/qmrfedit2/verdana.ttf</argument> +<argument>-d http://opentox.informatik.uni-freiburg.de/qmrfedit/qmrf.dtd</argument> +<argument>-t http://opentox.informatik.uni-freiburg.de/qmrfedit/verdana.ttf</argument> </application-desc> <security> diff --git a/reach_reports/reach_persistance.rb b/reach_reports/reach_persistance.rb index 2dd687a..1226d95 100755 --- a/reach_reports/reach_persistance.rb +++ b/reach_reports/reach_persistance.rb @@ -1209,6 +1209,8 @@ module ReachReports AttachmentDocument, QsarMiscellaneous, QmrfSummary, QmrfReport ].each do |model| model.auto_upgrade! model.raise_on_save_failure = true - end + end + end + end
\ No newline at end of file diff --git a/reach_reports/reach_service.rb b/reach_reports/reach_service.rb index 1ec48e8..fa4c0d7 100755 --- a/reach_reports/reach_service.rb +++ b/reach_reports/reach_service.rb @@ -162,33 +162,36 @@ module ReachReports next if cvs.size==0 lmo << "crossvalidation/s on "+desc cvs.each do |cv| - lmo << "crossvalidation: "+cv.crossvalidation_uri - lmo << "dataset (see 9.3 Validation data): "+cv.dataset_uri - val_datasets << cv.dataset_uri - lmo << "settings: num-folds="+cv.num_folds.to_s+", random-seed="+cv.random_seed.to_s+", stratified:"+cv.stratified.to_s - - val = YAML.load( OpenTox::RestClientWrapper.get(File.join(cv.crossvalidation_uri,"statistics"),{:subjectid => r.subjectid}) ) - case feature_type - when "classification" - lmo << "percent_correct: "+val[OT.classificationStatistics][OT.percentCorrect].to_s - lmo << "weighted AUC: "+val[OT.classificationStatistics][OT.weightedAreaUnderRoc].to_s - when "regression" - lmo << "root_mean_squared_error: "+val[OT.regressionStatistics][OT.rootMeanSquaredError].to_s - lmo << "r_square "+val[OT.regressionStatistics][OT.rSquare].to_s - end - reports = OpenTox::RestClientWrapper.get(File.join(CONFIG[:services]["opentox-validation"], - "report/crossvalidation?crossvalidation_uris="+cv.crossvalidation_uri),{:subjectid => r.subjectid}) - if reports and reports.chomp.size>0 - lmo << "for more info see report: "+reports.split("\n")[0] - else - lmo << "for more info see report: not yet created for '"+cv.crossvalidation_uri+"'" + begin + lmo << "crossvalidation: "+cv.crossvalidation_uri + lmo << "dataset (see 9.3 Validation data): "+cv.dataset_uri + val_datasets << cv.dataset_uri + lmo << "settings: num-folds="+cv.num_folds.to_s+", random-seed="+cv.random_seed.to_s+", stratified:"+cv.stratified.to_s + + val = YAML.load( OpenTox::RestClientWrapper.get(File.join(cv.crossvalidation_uri,"statistics"),{:subjectid => r.subjectid}) ) + case feature_type + when "classification" + lmo << "percent_correct: "+val[OT.classificationStatistics][OT.percentCorrect].to_s + lmo << "weighted AUC: "+val[OT.classificationStatistics][OT.weightedAreaUnderRoc].to_s + when "regression" + lmo << "root_mean_squared_error: "+val[OT.regressionStatistics][OT.rootMeanSquaredError].to_s + lmo << "r_square "+val[OT.regressionStatistics][OT.rSquare].to_s + end + reports = OpenTox::RestClientWrapper.get(File.join(CONFIG[:services]["opentox-validation"], + "report/crossvalidation?crossvalidation_uris="+cv.crossvalidation_uri),{:subjectid => r.subjectid}) + if reports and reports.chomp.size>0 + lmo << "for more info see report: "+reports.split("\n")[0] + else + lmo << "for more info see report: not yet created for '"+cv.crossvalidation_uri+"'" + end + rescue => ex + LOGGER.warn "could not add cv "+cv.crossvalidation_uri+" : "+ex.message end end lmo << "" end end - - else + else lmo = [ "no prediction algortihm for model found, crossvalidation not possible" ] end r.qsar_robustness.lmo = lmo.to_html @@ -276,7 +279,7 @@ module ReachReports end end task.progress(90) if task - + mysql_lite_retry do r.save end @@ -287,7 +290,7 @@ module ReachReports # # report_content = get_report(type, id).get_content # keys.each do |k| -# $sinatra.halt 400, type+" unknown report property '#{key}'" unless report_content.is_a?(Hash) and report_content.has_key?(k) +# $sinatra.raise OpenTox::BadRequestError.new type+" unknown report property '#{key}'" unless report_content.is_a?(Hash) and report_content.has_key?(k) # report_content = report_content[k] # end # report_content |