saxs input data normalization and plot for input pdb
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Thu, 25 Jan 2018 20:50:47 +0000 (21:50 +0100)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Thu, 25 Jan 2018 20:50:47 +0000 (21:50 +0100)
django_simple/todo/jobfiles.py
django_simple/todo/models.py
django_simple/todo/templates/details.html
django_simple/todo/templates/details1.html
files/pbs8.csh
files/pbs8_new.csh
files/plot_saxs.py

index df2ce65..d9b8c7c 100644 (file)
@@ -398,13 +398,20 @@ CUTOFF=7.00000 WCORR4=0.00000"""
              f.write(seq_2d_write_50(seq_2d_xx(instance.md_2d,seq)))
 
           if instance.saxs_data != '':
+             saxs_r=[]
+             saxs_P=[]
+             saxs_norm=0
              fsaxs = open(instance.jobdirname+'/saxs.data', 'w')
              lines=instance.saxs_data.split('\n')
              for line in lines:
               tmp=line.split()
               if len(tmp)==2:
                f.write(tmp[0]+' '+tmp[1]+'\n')
-               fsaxs.write(tmp[0]+' '+tmp[1]+'\n') 
+               saxs_r.append(tmp[0])
+               saxs_P.append(float(tmp[1]))
+               saxs_norm += float(tmp[1])
+             for r,p in zip(saxs_r,saxs_P):
+               fsaxs.write('{} {}\n'.format(r,p/saxs_norm)) 
              fsaxs.close()
 
           f.write(w+'\n')
index 1c07a2c..765e3c6 100644 (file)
@@ -83,7 +83,7 @@ class Task(models.Model):
 
 #saxs
     scal_rad = models.FloatField(default=1.0)
-    wsaxs = models.FloatField(default=100.0)
+    wsaxs = models.FloatField(default=1000.0)
     saxs_data = models.TextField(max_length=10000,default='')
         
     
index b567e6e..3484627 100644 (file)
@@ -513,7 +513,7 @@ Created {{ task.created_date  }}
                           {% if task.saxs_data != "" %}
                        <li class="list-group-item task-item">
                          <div class="col-md-2"> P(r) of input SAXS data and
-                         calculated for 5 models </div>
+                         calculated for 5 models and the input pdb</div>
                          <div class="col-md-10"> <img 
                          src="/myfiles/download-file/{{task.jobdirname}}/saxs.png"
                          width="500"> </div>
index e1f4578..5681fd9 100644 (file)
@@ -513,7 +513,7 @@ Created {{ task.created_date  }}
                           {% if task.saxs_data != "" %}
                        <li class="list-group-item task-item">
                          <div class="col-md-2"> P(r) of input SAXS data and
-                         calculated for 5 models </div>
+                         calculated for 5 models and the input pdb</div>
                          <div class="col-md-10"> <img 
                          src="/myfiles/download-file/{{task.jobdirname}}/saxs.png"
                          width="500"> </div>
index 82e7143..f413281 100755 (executable)
@@ -78,16 +78,21 @@ end
 
 /users2/local/pymol_1.6/pymol -c ../files/model.pml
 
-awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb
-/users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp.pdb > plik1.pdb
-rm tmp.pdb
-
-/users2/local/bin/tmscore MODEL1.pdb plik1.pdb > tmscore1.out
-/users2/local/bin/tmscore MODEL2.pdb plik1.pdb > tmscore2.out
-/users2/local/bin/tmscore MODEL3.pdb plik1.pdb > tmscore3.out
-/users2/local/bin/tmscore MODEL4.pdb plik1.pdb > tmscore4.out
-/users2/local/bin/tmscore MODEL5.pdb plik1.pdb > tmscore5.out
-rm plik1.pdb
+if ( `grep -c pdbref file.inp` ) then
+ awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb
+ /users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp.pdb > plik1.pdb
+ rm tmp.pdb
+
+ /users2/local/bin/tmscore MODEL1.pdb plik1.pdb > tmscore1.out
+ /users2/local/bin/tmscore MODEL2.pdb plik1.pdb > tmscore2.out
+ /users2/local/bin/tmscore MODEL3.pdb plik1.pdb > tmscore3.out
+ /users2/local/bin/tmscore MODEL4.pdb plik1.pdb > tmscore4.out
+ /users2/local/bin/tmscore MODEL5.pdb plik1.pdb > tmscore5.out
+ if (-e saxs.data) then
+  awk -f ../files/saxs_dist.awk plik1.pdb > plik_saxs.data
+ endif
+ rm plik1.pdb
+endif
 
 if (-e saxs.data) then
 awk -f ../files/saxs_dist.awk MODEL1.pdb > MODEL1_saxs.data
index 67dcc8c..1713c99 100755 (executable)
@@ -78,16 +78,21 @@ end
 
 /users2/local/pymol_1.6/pymol -c ../files/model.pml
 
-awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb
-/users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp.pdb > plik1.pdb
-rm tmp.pdb
-
-/users2/local/bin/tmscore MODEL1.pdb plik1.pdb > tmscore1.out
-/users2/local/bin/tmscore MODEL2.pdb plik1.pdb > tmscore2.out
-/users2/local/bin/tmscore MODEL3.pdb plik1.pdb > tmscore3.out
-/users2/local/bin/tmscore MODEL4.pdb plik1.pdb > tmscore4.out
-/users2/local/bin/tmscore MODEL5.pdb plik1.pdb > tmscore5.out
-rm plik1.pdb
+if ( `grep -c pdbref file.inp` ) then
+ awk '{printf "%s%s%s\n",substr($0,0,21)," ",substr($0,23)}' plik.pdb > tmp.pdb
+ /users2/local/mmtsb/perl/convpdb.pl -renumber 1 -out generic tmp.pdb > plik1.pdb
+ rm tmp.pdb
+
+ /users2/local/bin/tmscore MODEL1.pdb plik1.pdb > tmscore1.out
+ /users2/local/bin/tmscore MODEL2.pdb plik1.pdb > tmscore2.out
+ /users2/local/bin/tmscore MODEL3.pdb plik1.pdb > tmscore3.out
+ /users2/local/bin/tmscore MODEL4.pdb plik1.pdb > tmscore4.out
+ /users2/local/bin/tmscore MODEL5.pdb plik1.pdb > tmscore5.out
+ if (-e saxs.data) then
+  awk -f ../files/saxs_dist.awk plik1.pdb > plik_saxs.data
+ endif
+ rm plik1.pdb
+endif
 
 if (-e saxs.data) then
 awk -f ../files/saxs_dist.awk MODEL1.pdb > MODEL1_saxs.data
index 292550b..d1ff7f6 100755 (executable)
@@ -7,6 +7,7 @@ import matplotlib.pyplot as plt
 import matplotlib.cm as cm
 import numpy as np
 import sys
+import os.path
 
 x,y= np.loadtxt('saxs.data',usecols=(0,1),unpack=True)
 x1,y1= np.loadtxt('MODEL1_saxs.data',usecols=(0,2),unpack=True)
@@ -26,5 +27,10 @@ plt.plot(x2,y2,'-',color='lime')
 plt.plot(x3,y3,'-',color='blue')
 plt.plot(x4,y4,'-',color='magenta')
 plt.plot(x5,y5,'-',color='cyan')
-plt.legend(['reference','MODEL1','MODEL2','MODEL3','MODEL4','MODEL5'])
+if os.path.isfile('plik_saxs.data'):
+  x6,y6= np.loadtxt('plik_saxs.data',usecols=(0,2),unpack=True)
+  plt.plot(x6,y6,'--',color='black')
+  plt.legend(['reference','MODEL1','MODEL2','MODEL3','MODEL4','MODEL5','input pdb'])
+else:
+  plt.legend(['reference','MODEL1','MODEL2','MODEL3','MODEL4','MODEL5'])
 plt.savefig('saxs.png')