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
Line 
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!
7! Corrections to ECEPP energy terms due to R. A. Abagyan et al.
8!
9! Two terms are calculated: eyrccr and eyentr, representing respectively
10! c a term to slightly shift the backbone dihedral angle preferences in
11! the ECEPP potential slightly away from the helix region, and another
12! term to estimate the side-chain entropy from a given configuration.
13!
14!
15! *********************************************************************
16 real*8 function eyrccr(nml)
17 include 'INCL.H'
18 double precision et, rsscl
19
20 integer nml, istres, indres, i, ipsi, in, ica, ic, mlvr, iphi
21
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
35! print *,'***********'
36 do i=istres,indres
37 mynm=seq(i)
38 call tolost(mynm)
39 if ((mynm.eq.'val').or.(mynm.eq.'ile').or.
40 & (mynm.eq.'thr')) then
41 rsscl=1.0
42 else
43 rsscl=0.5
44 endif
45 et=et+rsscl*(1.0-sin(vlvr(ipsi(i))))
46! print *,' contribution = ',rsscl*(1.0-sin(vlvr(ipsi(i))))
47! print *,'obtained using scale ',rsscl,' and angle ',
48! # vlvr(ipsi(i))
49 enddo
50! print *,'abagyan dihedral term = ',et
51! print *,'***********'
52 eyrccr=et
53 return
54 end
55
56 subroutine init_abgn
57 include 'INCL.H'
58! dimension rsstrg(mxrs)
59! common /abgncor/rsstrg
60 double precision xarea, estrg
61
62 integer i, istres, indres, imytyp, j
63
64 dimension xarea(nrsty),estrg(nrsty)
65 character mynm*4
66! print *,'Initialization of Abagyan entropic term'
67! Maximum accessible surface areas for different residue types
68 data (xarea(i),i=1,nrsty)/
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
84 data (estrg(i),i=1,nrsty)/
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 /
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
110! print *,'comparing ',mynm,' with ',rsnmcd(j),imytyp
111 enddo
112 if (imytyp.eq.0) then
113 print *, 'Unknown residue type ',seq(i)
114 print *, 'Abagyan term strength set to 0'
115 rsstrg(i)=0.0
116 else
117 rsstrg(i)=estrg(imytyp)/xarea(imytyp)
118 endif
119! print *,'residue ',i,seq(i),' type ',imytyp
120! print *, 'strength for residue ',i,seq(i),' is ',rsstrg(i)
121 enddo
122 print *, 'initialized Abagyan corrections to ECEPP force field'
123 end
124
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
131 double precision eentr, aars, strh
132
133 integer nml, istres, indres, i
134
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
143! print *,'residue range ',istres,indres
144! print *,'for molecule ',nml
145 do i=istres, indres
146 aars=surfres(i)
147 strh=rsstrg(i)
148! The maximal burial entropies were estimated at temperature 300k
149! The values in the array estrg are k_B * T (=300k) * Entropy
150! Presently we need it at temperature 1/beta, so we need to
151! multiply the strengths in estrg with (1/beta)/(300 kelvin)
152! 300 kelvin is approximately 0.59576607 kcal/mol.
153 eentr=eentr+aars*strh/(0.59576607*beta)
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
158 enddo
159! print *,'abagyan entropic term = ',eentr
160 eyentr=eentr
161 return
162 end
163
164 real*8 function eyabgn(nml)
165 include 'INCL.H'
166 double precision eyrccr, eyentr
167
168 integer nml
169
170 eyabgn=eyrccr(nml)+eyentr(nml)
171! print *,'Abagyan term = ',eyabgn
172 return
173 end
Note: See TracBrowser for help on using the repository browser.