X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=django_simple%2Ftodo%2Fviews.py;h=11363558ebf8717b6bc580e104680f4635d0d481;hb=b8d72393af43b9e12966addaf37c9083214e0d25;hp=4cbd2e590238df98bf3f5ea1dc462d3633704e25;hpb=62a4475b3c221974500e82318db4875d01257c68;p=django_unres.git diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index 4cbd2e5..1136355 100644 --- a/django_simple/todo/views.py +++ b/django_simple/todo/views.py @@ -30,6 +30,29 @@ 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) @@ -741,20 +764,28 @@ def add_dock(request,task_id): 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: + 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_pdbref=True + if task.md_seq2 =='': + task.md_pdbref=True task.md_respa=False task.ssbond="" + task.dock_peptide=form.cleaned_data["dock_peptide"] 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 @@ -775,8 +806,17 @@ def add_dock(request,task_id): 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() @@ -827,6 +867,7 @@ def add_dock_a(request,task_id): task.md_pdbref=True task.md_respa=False task.ssbond="" + task.dock_peptide=form.cleaned_data["dock_peptide"] task.md_seq="" @@ -865,6 +906,12 @@ def add_dock_a(request,task_id): task.md_respa=False task.damino=True + box1=dock_box(task.myfile1) + box2=dock_box(task.myfile2) + task.boxx=(box1+box2)*1.2+20 + task.boxy=(box1+box2)*1.2+20 + task.boxz=(box1+box2)*1.2+20 + task.save() return redirect('addmlist',task_id=task.id) @@ -1086,7 +1133,7 @@ def refresh_done0(task): task.results_text=text - if task.md_pdbref and task.type=='remd' or task.type=='dock': + if task.md_pdbref and task.type=='remd' or task.type=='dock' and task.md_seq2 == '': for i in range(1,6): try: