import os
import subprocess
import json
+from lazysignup.decorators import allow_lazy_user
+from lazysignup.utils import is_lazy_user
res_codes = [
# 20 canonical amino acids
return redirect('add_min',task_id=task.id)
return redirect('/')
-
@login_required
def add_min(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':'1BDD'}
+ form = TaskForm_min(initial=data)
+ else:
form = TaskForm_min(request.POST,request.FILES)
if form.is_valid():
task.name=form.cleaned_data["name"]
task.type="min"
- task.myfile1=form.cleaned_data["file1"]
+ pdbid=form.cleaned_data["pdbid"]
+
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ if pdbid:
+ os.mkdir(task.jobdirname)
+ task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
+ task.jobdirname+'/plik.pdb')
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
seq,task.ssbond=from_pdb(task.myfile1)
task.md_seq=""
task.md_seq=task.md_seq+seq[i:i+40]+" "
task.ready=True
- basename = str(task.owner)
- suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
- task.jobdirname = "_".join([basename, suffix])
task.save()
- return redirect('/')
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
else:
data= {'name':task.name}
form = TaskForm_min(initial=data)
basic_adv=True
return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type})
+@login_required
def add_min_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':'1EI0','unres_ff':'opt-wtfsa-2'}
+ form = TaskForm_min_a(initial=data)
+ else:
form = TaskForm_min_a(request.POST,request.FILES)
if form.is_valid():
task.name=form.cleaned_data["name"]
task.min_maxmin=form.cleaned_data["min_maxmin"]
task.min_maxfun=form.cleaned_data["min_maxfun"]
task.min_pdbout=form.cleaned_data["min_pdbout"]
- task.myfile1=form.cleaned_data["file1"]
+
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ pdbid=form.cleaned_data["pdbid"]
+ if pdbid:
+ os.mkdir(task.jobdirname)
+ task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
+ task.jobdirname+'/plik.pdb')
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
+
task.min_unres_pdb=form.cleaned_data["min_unres_pdb"]
task.unres_ff=form.cleaned_data["unres_ff"]
+ task.boxx=form.cleaned_data["boxx"]
+ task.boxy=form.cleaned_data["boxy"]
+ task.boxz=form.cleaned_data["boxz"]
seq,task.ssbond=from_pdb(task.myfile1)
task.md_seq=""
for i in range(0,len(seq),40):
task.md_seq=task.md_seq+seq[i:i+40]+" "
-
task.ready=True
- basename = str(task.owner)
- suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
- task.jobdirname = "_".join([basename, suffix])
task.save()
- return redirect('/')
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
else:
data= {'name':task.name}
form = TaskForm_min_a(initial=data)
def add_md(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':'1IGD','md_start':'pdbstart',
+ 'md_pdbref':True,'md_temp':200}
+ form = TaskForm_md(initial=data)
+ else:
form = TaskForm_md(request.POST,request.FILES)
if form.is_valid():
task.name=form.cleaned_data["name"]
task.md_start=form.cleaned_data["md_start"]
task.md_temp=form.cleaned_data["md_temp"]
task.md_nstep=form.cleaned_data["md_nstep"]
-
- task.myfile1=form.cleaned_data["file1"]
+
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ pdbid=form.cleaned_data["pdbid"]
+ if pdbid:
+ os.mkdir(task.jobdirname)
+ task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
+ task.jobdirname+'/plik.pdb')
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
task.md_pdbref=form.cleaned_data["md_pdbref"]
task.md_seq=""
task.ssbond=''
task.ready=True
- basename = str(task.owner)
- suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
- task.jobdirname = "_".join([basename, suffix])
task.save()
- return redirect('/')
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
else:
data= {'name':task.name}
form = TaskForm_md(initial=data)
p_type='molecular dynamics'
return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type})
+@login_required
def add_md_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_start':'extconf',
+ 'md_pdbref':True,'md_mdpdb':True}
+ form = TaskForm_md_a(initial=data)
+ else:
form = TaskForm_md_a(request.POST,request.FILES)
if form.is_valid():
task.name=form.cleaned_data["name"]
task.type="md"
- task.myfile1=form.cleaned_data["file1"]
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ pdbid=form.cleaned_data["pdbid"]
+ if pdbid:
+ os.mkdir(task.jobdirname)
+ task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
+ task.jobdirname+'/plik.pdb')
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
task.md_start=form.cleaned_data["md_start"]
task.md_pdbref=form.cleaned_data["md_pdbref"]
task.md_scal_fric=form.cleaned_data["md_scal_fric"]
task.md_mdpdb=form.cleaned_data["md_mdpdb"]
task.unres_ff=form.cleaned_data["unres_ff"]
+ task.boxx=form.cleaned_data["boxx"]
+ task.boxy=form.cleaned_data["boxy"]
+ task.boxz=form.cleaned_data["boxz"]
+
task.ready=True
- basename = str(task.owner)
- suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
- task.jobdirname = "_".join([basename, suffix])
task.save()
- return redirect('/')
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
else:
data= {'name':task.name}
form = TaskForm_md_a(initial=data)
def add_remd(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}
+ form = TaskForm_remd(initial=data)
+ else:
form = TaskForm_remd(request.POST,request.FILES)
if form.is_valid():
task.name=form.cleaned_data["name"]
task.type="remd"
task.md_start=form.cleaned_data["md_start"]
- task.myfile1=form.cleaned_data["file1"]
+
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ pdbid=form.cleaned_data["pdbid"]
+ if pdbid:
+ os.mkdir(task.jobdirname)
+ task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
+ task.jobdirname+'/plik.pdb')
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
task.md_pdbref=form.cleaned_data["md_pdbref"]
task.md_ntwx=task.remd_nstex
task.ready=True
- basename = str(task.owner)
- suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
- task.jobdirname = "_".join([basename, suffix])
task.save()
- return redirect('/')
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
else:
data= {'name':task.name}
form = TaskForm_remd(initial=data)
p_type='replica exchange molecular dynamics'
return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type})
+@login_required
def add_remd_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':'1E0G','md_pdbref':True,
+ 'md_nstep':500000,'md_lang':'berendsen','unres_ff':'opt-wtfsa-2',
+ 'remd_cluter_temp':280}
+ form = TaskForm_remd_a(initial=data)
+ else:
form = TaskForm_remd_a(request.POST,request.FILES)
if form.is_valid():
task.name=form.cleaned_data["name"]
task.type="remd"
- task.myfile1=form.cleaned_data["file1"]
+ basename = str(task.owner)
+ suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
+ task.jobdirname = "_".join([basename, suffix])
+
+ pdbid=form.cleaned_data["pdbid"]
+ if pdbid:
+ os.mkdir(task.jobdirname)
+ task.myfile1,header=urllib.urlretrieve('http://files.rcsb.org/download/'+pdbid+'.pdb',
+ task.jobdirname+'/plik.pdb')
+ task.pdbcode=pdbid
+ else:
+ task.myfile1=form.cleaned_data["file1"]
task.md_start=form.cleaned_data["md_start"]
task.md_pdbref=form.cleaned_data["md_pdbref"]
# task.remd_traj1file=form.cleaned_data["remd_traj1file"]
# task.remd_rest1file=form.cleaned_data["remd_rest1file"]
+ task.boxx=form.cleaned_data["boxx"]
+ task.boxy=form.cleaned_data["boxy"]
+ task.boxz=form.cleaned_data["boxz"]
+
task.remd_cluter_temp=form.cleaned_data["remd_cluter_temp"]
task.unres_ff=form.cleaned_data["unres_ff"]
- basename = str(task.owner)
- suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
- task.jobdirname = "_".join([basename, suffix])
-
task.save()
return redirect('addmlist',task_id=task.id)
else:
p_type='replica exchange molecular dynamics - advanced options'
return render(request, 'edit.html', {'form': form, 'task':task, 'basic_adv':basic_adv, 'p_type':p_type})
-
+@login_required
def addmlist(request,task_id):
task = get_object_or_404(Task, id=task_id)
if request.method == 'POST':
task.ready=True
task.save()
- return redirect('/')
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(task.owner)+'/'+str(task.id)+'/')
+ else:
+ return redirect('/')
else:
+ if task.unres_ff == 'E0LL2Y':
data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing':
'["1", "1", "1", "1", "1", "1", "1", "1"]',
'temperatures':
'["270", "280", "290", "300", "310", "320", "330", "345"]'
}
- form = TaskForm_list(task.remd_nrep,initial=data)
+ else:
+ data= {'name':task.name,'nrep':task.remd_nrep,'multiplexing':
+ '["1", "1", "1", "1", "1", "1", "1", "1"]',
+ 'temperatures':
+ '["250", "260", "270", "280", "290", "300", "315", "330"]'
+ }
+
+ form = TaskForm_list(task.remd_nrep,initial=data)
p_type='replica exchange molecular dynamics - advanced options'
return render(request, 'edit_lista.html', {'form': form, 'task':task, 'p_type':p_type})
task = get_object_or_404(Task, id=task_id)
return render(request, "details.html",{'task':task})
+
+def details1(request,user_id,task_id):
+ task = get_object_or_404(Task, id=task_id)
+ return render(request, "details1.html",{'task':task})
+
+
@login_required
def delete(request, task_id):
Task.objects.get(id=task_id).delete()
return redirect('/')
+def refresh_done1(request, task_id):
+ task = get_object_or_404(Task, id=task_id)
+ user = task.owner
+ refresh_done0(task)
+
+ proc = subprocess.Popen('/opt/torque/bin/qstat', stdout=subprocess.PIPE)
+ njob=0
+ nq=0
+ for line in proc.stdout:
+ if 'piasek4' in line:
+ if line.split()[1]=='test_server':
+ njob+=1
+ if line.split()[-2]=='Q':
+ nq+=1
+ variable='Idle jobs='+str(nq)+' Total jobs='+str(njob)
+
+ return redirect('/details1/'+str(user)+'/'+str(task.id)+'/')
+
+
@login_required
def refresh_done(request):
user = request.user
tasks = Task.objects.filter(owner=user).order_by('-created_date')
for task in tasks:
+ refresh_done0(task)
+
+ proc = subprocess.Popen('/opt/torque/bin/qstat', stdout=subprocess.PIPE)
+ njob=0
+ nq=0
+ for line in proc.stdout:
+ if 'piasek4' in line:
+ if line.split()[1]=='test_server':
+ njob+=1
+ if line.split()[-2]=='Q':
+ nq+=1
+ variable='Idle jobs='+str(nq)+' Total jobs='+str(njob)
+
+ if is_lazy_user(request.user):
+ return redirect('/details1/'+str(user)+'/'+str(task.id)+'/')
+ else:
+ return render(request, "index.html", {
+ 'tasks': tasks ,
+ 'variable' : variable
+ })
+
+
+def refresh_done0(task):
if os.path.isfile(task.jobdirname+'/finished') and not task.done:
task.done=True
elif task.type=='remd':
j=0
- text="Acceptance for replica exchanges\n"
+ text="Acceptance for replica exchanges and number of exchange attempts\n"
for line in f:
if 'ACC' in line:
j+=1
- text=text+line
+ text=text+' '.join(line.split()[2:])+"\n"
if j==task.remd_nrep:
j=1
- text="Acceptance for replica exchanges\n"+line
+ text="Acceptance for replica exchanges and number of exchange attempts\n"+' '.join(line.split()[2:])+"\n"
if 'Total wall' in line:
text=text+line
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=' '.join(line.split()[-6:])
+ task.remd_model1='Cluster1 '+' '.join(line.split()[-3:])
elif i==2:
- task.remd_model2=' '.join(line.split()[-6:])
+ task.remd_model2='Cluster2 '+' '.join(line.split()[-3:])
elif i==3:
- task.remd_model3=' '.join(line.split()[-6:])
+ task.remd_model3='Cluster3 '+' '.join(line.split()[-3:])
elif i==4:
- task.remd_model4=' '.join(line.split()[-6:])
+ task.remd_model4='Cluster4 '+' '.join(line.split()[-3:])
elif i==5:
- task.remd_model5=' '.join(line.split()[-6:])
+ task.remd_model5='Cluster5 '+' '.join(line.split()[-3:])
except EnvironmentError:
print 'file_wham_T*pdb open error'
for i in range(1,6):
task.running=100
task.save()
- proc = subprocess.Popen('/opt/torque/bin/qstat', stdout=subprocess.PIPE)
- njob=0
- nq=0
- for line in proc.stdout:
- if 'piasek4' in line:
- if line.split()[1]=='test_server':
- njob+=1
- if line.split()[-2]=='Q':
- nq+=1
- variable='Idle jobs='+str(nq)+' Total jobs='+str(njob)
-
- return render(request, "index.html", {
- 'tasks': tasks ,
- 'variable' : variable
- })
-# return redirect('/')
+ return