preparation for number of clusters <> 5
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Wed, 2 Sep 2020 22:43:55 +0000 (00:43 +0200)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Wed, 2 Sep 2020 22:43:55 +0000 (00:43 +0200)
django_simple/todo/models.py
django_simple/todo/templates/details.html
django_simple/todo/templatetags/__init__.py [new file with mode: 0644]
django_simple/todo/templatetags/index.py [new file with mode: 0644]
django_simple/todo/views.py

index aa1cf8d..5629bf5 100644 (file)
@@ -85,6 +85,7 @@ class Task(models.Model):
     remd_model3 = models.TextField(default='')
     remd_model4 = models.TextField(default='')
     remd_model5 = models.TextField(default='')
+    remd_models = models.TextField(default='')
 
 #saxs
     scal_rad = models.FloatField(default=1.0)
index bbdebb8..9fd9a03 100644 (file)
@@ -1,5 +1,6 @@
 {% extends "base.html" %}
 
+{% load index %}
 {% load i18n lazysignup_tags %}
 {% block content %}
 
@@ -636,188 +637,45 @@ Created {{ task.created_date  }}
         <button onclick="plusDivs(1)">&#10095;</button>
        </div>
        </li>           
-                       
+       
+               {% for iii in "12345" %}
+
+                {% with istr=forloop.counter|stringformat:"s" %}
+                {% with MODELi="MODEL"|add:istr|add:".pdb" %}
+                {% with viewporti="viewport_M"|add:istr %}
+                {% with toggleRefi="toggleRefM"|add:istr %}
+                {% with toggleSidechainsi="toggleSidechainsM"|add:istr %}
+
                         <div class="model">
-<!--                   <li class="list-group-item task-item">
-                         <div class="col-md-2"> model1 after conversion
-                         to allatom 
-                         {{ task.remd_model1|linebreaks }}
-                         </div>
-                         <div class="col-md-10"> 
-                         <a
-                         href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">
-                         <img
-                         src="/myfiles/download-file/{{task.jobdirname}}/model1.png" width="500">
-                         </a></div>
-                       </li> -->                       
-                       <li class="list-group-item task-item">
-                         <div class="col-md-2"> model1 
-                         {% if not task.damino %}
-                         after conversion to allatom 
-                         {% endif %}
-                         {{ task.remd_model1|linebreaks }}
-                         NGL viewer</div>
-                         <div class="col-md-10" id="viewport_M1"
-                         style="width:500px;height:500px;"> 
-                         </div>
-                       </li>
-                        <li class="list-group-item task-item">
-               <div class="col-md-12">
-               {% if task.md_pdbref %}
-               <button id="toggleRefM1">Reference structure on/off</button>
-               {% endif %}
-               <button id="toggleSidechainsM1">Side-chains on/off</button>
-               <a class="btn btn-default"
-               href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">Download</a>               
-               </div>
-                        </li>
-                       
-                       </div>
-                       <div class="model">
-<!--                   <li class="list-group-item task-item">
-                         <div class="col-md-2"> model2 after conversion
-                         to allatom 
-                         {{ task.remd_model2|linebreaks }}
-                         </div>
-                         <div class="col-md-10"> 
-                         <a
-                         href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">
-                         <img
-                         src="/myfiles/download-file/{{task.jobdirname}}/model2.png" width="500">
-                         </a></div>
-                       </li> -->
-                       <li class="list-group-item task-item">
-                         <div class="col-md-2"> model2 
-                         {% if not task.damino %}
-                         after conversion to allatom
-                         {% endif %}
-                         {{ task.remd_model2|linebreaks }}
-                         NGL viewer</div>
-                         <div class="col-md-10" id="viewport_M2"
-                         style="width:500px;height:500px;"> 
-                         </div>
-                       </li>
-                        <li class="list-group-item task-item">
-               <div class="col-md-12">
-               {% if task.md_pdbref %}
-               <button id="toggleRefM2">Reference structure on/off</button>
-               {% endif %}
-               <button id="toggleSidechainsM2">Side-chains on/off</button>
-               <a class="btn btn-default"
-               href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">Download</a>               
-               </div>
-                        </li>
-                       
-                       
-                       </div>
-                       <div class="model">
-<!--                   <li class="list-group-item task-item">
-                         <div class="col-md-2"> model3 after conversion
-                         to allatom 
-                         {{ task.remd_model3|linebreaks }}
-                         </div>
-                         <div class="col-md-10"> 
-                         <a
-                         href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">
-                         <img
-                         src="/myfiles/download-file/{{task.jobdirname}}/model3.png" width="500">
-                         </a></div>
-                       </li>-->
                        <li class="list-group-item task-item">
-                         <div class="col-md-2"> model3 
-                         {% if not task.damino %}
-                         after conversion to allatom
-                         {% endif %}
-                         {{ task.remd_model3|linebreaks }}
-                         NGL viewer</div>
-                         <div class="col-md-10" id="viewport_M3"
-                         style="width:500px;height:500px;"> 
-                         </div>
-                       </li>
-                        <li class="list-group-item task-item">
-               <div class="col-md-12">
-               {% if task.md_pdbref %}
-               <button id="toggleRefM3">Reference structure on/off</button>
-               {% endif %}
-               <button id="toggleSidechainsM3">Side-chains on/off</button>
-               <a class="btn btn-default"
-               href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">Download</a>               
-               </div>
-                        </li>
-                       
-                       </div>
-                       <div class="model">
-<!--                   <li class="list-group-item task-item">
-                         <div class="col-md-2"> model4 after conversion
-                         to allatom 
-                         {{ task.remd_model4|linebreaks }}
-                         </div>
-                         <div class="col-md-10"> 
-                         <a
-                         href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">
-                         <img
-                         src="/myfiles/download-file/{{task.jobdirname}}/model4.png" width="500">
-                         </a></div>
-                       </li>-->
-                       <li class="list-group-item task-item">
-                         <div class="col-md-2"> model4 
-                         {% if not task.damino %}
-                         after conversion to allatom
-                         {% endif %}
-                         {{ task.remd_model4|linebreaks }}
-                         NGL viewer</div>
-                         <div class="col-md-10" id="viewport_M4"
-                         style="width:500px;height:500px;"> 
-                         </div>
-                       </li>
-                        <li class="list-group-item task-item">
-               <div class="col-md-12">
-               {% if task.md_pdbref %}
-               <button id="toggleRefM4">Reference structure on/off</button>
-               {% endif %}
-               <button id="toggleSidechainsM4">Side-chains on/off</button>
-               <a class="btn btn-default"
-               href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">Download</a>               
-               </div>
-                        </li>
-                       
-                       </div>
-                       <div class="model">
-<!--                   <li class="list-group-item task-item">
-                         <div class="col-md-2"> model5 after conversion
-                         to allatom 
-                         {{ task.remd_model5|linebreaks }}
-                         </div>
-                         <div class="col-md-10"> 
-                         <a
-                         href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">
-                         <img
-                         src="/myfiles/download-file/{{task.jobdirname}}/model5.png" width="500">
-                         </a></div>
-                       </li>-->
-                       <li class="list-group-item task-item">
-                         <div class="col-md-2"> model5 
+                         <div class="col-md-2"> model {{ iii }}
                          {% if not task.damino %}
                          after conversion to allatom 
                          {% endif %}
-                         {{ task.remd_model5|linebreaks }}
+                         {{ remd_models|index:forloop.counter|linebreaks }}
                          NGL viewer</div>
-                         <div class="col-md-10" id="viewport_M5"
+                         <div class="col-md-10" id={{viewporti}}
                          style="width:500px;height:500px;"> 
                          </div>
                        </li>
                         <li class="list-group-item task-item">
                <div class="col-md-12">
                {% if task.md_pdbref %}
-               <button id="toggleRefM5">Reference structure on/off</button>
+               <button id={{toggleRefi}}>Reference structure on/off</button>
                {% endif %}
-               <button id="toggleSidechainsM5">Side-chains on/off</button>
+               <button id={{toggleSidechainsi}}>Side-chains on/off</button>
                <a class="btn btn-default"
-               href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">Download</a>               
+               href="/myfiles/download-file/{{task.jobdirname}}/{{MODELi}}">Download</a>               
                </div>
                         </li>
-                       
                        </div>
+               {% endwith %}
+               {% endwith %}   
+                {% endwith %}
+                {% endwith %}
+                {% endwith %}
+                {% endfor %}   
+
                        {% endif %}
 
        {% endif %}             
@@ -840,8 +698,9 @@ $('.majorpointslegend').click(function(){
 
 {% if task.type == "remd" or task.type == "dock" %}
 <script>
-function display_model(numstr){
+function display_model(num){
 
+ numstr=num.toString();
 {% if task.md_pdbref %}
   var stage = new NGL.Stage("viewport_M"+numstr);
   stage.setParameters( { backgroundColor: "white",fogFar: 60, fogNear: 45 } );
@@ -951,7 +810,7 @@ function (event) {
 },false);
 
 
-display_model("1")
+display_model(1)
 
 
 var slideIndex = 1;
@@ -978,23 +837,10 @@ function showDivs(n) {
   }
   x[slideIndex-1].style.display = "block";
   
-  if (lista[slideIndex-1] == 0 && slideIndex == 2) {
-    display_model("2")  
-  }
-  
-  if (lista[slideIndex-1] == 0 && slideIndex == 3) {
-     display_model("3")  
-  }
-
-  if (lista[slideIndex-1] == 0 && slideIndex == 4) {
-     display_model("4")  
-  }
-
-  if (lista[slideIndex-1] == 0 && slideIndex == 5) {
-     display_model("5")  
+  if (lista[slideIndex-1] == 0) {
+    display_model(slideIndex)  
   }
     
-  
   if (lista[slideIndex-1] == 0) {lista[slideIndex-1]=1}
 }
 </script>
diff --git a/django_simple/todo/templatetags/__init__.py b/django_simple/todo/templatetags/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/django_simple/todo/templatetags/index.py b/django_simple/todo/templatetags/index.py
new file mode 100644 (file)
index 0000000..07353ad
--- /dev/null
@@ -0,0 +1,7 @@
+from django import template
+register = template.Library()
+
+@register.filter
+def index(indexable, i):
+    return indexable[i-1]
+    
\ No newline at end of file
index e819090..bd70a61 100644 (file)
@@ -975,7 +975,16 @@ def addmlist(request,task_id):
 @login_required
 def details(request,task_id):
     task = get_object_or_404(Task, id=task_id)
-    return render(request, "details.html",{'task':task})
+    try:
+     remd_models=json.loads(task.remd_models)
+    except:
+     remd_models=[]
+     remd_models.append(task.remd_model1)
+     remd_models.append(task.remd_model2)
+     remd_models.append(task.remd_model3)
+     remd_models.append(task.remd_model4)
+     remd_models.append(task.remd_model5)
+    return render(request, "details.html",{'task':task,'remd_models':remd_models})
 
 
 def details1(request,user_id,task_id):
@@ -1153,20 +1162,12 @@ def refresh_done0(task):
 
          if task.md_pdbref and task.type=='remd' or task.type=='dock' and task.md_seq2 == '':
          
+          remd_models=[]
           for i in range(1,6):
            try:
             with open(task.jobdirname+'/file_wham_T'+str(int(task.remd_cluter_temp))+'K_000'+str(i)+'.pdb', 'r') as f:
                  line=f.readline()
-                 if i==1:
-                     task.remd_model1='Cluster1 '+' '.join(line.split()[-3:])
-                 elif i==2:
-                     task.remd_model2='Cluster2 '+' '.join(line.split()[-3:])
-                 elif i==3:
-                     task.remd_model3='Cluster3 '+' '.join(line.split()[-3:])
-                 elif i==4:
-                     task.remd_model4='Cluster4 '+' '.join(line.split()[-3:])
-                 elif i==5:
-                     task.remd_model5='Cluster5 '+' '.join(line.split()[-3:])
+                 remd_models.append('Cluster'+str(i)+' '.join(line.split()[-3:]))
            except EnvironmentError:
             print 'file_wham_T*pdb open error'
           for i in range(1,6):
@@ -1180,16 +1181,7 @@ def refresh_done0(task):
                  if 'GDT-TS-score=' in line:
                    text=text+' GDT_TS='+line.split()[1]
                     
-               if i==1:
-                     task.remd_model1=task.remd_model1+text
-               elif i==2:
-                     task.remd_model2=task.remd_model2+text
-               elif i==3:
-                     task.remd_model3=task.remd_model3+text
-               elif i==4:
-                     task.remd_model4=task.remd_model4+text
-               elif i==5:
-                     task.remd_model5=task.remd_model5+text
+               remd_models[i-1]=remd_models[i-1]+text
           
           if task.type=='dock':
            for i in range(1,6):
@@ -1209,16 +1201,7 @@ def refresh_done0(task):
                  if 'DockQ ' in line:
                    text=text+' DockQ='+line.split()[1]
 
-               if i==1:
-                     task.remd_model1=task.remd_model1+text
-               elif i==2:
-                     task.remd_model2=task.remd_model2+text
-               elif i==3:
-                     task.remd_model3=task.remd_model3+text
-               elif i==4:
-                     task.remd_model4=task.remd_model4+text
-               elif i==5:
-                     task.remd_model5=task.remd_model5+text
+               remd_models[i-1]=remd_models[i-1]+text
 
 
          if task.type=='remd' or task.type=='dock':  
@@ -1231,18 +1214,12 @@ def refresh_done0(task):
                   i+=1
                   if i>6:
                        break
-                  if i==1:
-                     task.remd_model1=task.remd_model1+' Cluster1 probability= '+line1.split()[-2]
-                  elif i==2:
-                     task.remd_model2=task.remd_model2+' Cluster2 probability= '+line1.split()[-2]
-                  elif i==3:
-                     task.remd_model3=task.remd_model3+' Cluster3 probability= '+line1.split()[-2]
-                  elif i==4:
-                     task.remd_model4=task.remd_model4+' Cluster4 probability= '+line1.split()[-2]
-                  elif i==5:
-                     task.remd_model5=task.remd_model5+' Cluster5 probability= '+line1.split()[-2]
+                  try:
+                    remd_models[i-1]=remd_models[i-1]+' Cluster'+str(i)+'probability= '+line1.split()[-2]
+                  except:
+                    print i
                      
-         
+         task.remd_models=json.dumps(remd_models)
 
          task.save()
       elif os.path.isfile(task.jobdirname+'/file_GB000.stat') and not task.done: