summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2013-09-26 20:07:32 +0200
committergebele <gebele@in-silico.ch>2013-09-26 20:07:32 +0200
commit1ab8ed01b72ba501f175b0b1ef87ed62bbec8844 (patch)
tree0704aa45cbca8bd139e6360150626e5faac5c6d1
parent13ffab048630cc30a4af9e9113c1843ae5af0a09 (diff)
small edits for new model names
-rw-r--r--application.rb17
-rw-r--r--prediction_models.csv3
-rw-r--r--public/stylesheets/screen.css2
-rw-r--r--public/stylesheets/screen.sass22
-rw-r--r--views/details.haml2
-rw-r--r--views/neighbors.haml6
-rw-r--r--views/predict.haml65
-rw-r--r--views/prediction.haml21
-rw-r--r--views/significant_fragments.haml12
9 files changed, 95 insertions, 55 deletions
diff --git a/application.rb b/application.rb
index 5cd5093..13d98cb 100644
--- a/application.rb
+++ b/application.rb
@@ -12,7 +12,7 @@ helpers do
# model uris must be manually added
@@models = []
CSV.foreach("./prediction_models.csv"){|uri| m = OpenTox::Model::Lazar.find uri[0]; @@models << m}
- #$logger.debug "model uris from csv file:\t#{@@models}\n"
+ $logger.debug "model uris from csv file:\t#{@@models}\n"
end
get '/?' do
@@ -55,7 +55,7 @@ get '/prediction/:model_uri/:type/:compound_uri/fingerprints/?' do
model = OpenTox::Model::Lazar.find params[:model_uri]
feature_dataset = OpenTox::Dataset.find model[RDF::OT.featureDataset]
@compound = OpenTox::Compound.new params[:compound_uri]
-
+ @significant_fragments = []
if @type =~ /classification/i
# collect all feature values with fingerprint
fingerprints = OpenTox::Algorithm::Descriptor.send("smarts_match", [@compound], feature_dataset.features.collect{ |f| f[RDF::DC.title]})[@compound.uri]
@@ -69,10 +69,16 @@ get '/prediction/:model_uri/:type/:compound_uri/fingerprints/?' do
@features = feature_dataset.features.collect{|f| f }
# search for each fingerprint in all features and collect feature values(smarts, pValue, effect)
- @significant_fragments = []
@fingerprint_values.each{ |fi, v| @features.each{ |f| @significant_fragments << [f[RDF::OT.effect].to_i, f[RDF::OT.smarts], f[RDF::OT.pValue]] if fi == f[RDF::OT.smarts] } }
else #regression
- @significant_fragments = []
+ feature_calc_algo = ""
+ model.parameters.each {|p|
+ if p[RDF::DC.title].to_s == "feature_calculation_algorithm"
+ feature_calc_algo = p[RDF::OT.paramValue].object
+ end
+ }
+ fingerprints = OpenTox::Algorithm::Descriptor.send( feature_calc_algo, [ @compound ], feature_dataset.features.collect{ |f| f[RDF::DC.title] } )
+ fingerprints.each{|x, h| h.each{|descriptor, value| @significant_fragments << [descriptor, [value]]}}
end
haml :significant_fragments, :layout => false
@@ -169,7 +175,7 @@ post '/predict/?' do
# selected model = model[0]
# compare selected with all models
@@models.each do |m|
- @prediction_models << m if m.title =~ /#{model[0]}/
+ @prediction_models << m if m.title =~ /#{model[0]}/i
end
end
@@ -205,4 +211,3 @@ get '/predict/stylesheets/:name.css' do
sass(:"stylesheets/#{params[:name]}", Compass.sass_engine_options )
end
-
diff --git a/prediction_models.csv b/prediction_models.csv
index e69de29..df45768 100644
--- a/prediction_models.csv
+++ b/prediction_models.csv
@@ -0,0 +1,3 @@
+https://dg.in-silico.ch/model/c939adda-a6ed-425e-8c39-5b679d9138a2,
+https://dg.in-silico.ch/model/885a138a-3011-47a9-9279-fd472141b9de,
+https://dg.in-silico.ch/model/7e1dda67-3bb7-4a97-b82b-136090faf4e0,
diff --git a/public/stylesheets/screen.css b/public/stylesheets/screen.css
index a81705c..6850732 100644
--- a/public/stylesheets/screen.css
+++ b/public/stylesheets/screen.css
@@ -1 +1 @@
-body{background-image:url("/images/gray_jean.png");overflow:scroll;font-family:sans-serif}body a{text-decoration:none;font-weight:bold;color:#000}body img{border:0}body h2{padding-top:12px;text-shadow:#fff 1px 1px 0;font-size:x-large;color:#f55}.logo img{float:left;display:inline;margin-right:1em}.logo h1{display:inline;width:80%}.logo img.ote{width:100px;height:50px;display:inline;float:right}.logo hr{margin:0.5em}.content{background-image:url("/images/gray_jean.png")}.content h1{margin:0.3em;text-shadow:#fff 1px 1px 0;font-size:x-large;font-family:Verdana;display:inline}.content .arrow{margin:8px 0px 5px 20px}.content .back{display:inline}.content #back-top{z-index:100;position:fixed;bottom:3%;margin-left:91%}.content #back-top a:hover{color:#bbb}.content fieldset#top{border:0;padding:10px;background-color:#c5c1e4;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset}.content fieldset#top a#linkInsert{display:block;width:100%;height:2em}.content fieldset#top #appletContainer{padding:10px}.content fieldset#middle{border:0;padding:10px;background-color:#c5c1e4;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset}.content fieldset#middle a#linkModels{display:block;width:100%;height:2em}.content fieldset#middle #endpoint{padding-top:2em}.content fieldset#middle #model a{display:inline;font-weight:normal}.content fieldset#middle a#linkDetailsLC50_mmol{font-size:small}.content fieldset#middle a#linkDetailsHamster{font-size:small}.content fieldset#middle a#linkDetailsRodent{font-size:small}.content fieldset#middle #details_LC50_mmol{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#middle #details_Hamster{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#middle #details_Rodent{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#bottom{border:0;background-color:#c5c1e4;padding:10px;margin-bottom:5em;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content fieldset#bottom input#predict{margin-left:1em}.content .predictions{background-color:#c5c1e4;padding:10px;text-align:justify;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content .overview{background-image:url("/images/gray_jean.png");padding:12px;margin-top:1em;margin-bottom:1em;text-align:left;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content .overview a:hover{color:#f55}.content .overview caption{text-align:left}.content .overview #overview tr td{background-color:#fff;border:1px solid #dad9c7;padding-left:1em;padding-top:0.5em}.content .overview #overview tr td #compound{width:200px}.content .overview #overview tr td b.c{color:#d42200}.content .overview #overview tr td b.n{color:#5c8533}.content .overview #overview tr td .confidence{display:inline}.content .error{background-color:#c5c1e4;padding:15px;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content .error .message{margin-top:1em;padding:1em;border:2px solid #f55;background-color:#fff;color:#f55;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content #closebutton{color:#f55;margin-left:98%;padding:0}.details{width:98%;background-color:#c5c1e4;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.details a:hover{color:#f55}.details img{display:inline;float:left;margin:0.5em}.significant_fragments{width:98%;margin-bottom:2em;background-color:#c5c1e4;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.significant_fragments img{display:inline;float:left;margin:0.5em}.significant_fragments table#sf1{text-align:left}.significant_fragments table#sf1 td{padding:0.2em}.descriptors{width:98%;margin-bottom:2em;background-color:#c5c1e4;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.descriptors img{display:inline;float:left;margin:0.5em}.descriptors table#sf2{text-align:left}.descriptors table#sf2 td{padding:0.2em}.results{background-image:url("/images/gray_jean.png");overflow-x:auto;overflow-y:hidden;margin-top:2em;margin-bottom:2em;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.results a:hover{color:#f55}.results .tablesorter{width:100%;text-align:left}.results .tablesorter thead{background-color:#e6e5f3}.results .tablesorter thead tr th.header{background-image:url("/images/bg.gif");background-repeat:no-repeat;background-position:center left;cursor:pointer;padding-left:20px;border:1px solid #dad9c7;margin-left:-1px}.results .tablesorter thead tr th.headerSortDown{background-image:url("/images/desc.gif");background-color:#c5c1e4}.results .tablesorter thead tr th.headerSortUp{background-image:url("/images/asc.gif");background-color:#c5c1e4}.results .tablesorter tbody tr td{padding-left:1em;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.results .tablesorter tbody .compound{width:200px;padding:0.2em}.results .tablesorter tbody .n{color:#5c8533}.results .tablesorter tbody .c{color:#d42200}input#predict{border:0px;background-color:#c5c1e4;margin:0;padding:0}.tooltip{background-color:#fff;border:2px solid #ccc;font-size:0.5em;padding:1em;display:none;z-index:50}.footer{margin:20px 0 20px 0}
+body{background-image:url("/images/gray_jean.png");overflow:scroll;font-family:sans-serif}body a{text-decoration:none;font-weight:bold;color:#000}body img{border:0}body h2{padding-top:12px;text-shadow:#fff 1px 1px 0;font-size:x-large;color:#f55}.logo img{float:left;display:inline;margin-right:1em}.logo h1{display:inline;width:80%}.logo img.ote{width:100px;height:50px;display:inline;float:right}.logo hr{margin:0.5em}.content{background-image:url("/images/gray_jean.png")}.content h1{margin:0.3em;text-shadow:#fff 1px 1px 0;font-size:x-large;font-family:Verdana;display:inline}.content .arrow{margin:8px 0px 5px 20px}.content .back{display:inline}.content #back-top{z-index:100;position:fixed;bottom:3%;margin-left:91%}.content #back-top a:hover{color:#bbb}.content fieldset#top{border:0;padding:10px;background-color:#c5c1e4;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset}.content fieldset#top a#linkInsert{display:block;width:100%;height:2em}.content fieldset#top #appletContainer{padding:10px}.content fieldset#middle{border:0;padding:10px;background-color:#c5c1e4;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset}.content fieldset#middle a#linkModels{display:block;width:100%;height:2em}.content fieldset#middle #endpoint{padding-top:2em}.content fieldset#middle #model a{display:inline;font-weight:normal}.content fieldset#middle #details_0{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#middle #details_1{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#middle #details_2{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#middle #details_3{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#middle #details_4{background-color:#e6e5f3;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;padding:1em}.content fieldset#bottom{border:0;background-color:#c5c1e4;padding:10px;margin-bottom:5em;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content fieldset#bottom input#predict{margin-left:1em}.content .predictions{background-color:#c5c1e4;padding:10px;text-align:justify;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content .overview{background-image:url("/images/gray_jean.png");padding:12px;margin-top:1em;margin-bottom:1em;text-align:left;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content .overview a:hover{color:#f55}.content .overview caption{text-align:left}.content .overview #overview tr td{background-color:#fff;border:1px solid #dad9c7;padding-left:1em;padding-top:0.5em}.content .overview #overview tr td #compound{width:200px}.content .overview #overview tr td b.c{color:#d42200}.content .overview #overview tr td b.n{color:#5c8533}.content .overview #overview tr td .confidence{display:inline}.content .error{background-color:#c5c1e4;padding:15px;-webkit-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,-1px -1px 5px rgba(0,0,0,0.3) inset;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content .error .message{margin-top:1em;padding:1em;border:2px solid #f55;background-color:#fff;color:#f55;-moz-border-radius-topleft:25px;-webkit-border-top-left-radius:25px;border-top-left-radius:25px;-moz-border-radius-bottomleft:25px;-webkit-border-bottom-left-radius:25px;border-bottom-left-radius:25px;-moz-border-radius-topright:25px;-webkit-border-top-right-radius:25px;border-top-right-radius:25px;-moz-border-radius-bottomright:25px;-webkit-border-bottom-right-radius:25px;border-bottom-right-radius:25px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box}.content #closebutton{color:#f55;margin-left:98%;padding:0}.details{width:98%;background-color:#c5c1e4;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.details a:hover{color:#f55}.details img{display:inline;float:left;margin:0.5em}.significant_fragments{width:98%;margin-bottom:2em;background-color:#c5c1e4;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.significant_fragments img{display:inline;float:left;margin:0.5em}.significant_fragments table#sf1{text-align:left}.significant_fragments table#sf1 td{padding:0.2em}.descriptors{width:98%;margin-bottom:2em;background-color:#c5c1e4;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-webkit-background-clip:border;-moz-background-clip:border;background-clip:border-box;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.descriptors img{display:inline;float:left;margin:0.5em}.descriptors table#sf2{text-align:left}.descriptors table#sf2 td{padding:0.2em}.results{background-image:url("/images/gray_jean.png");overflow-x:auto;overflow-y:hidden;margin-top:2em;margin-bottom:2em;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.results a:hover{color:#f55}.results .tablesorter{width:100%;text-align:left}.results .tablesorter thead{background-color:#e6e5f3}.results .tablesorter thead tr th.header{background-image:url("/images/bg.gif");background-repeat:no-repeat;background-position:center left;cursor:pointer;padding-left:20px;border:1px solid #dad9c7;margin-left:-1px}.results .tablesorter thead tr th.headerSortDown{background-image:url("/images/desc.gif");background-color:#c5c1e4}.results .tablesorter thead tr th.headerSortUp{background-image:url("/images/asc.gif");background-color:#c5c1e4}.results .tablesorter tbody tr td{padding-left:1em;-webkit-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;-moz-box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset;box-shadow:1px 1px 1px #fff inset,0px -1px 2px rgba(0,0,0,0.3) inset}.results .tablesorter tbody .compound{width:200px;padding:0.2em}.results .tablesorter tbody .n{color:#5c8533}.results .tablesorter tbody .c{color:#d42200}input#predict{border:0px;background-color:#c5c1e4;margin:0;padding:0}.tooltip{background-color:#fff;border:2px solid #ccc;font-size:0.5em;padding:1em;display:none;z-index:50}.footer{margin:20px 0 20px 0}
diff --git a/public/stylesheets/screen.sass b/public/stylesheets/screen.sass
index bfbedc6..9af4cdb 100644
--- a/public/stylesheets/screen.sass
+++ b/public/stylesheets/screen.sass
@@ -87,23 +87,27 @@ body
#model a
display: inline
font-weight: normal
- a#linkDetailsLC50_mmol
- font-size: small
- a#linkDetailsHamster
- font-size: small
- a#linkDetailsRodent
- font-size: small
- #details_LC50_mmol
+ #details_0
background-color: adjust-lightness($ist-color, 10%)
//background-image: url("/images/gray_jean.png")
+box-shadow(1px 1px 1px rgba(white, 1) inset, -1px -1px 5px rgba(black, 0.3) inset)
padding: 1em
- #details_Hamster
+ #details_1
background-color: adjust-lightness($ist-color, 10%)
//background-image: url("/images/gray_jean.png")
+box-shadow(1px 1px 1px rgba(white, 1) inset, -1px -1px 5px rgba(black, 0.3) inset)
padding: 1em
- #details_Rodent
+ #details_2
+ background-color: adjust-lightness($ist-color, 10%)
+ //background-image: url("/images/gray_jean.png")
+ +box-shadow(1px 1px 1px rgba(white, 1) inset, -1px -1px 5px rgba(black, 0.3) inset)
+ padding: 1em
+ #details_3
+ background-color: adjust-lightness($ist-color, 10%)
+ //background-image: url("/images/gray_jean.png")
+ +box-shadow(1px 1px 1px rgba(white, 1) inset, -1px -1px 5px rgba(black, 0.3) inset)
+ padding: 1em
+ #details_4
background-color: adjust-lightness($ist-color, 10%)
//background-image: url("/images/gray_jean.png")
+box-shadow(1px 1px 1px rgba(white, 1) inset, -1px -1px 5px rgba(black, 0.3) inset)
diff --git a/views/details.haml b/views/details.haml
index 5663c1f..b69f1af 100644
--- a/views/details.haml
+++ b/views/details.haml
@@ -17,7 +17,7 @@
%br
%b="Names:"
%p{:style=>"padding-left:0.5em;"}
- = @names
+ = @names.join("; ")
%p{:style=>"padding-left:0.5em;"}
/ pubchem link
%a{:href=>"http://aop.in-silico.ch/", :title=>"link opens in new tab", :alt=>"pubchem link", :target=>"_blank"} PubChem read across
diff --git a/views/neighbors.haml b/views/neighbors.haml
index 39f6272..df03b85 100644
--- a/views/neighbors.haml
+++ b/views/neighbors.haml
@@ -12,7 +12,7 @@
/ each endpoint becomes a tab head ;
- @prediction_models.each do |m|
- count_m += 1
- - m_title = m.title.split(" ").first
+ - m_title = m.title.split("_").last(2)[0]
%li
%a{:href => "#results_#{count_m}", :id => "link#{m_title}"}
= m_title
@@ -90,9 +90,9 @@
/ prevent conversion of nil
- c = p.data_entries[count][2] != nil ? p.data_entries[count][2] : ''
- case c
- - when /(0|false)/
+ - when /(0|false|inactive)/
- c = "non-carcinogen"
- - when /(1|true)/
+ - when /(1|true|active)/
- c = "carcinogen"
- else
- c = Array.new
diff --git a/views/predict.haml b/views/predict.haml
index 5641f6a..6340def 100644
--- a/views/predict.haml
+++ b/views/predict.haml
@@ -68,26 +68,28 @@
});
#models
+ - @detail_count = 0
// TODO order models by echa endpoint
#endpoint
- %b Acute toxicity to fish (lethality):
+ %b Acute toxicity to fish (lethality):
- @models.each do |model|
- - model_title = model.title.split(" ").first
- - if model_title =~ /LC50/
+ - model_title = model.title.split("_").last(2)[0]
+ - if model_title =~ /LC50/i
+ - @detail_count +=1
%div{:id => model_title}
%input{:type => "checkbox", :name => "selection[#{model_title}]", :id => "selection[#{model_title}]", :value => true, :disabled => false}
%label{:for => "selection[#{model_title}]"}
- = " EPA v4b Fathead Minnow Acute Toxicity "+model_title
- %a{:href=>"#details", :id => "linkDetails#{model_title}", :title=>"#{model_title} details"}
+ = model.title
+ %a{:href=>"#details", :id => "linkDetails#{model_title}", :title=>"#{model_title} details", :style=>"font-size:small;"}
[Details]
:javascript
- $("a#linkDetails#{model_title}").click(function () {
- $("#details_#{model_title}").toggle();
+ $("a#linkDetails#{@detail_count}").click(function () {
+ $("#details_#{@detail_count}").toggle();
//document.location = document.location + "#" + "details";
});
- #details{:id => "#{model_title}", :style=> "display:none;"}
+ #details{:id => "#{@detail_count}", :style=> "display:none;"}
%h3 Model Details:
//%p= "Training Dataset:\t#{model[RDF::OT.trainingDataset]}"
%p Algorithm: Lazar
@@ -104,22 +106,23 @@
%br
%b Carcinogenicity:
- @models.each do |model|
- - model_title = model.title.split(" ").first
+ - model_title = model.title.split("_").last(2)[0]
- if model_title =~ /hamster|rodent/i
+ - @detail_count +=1
%div{:id => model_title}
%input{:type => "checkbox", :name => "selection[#{model_title}]", :id => "selection[#{model_title}]", :value => true, :disabled => false}
%label{:for => "selection[#{model_title}]"}
- = " DSSTox Carcinogenic Potency DBS "+model_title
- %a{:href=>"#details", :id => "linkDetails#{model_title}", :title=>"#{model_title} details"}
+ = model.title
+ %a{:href=>"#details", :id => "linkDetails#{@detail_count}", :title=>"#{model_title} details", :style=>"font-size:small;"}
[Details]
:javascript
- $("a#linkDetails#{model_title}").click(function () {
- $("#details_#{model_title}").toggle();
+ $("a#linkDetails#{@detail_count}").click(function () {
+ $("#details_#{@detail_count}").toggle();
//document.location = document.location + "#" + "details";
});
- #details{:id=>"#{model_title}", :style=> "display:none;"}
+ #details{:id=>"#{@detail_count}", :style=> "display:none;"}
%h3 Model Details:
//%p= "Training Dataset:\t#{model[RDF::OT.trainingDataset]}"
%p Algorithm: Lazar
@@ -134,6 +137,40 @@
%p Number of predictions: integer
%p Correct predictions: %
%br
+ %br
+ %b Mutagenicity:
+ - @models.each do |model|
+ - model_title = model.title.split("_").last(2)[0]
+ - if model_title =~ /Mutagenicity/i
+ - @detail_count +=1
+ %div{:id => model_title}
+ %input{:type => "checkbox", :name => "selection[#{model_title}]", :id => "selection[#{model_title}]", :value => true, :disabled => false}
+ %label{:for => "selection[#{model_title}]"}
+ = model.title
+ %a{:href=>"#details", :id => "linkDetails#{model_title}", :title=>"#{model_title} details", :style=>"font-size:small;"}
+ [Details]
+
+ :javascript
+ $("a#linkDetails#{@detail_count}").click(function () {
+ $("#details_#{@detail_count}").toggle();
+ //document.location = document.location + "#" + "details";
+ });
+
+ #details{:id => "#{@detail_count}", :style=> "display:none;"}
+ %h3 Model Details:
+ //%p= "Training Dataset:\t#{model[RDF::OT.trainingDataset]}"
+ %p Algorithm: Lazar
+ %p Type: classification
+ %p Training compounds: integer
+ %p Descriptors: Fminer
+ //%p= "Training Dataset:\t#{model[RDF::OT.trainingDataset]}"
+ //%p= "Feature Dataset:\t#{model[RDF::OT.featureDataset]}"
+ %h3 Validation:
+ %a{:href => "#"}
+ Detailed report link
+ %p Number of predictions: integer
+ %p Correct predictions: %
+
%br
diff --git a/views/prediction.haml b/views/prediction.haml
index 4002cbd..5de0564 100644
--- a/views/prediction.haml
+++ b/views/prediction.haml
@@ -14,7 +14,7 @@
%tbody
%tr
- %td{:id=>"compound"}
+ %td{:id=>"compound", :style=>"align:center;"}
%a{:href => to("/prediction/#{CGI.escape(@compound.uri)}/details"), :id=>"linkCompound", :target=>"details_overview"}
%img{:src=>"#{@compound.uri}/image", :alt=>"Compound image not available", :width=>"150", :height=>"150"}
%p
@@ -40,16 +40,16 @@
- database_hit = 1
- c = p.data_entries[0][0] != nil ? p.data_entries[0][0] : ''
- case c
- - when /(0|false)/
+ - when /(0|false|inactive)/
- c = "non-carcinogen"
- - when /(1|true)/
+ - when /(1|true|active)/
- c = "carcinogen"
- else
- c = Array.new
- c[0] = (p.data_entries[0][0].class == Float) ? p.data_entries[0][0].round(3) : (p.data_entries[0][0] != nil ? p.data_entries[0][0] : "no prediction")
- %td
+ %td{:style=>"valign:top;"}
%b{:class => "title"}
- = @prediction_models[count].title.split(" ").first
+ = @prediction_models[count].title.gsub("_", " ")
- @model_uri = @prediction_models[count].uri
%p
/ model type (classification|regression)
@@ -101,7 +101,7 @@
Predictions with a high confidence can be expected to be more reliable than predictions
with low confidence.
Confidence values may take any value between 0 and 1.
- For most models confidence > 0.025 is a sensible (hard) cutoff to distiguish between
+ For most models confidence > 0.025 is a sensible (hard) cutoff to distinguish between
reliable and unreliable predictions.
%p
/TODO add tooltip for significant ftagments and descriptors
@@ -150,15 +150,6 @@
%b Measured activity:
= p.data_entries[0][2]
%p
- %b Neighbors:
- %a{:href=> "#tabs", :id=>"link#{count}"}
- %img{:src=>"/images/arrow_down_float.png", :alt=>"v"}
- :javascript
- $("a#link#{count}").click(function () {
- $(".results").show();
- document.getElementById('tabs').focus();
- $("#tabs").tabs({ active: "#{count}" });
- });
- count+=1
diff --git a/views/significant_fragments.haml b/views/significant_fragments.haml
index 7d342d0..46cca5f 100644
--- a/views/significant_fragments.haml
+++ b/views/significant_fragments.haml
@@ -12,9 +12,9 @@
- if !@significant_fragments.empty?
%table{:id => "sf1"}
%tr
- %th{:style=>"border:1px solid;"}
+ %th{:style=>"border:2px solid #C0C0C0;"}
Predominantly in compounds with activity "non-carcinogen"
- %th{:style=>"border:1px solid;"}
+ %th{:style=>"border:2px solid #C0C0C0;"}
p value
- @significant_fragments.each do |fragments|
/ fragments == [1||2, smarts, pValue]
@@ -28,9 +28,9 @@
%td
%br
%tr
- %th{:style=>"border:1px solid;"}
+ %th{:style=>"border:2px solid #C0C0C0;"}
Predominantly in compounds with activity "carcinogen"
- %th{:style=>"border:1px solid;"}
+ %th{:style=>"border:2px solid #C0C0C0;"}
p value
- @significant_fragments.each do |fragments|
/ fragments == [1||2, smarts, pValue]
@@ -50,9 +50,9 @@
- if !@significant_fragments.empty?
%table{:id => "sf2"}
%tr
- %th{:style=>"border:1px solid;"}
+ %th{:style=>"border:2px solid #C0C0C0;"}
Descriptor
- %th{:style=>"border:1px solid;"}
+ %th{:style=>"border:2px solid #C0C0C0;"}
value
- @significant_fragments.each do |fragments|
%tr