X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=files%2Ffluct_plot.py;h=1064e90c21242ad00b634dfe5703edde00294dbe;hb=b3cd3f7d9ed8c4683b8e13aee4c34ed4863d4788;hp=b05ede1bada8598d77a5018763911b9be3bae47b;hpb=c297d71bf7b0960c3b3294786418e796220696eb;p=django_unres.git diff --git a/files/fluct_plot.py b/files/fluct_plot.py index b05ede1..1064e90 100755 --- a/files/fluct_plot.py +++ b/files/fluct_plot.py @@ -6,7 +6,8 @@ import matplotlib #matplotlib.use('GTK') matplotlib.use('Agg') import matplotlib.pyplot as plt - +import os.path +from itertools import cycle iatom=0 nmol=0 @@ -48,9 +49,42 @@ for i in range(1,natom+1): x.append(i) y.append(fluct) +b=[] +newchain=True +if os.path.exists('plik.pdb'): + with open('plik.pdb') as f: + for line in f: + if line[0:4]=='ATOM' and line[13:15]=='CA': +# print line + if newchain or int(line[22:26])>ires: + b.append(math.sqrt(float(line[60:66])*3/8/math.pi/math.pi)) + ires=int(line[22:26]) + newchain=False + if line[0:3]=='TER': + newchain=True + if line[0:3]=='END': + break + + + plt.xlabel('residue') plt.ylabel('fluctuations') plt.xlim(0,natom+1) plt.plot(x,y,'-') +if len(b)!=0: + plt.plot(x,b,'-',c='red') + plt.legend(['fluctuations','sqrt(3*bfactor/8*pi^2)']) plt.savefig('fluct_plot.png') + +ycycle=cycle(y) +with open('plik.pdb') as f, open ('plik_bf.pdb','w') as fw: + prev_ires=None + for line in f: + if line[0:4]=='ATOM': + if line[22:26] != prev_ires: + prev_ires=line[22:26] + bf=next(ycycle) + fw.write(line[0:60]+'{:6.2f}'.format(bf)+line[66:]) + elif line[0:3] == 'TER' or line[0:6] == 'CONECT': + fw.write(line) \ No newline at end of file