Rafal's code for NMR restraints
[django_unres.git] / django_simple / todo / views.py
index 1b3523c..b44ecd8 100644 (file)
@@ -5,6 +5,9 @@ from .forms import *
 from .models import Task
 import datetime
 import os
+#---
+from django.core.files import File
+#---
 import subprocess
 import json
 from lazysignup.decorators import allow_lazy_user
@@ -182,6 +185,13 @@ def from_pdb(file):
 
     return seq,json.dumps(ssbond)
 
+#---
+def from_nmr(file):
+    linijek_nmr=0
+    for line in file:
+      linijek_nmr += 1
+    return(linijek_nmr)
+#---
 
 @login_required
 def index(request):
@@ -374,6 +384,12 @@ def add_md_a(request,task_id):
         data= {'name':task.name,'pdbid':'1L2Y','md_start':'extconf',
          'md_pdbref':True,'md_mdpdb':True,'md_seed':-39912345}
         form = TaskForm_md_a(initial=data)     
+     elif '_example_nmr' in request.POST:
+        data= {'name':task.name,'file1':'files/6msp-from-THR.pdb','md_pdbref':True,
+         'md_nstep':20000,'md_lang':'berendsen','unres_ff':'NEWCT-9P','md_seed':-19712641,
+         'boxx':1000,'boxy':1000,'boxz':1000,'use_nmr':True,'file3':'files/N1008_AmbiR-trunc.txt',
+         'md_seq':'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK'}
+        form = TaskForm_md_a(initial=data)
      else:
         form = TaskForm_md_a(request.POST,request.FILES)
         if form.is_valid():
@@ -384,12 +400,24 @@ def add_md_a(request,task_id):
              suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
              task.jobdirname = "_".join([basename, suffix])
 
+#---v
+             seq_chk=form.cleaned_data["md_seq"]
+#---^
              pdbid=form.cleaned_data["pdbid"]
              if pdbid:
               task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
-              task.myfile1=form.cleaned_data["file1"]
+#---v
+#zastapione linijkami ponizej              task.myfile1=form.cleaned_data["file1"]
+              if (seq_chk == 'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK' and not form.cleaned_data["file1"]):
+                reopn1 = open('files/6msp-from-THR.pdb', 'r')
+                task.myfile1 = File(reopn1)
+#                task.myfile1.name='files/6msp-from-THR.pdb'
+                task.save()
+              else:
+                task.myfile1 = form.cleaned_data["file1"]
+#---^
              task.md_start=form.cleaned_data["md_start"]
              task.md_pdbref=form.cleaned_data["md_pdbref"]             
 
@@ -407,6 +435,32 @@ def add_md_a(request,task_id):
              if task.md_start != "pdbstart":
                 task.ssbond=''
 
+#---v
+             task.use_nmr=form.cleaned_data["use_nmr"]
+             task.nmr_fordepth=form.cleaned_data["nmr_fordepth"]
+             task.nmr_slope=form.cleaned_data["nmr_slope"]
+             task.nmr_scal=form.cleaned_data["nmr_scal"]
+             if (task.use_nmr):
+               if (seq_chk == 'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK' and not form.cleaned_data["file3"]):
+                 reopn = open('files/N1008_AmbiR-trunc.txt', 'r')
+                 task.myfile3 = File(reopn)
+#                 task.myfile3.name='files/N1008_AmbiR-trunc.txt'
+                 task.linijek_nmr=from_nmr(task.myfile3)
+                 task.save()
+               else:
+                 task.myfile3 = form.cleaned_data["file3"]
+                 task.linijek_nmr=from_nmr(form.cleaned_data["file3"])
+
+             if (seq_chk == 'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK' and not form.cleaned_data["file1"]):
+               reopn1 = open('files/6msp-from-THR.pdb', 'r')
+               task.myfile1 = File(reopn1)
+#               task.myfile1.name='files/6msp-from-THR.pdb'
+               task.save()
+             else:
+               task.myfile1 = form.cleaned_data["file1"]
+#---^
+
              task.md_seed=form.cleaned_data["md_seed"]
 
              task.md_temp=form.cleaned_data["md_temp"]
@@ -518,6 +572,14 @@ def add_remd_a(request,task_id):
         form = TaskForm_remd_a(initial=data)    
         task.example='casp12'
         task.save() 
+     elif '_example_nmr' in request.POST:
+        data= {'name':task.name,'file1':'files/6msp-from-THR.pdb','md_pdbref':True,
+         'md_nstep':200000,'md_lang':'berendsen','unres_ff':'NEWCT-9P','md_seed':-39712241,
+         'remd_nrep':4,'boxx':1000,'boxy':1000,'boxz':1000,'use_nmr':True,'file3':'files/N1008_AmbiR-trunc.txt',
+         'remd_cluter_temp':290,'md_seq':'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK'}
+        form = TaskForm_remd_a(initial=data)    
+        task.example='nmr'
+        task.save() 
      elif '_example_saxs' in request.POST:
         data= {'name':task.name,'pdbid':'5UJQ','md_pdbref':True,
          'md_nstep':200000,'md_lang':'langevin','unres_ff':'FF2','md_seed':-39912345,
@@ -678,11 +740,23 @@ def add_remd_a(request,task_id):
              task.jobdirname = "_".join([basename, suffix])
 
              pdbid=form.cleaned_data["pdbid"]
+#---v
+             seq_chk=form.cleaned_data["md_seq"]
+#---^
              if pdbid:
               task.myfile1=load_pdbid(pdbid,task.jobdirname)
               task.pdbcode=pdbid
              else:
-              task.myfile1=form.cleaned_data["file1"]
+#---v
+#zastapione linijkami ponizej              task.myfile1=form.cleaned_data["file1"]
+               if (seq_chk == 'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK' and not form.cleaned_data["file1"]):
+                 reopn1 = open('files/6msp-from-THR.pdb', 'r')
+                 task.myfile1 = File(reopn1)
+#                 task.myfile1.name='files/6msp-from-THR.pdb'
+                 task.save()
+               else:
+                 task.myfile1 = form.cleaned_data["file1"]
+#---^
              task.md_start=form.cleaned_data["md_start"]  
              task.md_pdbref=form.cleaned_data["md_pdbref"]                        
 
@@ -700,6 +774,31 @@ def add_remd_a(request,task_id):
              if task.md_start != "pdbstart":
                 task.ssbond=''
 
+#---v
+             task.use_nmr=form.cleaned_data["use_nmr"]
+             task.nmr_fordepth=form.cleaned_data["nmr_fordepth"]
+             task.nmr_slope=form.cleaned_data["nmr_slope"]
+             task.nmr_scal=form.cleaned_data["nmr_scal"]
+             if (task.use_nmr):
+               if (seq_chk == 'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK' and not form.cleaned_data["file3"]):
+                 reopn = open('files/N1008_AmbiR-trunc.txt', 'r')
+                 task.myfile3 = File(reopn)
+#                 task.myfile3.name='files/N1008_AmbiR-trunc.txt'
+                 task.linijek_nmr=from_nmr(task.myfile3)
+                 task.save()
+               else:
+                 task.myfile3 = form.cleaned_data["file3"]
+                 task.linijek_nmr=from_nmr(form.cleaned_data["file3"])
+
+             if (seq_chk == 'TDELLERLRQLFEELHERGTEIVVEVHINGERDEIRVRNISKEELKKLLERIREKIEREGSSEVEVNVHSGGQTWTFNEK' and not form.cleaned_data["file1"]):
+               reopn1 = open('files/6msp-from-THR.pdb', 'r')
+               task.myfile1 = File(reopn1)
+#               task.myfile1.name='files/6msp-from-THR.pdb'
+               task.save()
+             else:
+               task.myfile1 = form.cleaned_data["file1"]
+#---^
              task.md_seed=form.cleaned_data["md_seed"]
              task.md_nstep=form.cleaned_data["md_nstep"]
              task.md_total_steps=task.md_nstep
@@ -969,6 +1068,12 @@ def addmlist(request,task_id):
         'temperatures':
         '["270", "280", "290", "300", "310", "320", "330", "345"]'
         }
+      elif  task.example == 'nmr':
+        data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing':
+        '["2", "2", "2", "2"]',
+        'temperatures':
+        '["280", "290", "300", "310"]'
+        }
       elif task.unres_ff == 'FF2' and task.type=="dock":
         data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing':
         '["3", "3", "3", "3", "3", "3", "3", "3"]',