dock box size
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Wed, 5 Feb 2020 16:08:11 +0000 (17:08 +0100)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Wed, 5 Feb 2020 16:08:11 +0000 (17:08 +0100)
django_simple/todo/views.py

index 29f72a0..9c4f9ea 100644 (file)
@@ -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)