number of clusters <> 5
[django_unres.git] / django_simple / todo / views.py
index bd70a61..4db3747 100644 (file)
@@ -10,6 +10,10 @@ import json
 from lazysignup.decorators import allow_lazy_user
 from lazysignup.utils import is_lazy_user
 import random
+import logging
+
+logging.basicConfig()
+logger = logging.getLogger(__name__)
 
 res_codes = [
                 # 20 canonical amino acids
@@ -836,8 +840,10 @@ def add_dock_a(request,task_id):
     task = get_object_or_404(Task, id=task_id)
     if request.method == 'POST':
      if '_example' in request.POST:
-        data= {'name':task.name,'pdbid':'1L2Y','md_pdbref':True,'md_seed':-39912345}
+        data= {'name':task.name,'pdbid':'2HPL:A','md_seq':'DDLYG','dock_peptide':True,'md_seed':-39912345,'md_nstep':600000}
         form = TaskForm_dock_a(initial=data)     
+        task.example='dock_peptide'
+        task.save()
      else:
         form = TaskForm_dock_a(request.POST,request.FILES)
         if form.is_valid():
@@ -859,6 +865,7 @@ def add_dock_a(request,task_id):
              if pdbid2:
               task.myfile2=load_pdbid(pdbid2,task.jobdirname,'plik2.pdb')
               task.pdbcode2=pdbid2
+              seq2,ssbond2=from_pdb(task.myfile2)
              else:
               task.myfile2=form.cleaned_data["file2"]
               if not task.myfile2:
@@ -906,6 +913,7 @@ def add_dock_a(request,task_id):
              task.md_ntwe=form.cleaned_data["md_ntwe"]
 
              task.remd_cluter_temp=form.cleaned_data["remd_cluter_temp"]
+             task.remd_cluster_n=form.cleaned_data["remd_cluster_n"]
              task.unres_ff=form.cleaned_data["unres_ff"]
 
              if any(c.islower() for c in seq):
@@ -955,6 +963,12 @@ def addmlist(request,task_id):
         'temperatures':
         '["270", "280", "290", "300", "310", "320", "330", "340"]'
         }
+      elif  task.example == 'dock_peptide':
+        data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing':
+        '["4", "8", "4", "4", "4", "4", "4", "4"]',
+        'temperatures':
+        '["270", "280", "290", "300", "310", "320", "330", "345"]'
+        }
       elif task.unres_ff == 'FF2':
         data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing':
         '["1", "1", "1", "1", "1", "1", "1", "1"]',
@@ -984,12 +998,21 @@ def details(request,task_id):
      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})
+    return render(request, "details.html",{'task':task,'remd_models':remd_models,'range':range(1,task.remd_cluster_n+1)})
 
 
 def details1(request,user_id,task_id):
     task = get_object_or_404(Task, id=task_id)
-    return render(request, "details1.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, "details1.html",{'task':task,'remd_models':remd_models,'range':range(1,task.remd_cluster_n+1)})
 
 
 @login_required
@@ -1160,17 +1183,17 @@ def refresh_done0(task):
          task.results_text=text
 
 
+         remd_models=[]
          if task.md_pdbref and task.type=='remd' or task.type=='dock' and task.md_seq2 == '':
          
-          remd_models=[]
-          for i in range(1,6):
+          for i in range(1,task.remd_cluster_n+1):
            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()
-                 remd_models.append('Cluster'+str(i)+' '.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):
+          for i in range(1,task.remd_cluster_n+1):
             with open(task.jobdirname+'/tmscore'+str(i)+'.out', 'r') as f:
                text=''
                for line in f:
@@ -1184,7 +1207,7 @@ def refresh_done0(task):
                remd_models[i-1]=remd_models[i-1]+text
           
           if task.type=='dock':
-           for i in range(1,6):
+           for i in range(1,task.remd_cluster_n+1):
             with open(task.jobdirname+'/dockq_'+str(i)+'.out', 'r') as f:
                text=''
                for line in f:
@@ -1202,7 +1225,7 @@ def refresh_done0(task):
                    text=text+' DockQ='+line.split()[1]
 
                remd_models[i-1]=remd_models[i-1]+text
-
+#               logger.warning("models %d %s" % (i,remd_models))
 
          if task.type=='remd' or task.type=='dock':  
           with open(task.jobdirname+'/file_cluster_clust.out_000', 'r') as f:
@@ -1212,15 +1235,16 @@ def refresh_done0(task):
                 i=0
                 for line1 in f:
                   i+=1
-                  if i>6:
+                  if i>task.remd_cluster_n:
                        break
                   try:
-                    remd_models[i-1]=remd_models[i-1]+' Cluster'+str(i)+'probability= '+line1.split()[-2]
+                    remd_models[i-1]=remd_models[i-1]+' Cluster'+str(i)+' probability= '+line1.split()[-2]
                   except:
-                    print i
+                    if len(line1.split())==4:
+                     remd_models.append(' Cluster'+str(i)+' probability= '+line1.split()[-2])
                      
          task.remd_models=json.dumps(remd_models)
-
+#         logger.warning("models%s" % task.remd_models)
          task.save()
       elif os.path.isfile(task.jobdirname+'/file_GB000.stat') and not task.done:
          if (task.type=='min'):