From b0e5f7d1d58d12c2133ad3ef8af42ae80e58bffa Mon Sep 17 00:00:00 2001 From: Cezary Czaplewski Date: Wed, 5 Feb 2020 17:08:11 +0100 Subject: [PATCH] dock box size --- django_simple/todo/views.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/django_simple/todo/views.py b/django_simple/todo/views.py index 29f72a0..9c4f9ea 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) @@ -776,8 +799,14 @@ def add_dock(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.ready=True + task.save() @@ -867,6 +896,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) -- 1.7.9.5