X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=django_simple%2Ftodo%2Fviews.py;h=338abc4209b8bd79198225166d0ceba9a101668d;hb=5c40625537192e815e74b6140cccd9344673a5f9;hp=62a5034be879010b67fa66d00d244864fc8b7006;hpb=8664852ef9ddb33820c7c46f30e233d721511a8d;p=django_unres.git diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index 62a5034..338abc4 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -5,6 +5,7 @@ from .forms import * from .models import Task import datetime import os +import subprocess res_codes = [ # 20 canonical amino acids @@ -14,6 +15,8 @@ res_codes = [ ('LEU', 'L'), ('ARG', 'R'), ('TRP', 'W'), ('ALA', 'A'), ('VAL', 'V'), ('GLU', 'E'), ('TYR', 'Y'), ('MET', 'M'), ('HSD', 'H'),('HSE', 'H'),('HSP', 'H'), + ('HIE', 'H'), ('HID', 'H'),('HIP', 'H'), + ('CYX', 'C'), ] three_to_one = dict(res_codes) @@ -45,7 +48,7 @@ def from_pdb(file): if line[0:3] == 'END': break - if sequence[-1] == 'XX': + while sequence[-1] == 'XX': del sequence[-1] if sequence[0] != 'G': sequence.insert(0,'X') @@ -60,6 +63,7 @@ def from_pdb(file): def index(request): user = request.user tasks = Task.objects.filter(owner=user) + variable = '' return render(request, "index.html", { 'tasks': tasks }) @@ -402,6 +406,7 @@ def refresh_done(request): task.results_text=text + if task.md_pdbref and task.type=='remd': for i in range(1,6): @@ -418,6 +423,52 @@ def refresh_done(request): elif i==5: task.remd_model5=' '.join(line.split()[-6:]) + for i in range(1,6): + with open(task.jobdirname+'/tmscore'+str(i)+'.out', 'r') as f: + text='' + for line in f: + if 'RMSD of the common residues=' in line: + text=' RMSD='+line.split()[5] + if 'TMscore =' in line: + text=text+' TM-score='+line.split()[2] + 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 + + + + if task.type=='remd': + with open(task.jobdirname+'/file_cluster_clust.out_000', 'r') as f: + + for line in f: + if 'sumprob' in line: + i=0 + for line1 in f: + i+=1 + if i>6: + 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] + + task.save() elif os.path.isfile(task.jobdirname+'/file_GB000.stat') and not task.done: @@ -432,8 +483,25 @@ def refresh_done(request): last = line.split()[0] else: last = 0 - task.running=1+int(last)*100.0/task.md_nstep + task.running=int(1+int(last)*100.0/task.md_nstep) if task.running>100: task.running=100 task.save() - return redirect('/') + + 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('/')