import datetime
import os
import subprocess
+import json
+from lazysignup.decorators import allow_lazy_user
res_codes = [
# 20 canonical amino acids
sequence.append(aa)
ires.append(i)
if newchain:
- chain_start[chain[ichain]]=i
+ if len(chain)>0:
+ chain_start[chain[ichain]]=i
newchain = False
if line[0:3] == 'TER':
sequence.append('XX')
- chain_end[chain[ichain]]=i
+ if len(chain)>0:
+ chain_end[chain[ichain]]=i
ichain=ichain+1
newchain = True
if line[0:6] == 'SSBOND':
i=i-(chain_end[c]-chain_start[c])-3
ssbond=[ [e[0]-unres_shift[c[0]]+1,e[1]-unres_shift[c[1]]+1] for e,c in zip(ssbond,ssbond_ch)]
- return seq,ssbond
+ return seq,json.dumps(ssbond)
@login_required
def index(request):
user = request.user
- tasks = Task.objects.filter(owner=user)
+ tasks = Task.objects.filter(owner=user).order_by('-created_date')
variable = ''
return render(request, "index.html", {
'tasks': tasks
})
-@login_required
+@allow_lazy_user
def add(request):
if request.method == 'POST':
form = TaskForm(request.POST)
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)
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':
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':
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':
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.save()
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})
@login_required
def refresh_done(request):
user = request.user
- tasks = Task.objects.filter(owner=user)
+ tasks = Task.objects.filter(owner=user).order_by('-created_date')
for task in tasks:
if os.path.isfile(task.jobdirname+'/finished') and not task.done:
task.done=True
if task.md_pdbref and task.type=='remd':
for i in range(1,6):
+ 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_model4=' '.join(line.split()[-6:])
elif i==5:
task.remd_model5=' '.join(line.split()[-6:])
-
+ except EnvironmentError:
+ print 'file_wham_T*pdb open error'
for i in range(1,6):
with open(task.jobdirname+'/tmscore'+str(i)+'.out', 'r') as f:
text=''