5 implicit real*8 (a-h,o-z)
7 include 'DIMENSIONS.ZSCOPT'
8 include 'COMMON.IOUNITS'
11 include 'COMMON.INTERACT'
12 include 'COMMON.LOCAL'
13 include 'COMMON.NAMES'
14 include 'COMMON.CHAIN'
15 include 'COMMON.FFIELD'
16 include 'COMMON.SBRIDGE'
17 include 'COMMON.TORCNSTR'
18 include 'COMMON.CONTROL'
19 character*4 sequence(maxres)
21 double precision x(maxvar)
22 character*320 controlcard,ucase
23 dimension itype_pdb(maxres)
25 call card_concat(controlcard,.true.)
26 call reada(controlcard,'SCAL14',scal14,0.4d0)
27 call reada(controlcard,'SCALSCP',scalscp,1.0d0)
28 call reada(controlcard,'CUTOFF',cutoff_corr,7.0d0)
29 call reada(controlcard,'DELT_CORR',delt_corr,0.5d0)
30 r0_corr=cutoff_corr-delt_corr
31 call readi(controlcard,"NRES",nres,0)
32 iscode=index(controlcard,"ONE_LETTER")
34 write (iout,*) "Error: no residues in molecule"
37 if (nres.gt.maxres) then
38 write (iout,*) "Error: too many residues",nres,maxres
40 write(iout,*) 'nres=',nres
41 C Read sequence of the protein
43 read (inp,'(80a1)') (sequence(i)(1:1),i=1,nres)
45 read (inp,'(20(1x,a3))') (sequence(i),i=1,nres)
47 C Convert sequence to numeric code
49 itype(i)=rescode(i,sequence(i),iscode)
51 write (iout,*) "Numeric code:"
52 write (iout,'(20i4)') (itype(i),i=1,nres)
55 if (itype(i).eq.ntyp1 .or. itype(i+1).eq.ntyp1) then
57 if (itype(i).eq.ntyp1) then
61 else if (iabs(itype(i+1)).ne.20) then
63 else if (iabs(itype(i)).ne.20) then
72 write (iout,*) i,itype(i),itel(i)
76 if (with_dihed_constr) then
78 read (inp,*) ndih_constr
79 if (ndih_constr.gt.0) then
81 write (iout,*) 'FTORS',ftors
82 read (inp,*) (idih_constr(i),phi0(i),drange(i),i=1,ndih_constr)
84 & 'There are',ndih_constr,' constraints on phi angles.'
86 write (iout,'(i5,2f8.3)') idih_constr(i),phi0(i),drange(i)
89 phi0(i)=deg2rad*phi0(i)
90 drange(i)=deg2rad*drange(i)
98 if (itype(1).eq.ntyp1) nnt=2
99 if (itype(nres).eq.ntyp1) nct=nct-1
100 write(iout,*) 'NNT=',NNT,' NCT=',NCT
104 write (iout,'(/a,i3,a)') 'The chain contains',ns,
105 & ' disulfide-bridging cysteines.'
106 write (iout,'(20i4)') (iss(i),i=1,ns)
107 write (iout,'(/a/)') 'Pre-formed links are:'
113 write (iout,'(2a,i3,3a,i3,a,3f10.3)')
114 & restyp(it1),'(',i1,') -- ',restyp(it2),'(',i2,')',
115 & dhpb(i),ebr,forcon(i)
121 c-----------------------------------------------------------------------------
122 logical function seq_comp(itypea,itypeb,length)
124 integer length,itypea(length),itypeb(length)
127 if (itypea(i).ne.itypeb(i)) then
135 c-----------------------------------------------------------------------------
136 subroutine read_bridge
137 C Read information about disulfide bridges.
138 implicit real*8 (a-h,o-z)
140 include 'DIMENSIONS.ZSCOPT'
141 include 'COMMON.IOUNITS'
144 include 'COMMON.INTERACT'
145 include 'COMMON.NAMES'
146 include 'COMMON.CHAIN'
147 include 'COMMON.FFIELD'
148 include 'COMMON.SBRIDGE'
149 C Read bridging residues.
150 read (inp,*) ns,(iss(i),i=1,ns)
152 write (iout,*) 'ns=',ns,' iss:',(iss(i),i=1,ns)
153 C Check whether the specified bridging residues are cystines.
155 if (itype(iss(i)).ne.1) then
156 write (iout,'(2a,i3,a)')
157 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
158 & ' can form a disulfide bridge?!!!'
159 write (*,'(2a,i3,a)')
160 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
161 & ' can form a disulfide bridge?!!!'
165 C Read preformed bridges.
167 read (inp,*) nss,(ihpb(i),jhpb(i),i=1,nss)
168 write (iout,*) 'nss=',nss,' ihpb,jhpb: ',(ihpb(i),jhpb(i),i=1,nss)
171 C Check if the residues involved in bridges are in the specified list of
175 if (ihpb(i).eq.ihpb(j).or.ihpb(i).eq.jhpb(j)
176 & .or.jhpb(i).eq.ihpb(j).or.jhpb(i).eq.jhpb(j)) then
177 write (iout,'(a,i3,a)') 'Disulfide pair',i,
178 & ' contains residues present in other pairs.'
179 write (*,'(a,i3,a)') 'Disulfide pair',i,
180 & ' contains residues present in other pairs.'
185 if (ihpb(i).eq.iss(j)) goto 10
187 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
190 if (jhpb(i).eq.iss(j)) goto 20
192 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
205 c------------------------------------------------------------------------------
206 subroutine read_angles(kanal,iscor,energ,iprot,*)
207 implicit real*8 (a-h,o-z)
209 include 'DIMENSIONS.ZSCOPT'
210 include 'COMMON.INTERACT'
211 include 'COMMON.SBRIDGE'
214 include 'COMMON.CHAIN'
215 include 'COMMON.IOUNITS'
217 read(kanal,'(a80)',end=10,err=10) lineh
218 read(lineh(:5),*,err=8) ic
219 read(lineh(6:),*,err=8) energ
222 print *,'error, assuming e=1d10',lineh
226 read(lineh(18:),*,end=10,err=10) nss
228 read (lineh(20:),*,end=10,err=10)
229 & (IHPB(I),JHPB(I),I=1,NSS),iscor
231 read (lineh(20:),*,end=10,err=10) (IHPB(I),JHPB(I),I=1,8)
232 read (kanal,*,end=10,err=10) (IHPB(I),JHPB(I),
235 c print *,"energy",energ," iscor",iscor
236 read (kanal,*,err=10,end=10) (theta(i),i=3,nres)
237 read (kanal,*,err=10,end=10) (phi(i),i=4,nres)
238 read (kanal,*,err=10,end=10) (alph(i),i=2,nres-1)
239 read (kanal,*,err=10,end=10) (omeg(i),i=2,nres-1)
241 theta(i)=deg2rad*theta(i)
242 phi(i)=deg2rad*phi(i)
243 alph(i)=deg2rad*alph(i)
244 omeg(i)=deg2rad*omeg(i)