summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2017-01-16 15:01:18 +0000
committergebele <gebele@in-silico.ch>2017-01-16 15:01:18 +0000
commit954791e63129f2b0219db126bfd654440198e64d (patch)
tree3c6418742db33c95c1a0b39e9d43ed61fc4862ce
parentfcb94479ed43c2eefda9a487f887c2629da813c7 (diff)
adjusted possible input by core
-rw-r--r--VERSION2
-rw-r--r--application.rb14
-rw-r--r--views/layout.haml14
-rw-r--r--views/predict.haml46
4 files changed, 54 insertions, 22 deletions
diff --git a/VERSION b/VERSION
index 3eefcb9..9084fa2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.0
+1.1.0
diff --git a/application.rb b/application.rb
index 3e7dfc2..a821c7f 100644
--- a/application.rb
+++ b/application.rb
@@ -100,6 +100,8 @@ get '/predict/?' do
@physchem_relevant_features = @prediction_models[1].model.descriptor_ids.collect{|id, v| Feature.find(id)}
physchem = $nanoparticles.sample
+ # only Ag for testing
+ #physchem = $nanoparticles.find{|n| c = Substance.find(n.core_id); c.name == "Ag"}
physchem.properties.delete_if{|id,v| !@physchem_relevant_features.include?(Feature.find(id))}
@example_physchem = physchem
@@ -132,7 +134,7 @@ post '/predict/?' do
input_pc = {}
if @type =~ /physchem|proteomics/
- (1..size).each{|i| input_pc["#{params["input_key_#{i}"]}"] = [params["input_value_#{i}"].to_f] unless params["input_value_#{i}"] == ""}
+ (1..size).each{|i| input_pc["#{params["input_key_#{i}"]}"] = [params["input_value_#{i}"].to_f] unless params["input_value_#{i}"].blank?}
end
# define relevant_features by input
@@ -142,7 +144,7 @@ post '/predict/?' do
if @type =~ /physchem|proteomics/
- if input_pc == example_pc && input_core == example_core && input_coating == example_coating
+ if input_pc == example_pc && input_core == example_core #&& input_coating == example_coating
# unchanged input = database hit
nanoparticle = Nanoparticle.find_by(:id => params[:example_id])
nanoparticle.properties = input_pc
@@ -153,7 +155,7 @@ post '/predict/?' do
# changed input = create nanoparticle to predict
nanoparticle = Nanoparticle.new
nanoparticle.core_id = Compound.find_by(:name=>input_core).id.to_s
- nanoparticle.coating_ids = [Compound.find_by(:name=>input_coating).id.to_s]
+ #nanoparticle.coating_ids = [Compound.find_by(:name=>input_coating).id.to_s] if input_coating
nanoparticle.properties = input_pc
@match = false
@nanoparticle = nanoparticle
@@ -161,10 +163,8 @@ post '/predict/?' do
end
if @type == "fingerprint"
- if input_core == example_core && input_coating == example_coating
- # unchanged input = database hit
- nanoparticle = Nanoparticle.find_by(:id => params[:example_id])
- #nanoparticle.properties = input_pc
+ nanoparticle = $coating_list.find{|n| n.core.name == input_core && n.coating[0].name == input_coating}
+ if !nanoparticle.nil?
@match = true
@nanoparticle = nanoparticle
@name = nanoparticle.name
diff --git a/views/layout.haml b/views/layout.haml
index f36bdf7..e81bd21 100644
--- a/views/layout.haml
+++ b/views/layout.haml
@@ -22,18 +22,18 @@
%noscript
%div{ :style=>"width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif"}
Your web browser must have JavaScript enabled in order for this application to display correctly.
- %header.page-header{:style=>"margin:20px 0 20px;text-align:justify;display:inline-block;width:100%;"}
- %div.row
+ %header.page-header{:style=>"margin:20px 0 20px;"}
+ %div.row{:style=>"display:flex;flex-direction:row;align-items:center;justify-content:center"}
%div.col-sm-2
%a{:href=> to("/predict")}
- %img.media-object{:src=>"/images/IST_logo_s.png", :alt=>"logo_ist", :width=>"150px", :heigth=>"150px", :style=>"margin:0 0 0 2em;"}
+ %img.media-object{:src=>"/images/IST_logo_s.png", :alt=>"logo_ist", :width=>"150px", :heigth=>"150px", :style=>"margin:0 0 0 1em;"}
%div.col-sm-2
%a{:href=> "http://www.enanomapper.net"}
- %img.media-object{:src=>"/images/enm_logo.png", :width=>"200px", :heigth=>"200px", :alt=>"logo_enm", :style=>"margin:0 3em 0 0;"}
+ %img.media-object{:src=>"/images/enm_logo.png", :width=>"150px", :heigth=>"150px", :alt=>"logo_enm", :style=>"margin:0 0 0 1em;"}
%div.col-sm-6
- %h1.media-heading{:style=>"margin: 0 0 0 1em;"} nano-lazar toxicity predictions
- %div.col-md-2
- %h1.media-heading{:style=>"margin: 0 0 0 1em;"}
+ %h1.media-heading{:style=>"margin:0 0 0 1em;"} nano-lazar toxicity predictions
+ %div.col-sm-2
+ %h1.media-heading{:style=>"margin:0 0 0 1em;"}
%small
%a{:href=>"https://lazar.in-silico.ch/predict", :rel=>"external"} lazar
diff --git a/views/predict.haml b/views/predict.haml
index e54f8b4..a438f7f 100644
--- a/views/predict.haml
+++ b/views/predict.haml
@@ -1,8 +1,43 @@
:javascript
+
+ $(window).bind("pageshow", function(event) {
+ $("img.circle").hide();
+ });
+
function showcircle() {
$("img.circle").show();
};
-
+ $(document).ready(function(){
+ $('#selCore1').change(function(){
+ var selection = $(this).val();
+ switch(selection){
+ case "Ag":
+ $("#physchem1").prop('disabled', false);
+ $("#physchem2").prop('disabled', false);
+ $("#physchem3").prop('disabled', true);
+ $("#physchem4").prop('disabled', true);
+ $("#physchem5").prop('disabled', true);
+ $("#physchem6").prop('disabled', false);
+ $("#physchem7").prop('disabled', true);
+ $("#physchem8").prop('disabled', true);
+ $("#physchem9").prop('disabled', true);
+ $("#physchem10").prop('disabled', true);
+ break;
+ case "Au":
+ $("#physchem1").prop('disabled', false);
+ $("#physchem2").prop('disabled', false);
+ $("#physchem3").prop('disabled', false);
+ $("#physchem4").prop('disabled', false);
+ $("#physchem5").prop('disabled', false);
+ $("#physchem6").prop('disabled', false);
+ $("#physchem7").prop('disabled', false);
+ $("#physchem8").prop('disabled', false);
+ $("#physchem9").prop('disabled', false);
+ $("#physchem10").prop('disabled', false);
+ break;
+ };
+ });
+ });
%div.well
%h3.help-block
@@ -149,16 +184,13 @@
%div.form-group
%label{:for=>"selCore#{idx}"} Core
%select.form-control{:id=>"selCore#{idx}", :autocomplete=>"off", :name=>"input_core",:value=>example.core["name"]}
- //%option{:selected => "selected", :value => "-- select a core --", :style=>"display:none;"}
%option{:selected => ("selected" if example.core["name"] == "Ag"), :value => "Ag"} Ag
%option{:selected => ("selected" if example.core["name"] == "Au"), :value => "Au"} Au
- //%option{:value => "Ag"} Ag
- //%option{:value => "Au"} Au
// coating
//%h5 Coating
//%input.input-sm.form-control{:id=>"coating",:type=>"text",:disabled=>"disabled",:name=>"coating",:value=>example.coating[0]["name"]}
- %input.input-sm.form-control{:id=>"coating",:type=>"hidden",:name=>"input_coating",:value=>example.coating[0]["name"]}
+ //%input.input-sm.form-control{:id=>"coating",:type=>"hidden",:name=>"input_coating",:value=>example.coating[0]["name"]}
// relevant features
- relevant_features.sort_by{|f| f.name}.each_with_index do |relf,id|
@@ -176,7 +208,7 @@
%a.descriptor{:href=>$npo[feature.name], :rel=>"external"}= name + (feature.unit.blank? ? "" : " (#{feature.unit})")
// input physchem parameters
- %input.input-sm.form-control{:id=>"#{id}",:type=>"text",:name=>"input_value_#{id}",:value=>"#{val[0]}"}
+ %input.input-sm.form-control{:id=>"physchem#{id}",:type=>"text",:name=>"input_value_#{id}",:value=>"#{val[0]}", :disabled=>("disabled" if val[0].blank?)}
%input{:id=>id,:type=>"hidden",:name=>"input_key_#{id}",:value=>feature.id}
- if type =~ /proteomics/
@@ -202,7 +234,7 @@
// coating
//%h5 Coating
//%input.input-sm.form-control{:id=>"coating",:type=>"text",:disabled=>"disabled",:name=>"coating",:value=>example.coating[0]["name"]}
- %input.input-sm.form-control{:id=>"coating",:type=>"hidden",:name=>"input_coating",:value=>example.coating[0]["name"]}
+ //%input.input-sm.form-control{:id=>"coating",:type=>"hidden",:name=>"input_coating",:value=>example.coating[0]["name"]}
// relevant features
- relevant_features.sort_by{|f| f.name}.each_with_index do |relf,id|