projects
/
django_unres.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
number of clusters <> 5
[django_unres.git]
/
django_simple
/
todo
/
views.py
diff --git
a/django_simple/todo/views.py
b/django_simple/todo/views.py
index
93e8d38
..
4db3747
100644
(file)
--- a/
django_simple/todo/views.py
+++ b/
django_simple/todo/views.py
@@
-10,6
+10,10
@@
import json
from lazysignup.decorators import allow_lazy_user
from lazysignup.utils import is_lazy_user
import random
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
res_codes = [
# 20 canonical amino acids
@@
-30,6
+34,29
@@
res_codes = [
three_to_one = dict(res_codes)
three_to_one = dict(res_codes)
+def dock_box(file):
+ import math
+ coord = list()
+ for line in file:
+ if line[0:6] == 'ATOM ' and line[13:15] == 'CA':
+ x=float(line[30:38])
+ y=float(line[38:46])
+ z=float(line[46:54])
+ coord.append([x, y, z])
+ if line[0:3] == 'END':
+ break
+ maxd=0
+ l=len(coord)
+ for i in xrange(l):
+ for j in xrange(i+1,l):
+ p1=coord[i]
+ p2=coord[j]
+ d=(p1[0]-p2[0])**2 + (p1[1]-p2[1])**2 + (p1[2]-p2[2])**2
+ if d > maxd:
+ maxd=d
+ return math.sqrt(maxd)
+
+
def load_pdbid(pdbid,dirname,filename='plik.pdb'):
if (not os.path.isdir(dirname)):
os.mkdir(dirname)
def load_pdbid(pdbid,dirname,filename='plik.pdb'):
if (not os.path.isdir(dirname)):
os.mkdir(dirname)
@@
-741,20
+768,28
@@
def add_dock(request,task_id):
if pdbid2:
task.myfile2=load_pdbid(pdbid2,task.jobdirname,'plik2.pdb')
task.pdbcode2=pdbid2
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"]
else:
task.myfile2=form.cleaned_data["file2"]
+ if not task.myfile2:
+ seq2=seq_add_x(form.cleaned_data["md_seq"])
+ task.md_seq2=seq2
+ else:
+ seq2,ssbond2=from_pdb(task.myfile2)
task.md_ntwx=task.remd_nstex
task.md_start="pdbstart"
task.remd_multi_m='["3", "3", "3", "3", "3", "3", "3", "3"]'
task.md_ntwx=task.remd_nstex
task.md_start="pdbstart"
task.remd_multi_m='["3", "3", "3", "3", "3", "3", "3", "3"]'
- task.md_pdbref=True
+ if task.md_seq2 =='':
+ task.md_pdbref=True
task.md_respa=False
task.ssbond=""
task.md_respa=False
task.ssbond=""
+ task.dock_peptide=form.cleaned_data["dock_peptide"]
task.md_seq=""
seq1,ssbond1=from_pdb(task.myfile1)
task.md_seq=""
seq1,ssbond1=from_pdb(task.myfile1)
- seq2,ssbond2=from_pdb(task.myfile2)
+
if seq1[-1]=='X' and seq2[0]=='X':
seq=seq1+seq2
if seq1[-1]=='X' and seq2[0]=='X':
seq=seq1+seq2
@@
-775,8
+810,17
@@
def add_dock(request,task_id):
task.md_respa=False
task.damino=True
task.md_respa=False
task.damino=True
-
+ box1=dock_box(task.myfile1)
+ if task.myfile2:
+ box2=dock_box(task.myfile2)
+ else:
+ box2=len(task.md_seq2)*2.0
+ task.boxx=(box1+box2)*1.2+20
+ task.boxy=(box1+box2)*1.2+20
+ task.boxz=(box1+box2)*1.2+20
+
task.ready=True
task.ready=True
+
task.save()
task.save()
@@
-796,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:
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)
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():
else:
form = TaskForm_dock_a(request.POST,request.FILES)
if form.is_valid():
@@
-819,19
+865,27
@@
def add_dock_a(request,task_id):
if pdbid2:
task.myfile2=load_pdbid(pdbid2,task.jobdirname,'plik2.pdb')
task.pdbcode2=pdbid2
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"]
else:
task.myfile2=form.cleaned_data["file2"]
+ if not task.myfile2:
+ seq2=seq_add_x(form.cleaned_data["md_seq"])
+ task.md_seq2=seq2
+ else:
+ seq2,ssbond2=from_pdb(task.myfile2)
+
task.md_ntwx=task.remd_nstex
task.md_start="pdbstart"
task.md_ntwx=task.remd_nstex
task.md_start="pdbstart"
- task.md_pdbref=True
+ if task.md_seq2 =='':
+ task.md_pdbref=True
task.md_respa=False
task.ssbond=""
task.md_respa=False
task.ssbond=""
+ task.dock_peptide=form.cleaned_data["dock_peptide"]
task.md_seq=""
seq1,ssbond1=from_pdb(task.myfile1)
task.md_seq=""
seq1,ssbond1=from_pdb(task.myfile1)
- seq2,ssbond2=from_pdb(task.myfile2)
if seq1[-1]=='X' and seq2[0]=='X':
seq=seq1+seq2
if seq1[-1]=='X' and seq2[0]=='X':
seq=seq1+seq2
@@
-859,16
+913,22
@@
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.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):
task.md_respa=False
task.damino=True
task.unres_ff=form.cleaned_data["unres_ff"]
if any(c.islower() for c in seq):
task.md_respa=False
task.damino=True
+ box1=dock_box(task.myfile1)
+ if task.myfile2:
+ box2=dock_box(task.myfile2)
+ else:
+ box2=len(task.md_seq2)*2.0
+ task.boxx=(box1+box2)*1.2+20
+ task.boxy=(box1+box2)*1.2+20
+ task.boxz=(box1+box2)*1.2+20
- task.ready=True
-
-
task.save()
return redirect('addmlist',task_id=task.id)
task.save()
return redirect('addmlist',task_id=task.id)
@@
-903,6
+963,12
@@
def addmlist(request,task_id):
'temperatures':
'["270", "280", "290", "300", "310", "320", "330", "340"]'
}
'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"]',
elif task.unres_ff == 'FF2':
data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing':
'["1", "1", "1", "1", "1", "1", "1", "1"]',
@@
-923,12
+989,30
@@
def addmlist(request,task_id):
@login_required
def details(request,task_id):
task = get_object_or_404(Task, id=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,'range':range(1,task.remd_cluster_n+1)})
def details1(request,user_id,task_id):
task = get_object_or_404(Task, id=task_id)
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
@login_required
@@
-965,7
+1049,7
@@
def restart0(task):
add_restart_inp()
ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
os.chdir('..')
add_restart_inp()
ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
os.chdir('..')
- elif task.type == 'remd':
+ elif task.type == 'remd' or task.type == 'dock':
os.chdir(task.jobdirname)
add_restart_inp()
tmp1=json.loads(task.remd_multi_m)
os.chdir(task.jobdirname)
add_restart_inp()
tmp1=json.loads(task.remd_multi_m)
@@
-986,6
+1070,15
@@
def restart0(task):
f2.write(line)
os.remove('file_wham.inp')
os.rename('file_wham.tmp','file_wham.inp')
f2.write(line)
os.remove('file_wham.inp')
os.rename('file_wham.tmp','file_wham.inp')
+ if task.type == 'dock':
+ with open('pbs8.csh','r') as f1, open ('pbs8.tmp','w') as f2:
+ for line in f1:
+ if 'generator_v13' in line:
+ f2.write('#'+line)
+ else:
+ f2.write(line)
+ os.remove('pbs8.csh')
+ os.rename('pbs8.tmp','pbs8.csh')
ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs8.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
os.chdir('..')
return
ret_code = subprocess.Popen(' /opt/torque/bin/qsub pbs8.csh', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
os.chdir('..')
return
@@
-1090,25
+1183,17
@@
def refresh_done0(task):
task.results_text=text
task.results_text=text
- if task.md_pdbref and task.type=='remd' or task.type=='dock':
+ remd_models=[]
+ if task.md_pdbref and task.type=='remd' or task.type=='dock' and task.md_seq2 == '':
- 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()
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'
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:
with open(task.jobdirname+'/tmscore'+str(i)+'.out', 'r') as f:
text=''
for line in f:
@@
-1119,19
+1204,10
@@
def refresh_done0(task):
if 'GDT-TS-score=' in line:
text=text+' GDT_TS='+line.split()[1]
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':
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:
with open(task.jobdirname+'/dockq_'+str(i)+'.out', 'r') as f:
text=''
for line in f:
@@
-1139,26
+1215,17
@@
def refresh_done0(task):
text=' Fnat='+line.split()[1]
if 'iRMS' in line:
text=text+' iRMS='+line.split()[1]
text=' Fnat='+line.split()[1]
if 'iRMS' in line:
text=text+' iRMS='+line.split()[1]
- if 'LRMS=' in line:
+ if 'LRMS' in line:
text=text+' LRMS='+line.split()[1]
text=text+' LRMS='+line.split()[1]
- if 'CAPRI' in line:
+ if 'CAPRI' in line and not 'DockQ_CAPRI' in line:
text=text+' CAPRI='+line.split()[1]
if 'DockQ_CAPRI' in line:
text=text+' CAPRI='+line.split()[1]
if 'DockQ_CAPRI' in line:
- text=text+' DockQ_CAPRI='+line.split()[1]
+ text=text+' DockQ_CAPRI= '+line.split()[1]
if 'DockQ ' in line:
text=text+' DockQ='+line.split()[1]
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
+# 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:
if task.type=='remd' or task.type=='dock':
with open(task.jobdirname+'/file_cluster_clust.out_000', 'r') as f:
@@
-1168,21
+1235,16
@@
def refresh_done0(task):
i=0
for line1 in f:
i+=1
i=0
for line1 in f:
i+=1
- if i>6:
+ if i>task.remd_cluster_n:
break
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:
+ 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'):
task.save()
elif os.path.isfile(task.jobdirname+'/file_GB000.stat') and not task.done:
if (task.type=='min'):