source: eyabgn.f

Last change on this file was 32289cd, checked in by baerbaer <baerbaer@…>, 14 years ago

Explicitly declare variables.

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/smmp/trunk@33 26dc1dd8-5c4e-0410-9ffe-d298b4865968

  • Property mode set to 100644
File size: 6.1 KB
RevLine 
[bd2278d]1! *********************************************************************
2! This file contains eyrccr, init_abgn, eyentr, eyabgn
3!
4! Copyright 2007 Frank Eisenmenger, U.H.E. Hansmann,
5! Jan H. Meinke, Sandipan Mohanty
6!
[32289cd]7! Corrections to ECEPP energy terms due to R. A. Abagyan et al.
8!
[bd2278d]9! Two terms are calculated: eyrccr and eyentr, representing respectively
[32289cd]10! c a term to slightly shift the backbone dihedral angle preferences in
[bd2278d]11! the ECEPP potential slightly away from the helix region, and another
[32289cd]12! term to estimate the side-chain entropy from a given configuration.
[bd2278d]13!
14!
15! *********************************************************************
[e40e335]16 real*8 function eyrccr(nml)
17 include 'INCL.H'
[32289cd]18 double precision et, rsscl
19
20 integer nml, istres, indres, i, ipsi, in, ica, ic, mlvr, iphi
21
[e40e335]22 dimension iN(mxrs),iCa(mxrs),iC(mxrs),mlvr(mxvr)
23 dimension iphi(mxrs),ipsi(mxrs)
24 common /lundds/iN,iCa,iC,mlvr,iphi,ipsi
25 character mynm*4
26
27 if (nml.eq.0) then
28 istres=irsml1(1)
29 indres=irsml2(ntlml)
30 else
31 istres=irsml1(nml)
32 indres=irsml2(nml)
33 endif
34 et=0.0
[bd2278d]35! print *,'***********'
[e40e335]36 do i=istres,indres
37 mynm=seq(i)
38 call tolost(mynm)
39 if ((mynm.eq.'val').or.(mynm.eq.'ile').or.
[32289cd]40 & (mynm.eq.'thr')) then
[e40e335]41 rsscl=1.0
[32289cd]42 else
[e40e335]43 rsscl=0.5
44 endif
45 et=et+rsscl*(1.0-sin(vlvr(ipsi(i))))
[bd2278d]46! print *,' contribution = ',rsscl*(1.0-sin(vlvr(ipsi(i))))
47! print *,'obtained using scale ',rsscl,' and angle ',
48! # vlvr(ipsi(i))
[e40e335]49 enddo
[bd2278d]50! print *,'abagyan dihedral term = ',et
51! print *,'***********'
[e40e335]52 eyrccr=et
53 return
[32289cd]54 end
[e40e335]55
56 subroutine init_abgn
57 include 'INCL.H'
58! dimension rsstrg(mxrs)
59! common /abgncor/rsstrg
[32289cd]60 double precision xarea, estrg
61
62 integer i, istres, indres, imytyp, j
63
[e40e335]64 dimension xarea(nrsty),estrg(nrsty)
65 character mynm*4
[bd2278d]66! print *,'Initialization of Abagyan entropic term'
67! Maximum accessible surface areas for different residue types
[e40e335]68 data (xarea(i),i=1,nrsty)/
[bd2278d]69! 1 2 3 4 5
70 & 117.417 , 244.686 , 245.582 , 146.467 , 144.485 ,
71! 6 7 8 9 10
72 & 144.192 , 142.805 , 147.568 , 183.103 , 177.094 ,
73! 11 12 13 14 15
74 & 186.293 , 83.782 , 187.864 , 187.864 , 187.864 ,
75! 16 17 18 19 20
76 & 187.864 , 160.887 , 161.741 , 184.644 , 179.334 ,
77! 21 22 23 24 25
78 & 209.276 , 209.276 , 203.148 , 208.902 , 153.124 ,
79! 26 27 28 29 30
80 & 153.973 , 153.037 , 158.695 , 157.504 , 157.504 ,
81! 31 32 33 34 35
82 & 119.786 , 146.488 , 238.641 , 223.299 , 160.283 /
83! Entropic contribution for maximally exposed residue
[e40e335]84 data (estrg(i),i=1,nrsty)/
[bd2278d]85! 1ala 2arg 3arg+ 4asn 5asp
86 & 0.0 , 2.13 , 2.13 , 0.81 , 0.61 ,
87! 6asp- 7cys 8cyss 9gln 10glu
88 & 0.61 , 1.14 , 1.14 , 2.02 , 1.65 ,
89! 11glu- 12gly 13his 14hise 15hisd
90 & 1.65 , 0.0 , 0.99 , 0.99 , 0.99 ,
91! 16his+ 17hyp 18hypu 19ile 20leu
92 & 0.99 , 0.99 , 0.99 , 0.75 , 0.75 ,
93! 21lys 22lys+ 23met 24phe 25cpro
94 & 2.21 , 2.21 , 1.53 , 0.58 , 0.0 ,
95! 26pro 27cpru 28prou 29pron 30pro+
96 & 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ,
97! 31ser 32thr 33trp 34tyr 35val
98 & 1.19 , 1.12 , 0.97 , 0.99 , 0.50 /
[e40e335]99 do i=1,mxrs
100 rsstrg(i)=0.0
101 enddo
102 istres=irsml1(1)
103 indres=irsml2(ntlml)
104 do i=istres,indres
105 imytyp=0
106 mynm=seq(i)
107 call tolost(mynm)
108 do j=1,nrsty
109 if (rsnmcd(j).eq.mynm) imytyp=j
[bd2278d]110! print *,'comparing ',mynm,' with ',rsnmcd(j),imytyp
[e40e335]111 enddo
[32289cd]112 if (imytyp.eq.0) then
[e40e335]113 print *, 'Unknown residue type ',seq(i)
114 print *, 'Abagyan term strength set to 0'
115 rsstrg(i)=0.0
[32289cd]116 else
[e40e335]117 rsstrg(i)=estrg(imytyp)/xarea(imytyp)
118 endif
[bd2278d]119! print *,'residue ',i,seq(i),' type ',imytyp
[32289cd]120! print *, 'strength for residue ',i,seq(i),' is ',rsstrg(i)
[e40e335]121 enddo
122 print *, 'initialized Abagyan corrections to ECEPP force field'
123 end
[32289cd]124
[e40e335]125 real*8 function eyentr(nml)
126 include 'INCL.H'
127! dimension rsstrg(mxrs)
128! common /abgncor/rsstrg
129! common/ressurf/surfres(mxrs)
130! common/bet/beta
[32289cd]131 double precision eentr, aars, strh
132
133 integer nml, istres, indres, i
134
[e40e335]135 eentr=0
136 if (nml.eq.0) then
137 istres=irsml1(1)
138 indres=irsml2(ntlml)
139 else
140 istres=irsml1(nml)
141 indres=irsml2(nml)
142 endif
[bd2278d]143! print *,'residue range ',istres,indres
144! print *,'for molecule ',nml
[e40e335]145 do i=istres, indres
146 aars=surfres(i)
147 strh=rsstrg(i)
[bd2278d]148! The maximal burial entropies were estimated at temperature 300k
149! The values in the array estrg are k_B * T (=300k) * Entropy
[32289cd]150! Presently we need it at temperature 1/beta, so we need to
[bd2278d]151! multiply the strengths in estrg with (1/beta)/(300 kelvin)
152! 300 kelvin is approximately 0.59576607 kcal/mol.
[e40e335]153 eentr=eentr+aars*strh/(0.59576607*beta)
[bd2278d]154! print *,'contribution = ',aars*strh/(0.59576607*beta)
155! print *,'residue, exposed area = ',i,aars
156! print *,'strength = ',strh,' for residue index = ',i
157! print *,'beta = ',beta
[e40e335]158 enddo
[bd2278d]159! print *,'abagyan entropic term = ',eentr
[e40e335]160 eyentr=eentr
161 return
162 end
[32289cd]163
164 real*8 function eyabgn(nml)
[e40e335]165 include 'INCL.H'
[32289cd]166 double precision eyrccr, eyentr
167
168 integer nml
169
[e40e335]170 eyabgn=eyrccr(nml)+eyentr(nml)
[bd2278d]171! print *,'Abagyan term = ',eyabgn
[e40e335]172 return
173 end
Note: See TracBrowser for help on using the repository browser.