From: Cezary Czaplewski Date: Thu, 25 Jan 2018 20:50:47 +0000 (+0100) Subject: saxs input data normalization and plot for input pdb X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=commitdiff_plain;h=a3b7f27a81cf442cdeeaff5b9c9b52298c282f5a;p=django_unres.git saxs input data normalization and plot for input pdb --- diff --git a/django_simple/todo/jobfiles.py b/django_simple/todo/jobfiles.py index df2ce65..d9b8c7c 100644 --- a/django_simple/todo/jobfiles.py +++ b/django_simple/todo/jobfiles.py @@ -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') diff --git a/django_simple/todo/models.py b/django_simple/todo/models.py index 1c07a2c..765e3c6 100644 --- a/django_simple/todo/models.py +++ b/django_simple/todo/models.py @@ -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='') diff --git a/django_simple/todo/templates/details.html b/django_simple/todo/templates/details.html index b567e6e..3484627 100644 --- a/django_simple/todo/templates/details.html +++ b/django_simple/todo/templates/details.html @@ -513,7 +513,7 @@ Created {{ task.created_date }} {% if task.saxs_data != "" %}
  • P(r) of input SAXS data and - calculated for 5 models
    + calculated for 5 models and the input pdb
    diff --git a/django_simple/todo/templates/details1.html b/django_simple/todo/templates/details1.html index e1f4578..5681fd9 100644 --- a/django_simple/todo/templates/details1.html +++ b/django_simple/todo/templates/details1.html @@ -513,7 +513,7 @@ Created {{ task.created_date }} {% if task.saxs_data != "" %}
  • P(r) of input SAXS data and - calculated for 5 models
    + calculated for 5 models and the input pdb
    diff --git a/files/pbs8.csh b/files/pbs8.csh index 82e7143..f413281 100755 --- a/files/pbs8.csh +++ b/files/pbs8.csh @@ -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 diff --git a/files/pbs8_new.csh b/files/pbs8_new.csh index 67dcc8c..1713c99 100755 --- a/files/pbs8_new.csh +++ b/files/pbs8_new.csh @@ -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 diff --git a/files/plot_saxs.py b/files/plot_saxs.py index 292550b..d1ff7f6 100755 --- a/files/plot_saxs.py +++ b/files/plot_saxs.py @@ -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')