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
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():
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:
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):
'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"]',
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
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:
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:
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:
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'):