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.21 .or. itype(i+1).eq.21) then
57 if (itype(i).eq.21) then
61 else if (itype(i+1).ne.20) then
63 else if (itype(i).ne.20) then
72 if (with_dihed_constr) then
74 read (inp,*) ndih_constr
75 if (ndih_constr.gt.0) then
77 write (iout,*) 'FTORS',ftors
78 read (inp,*) (idih_constr(i),phi0(i),drange(i),i=1,ndih_constr)
80 & 'There are',ndih_constr,' constraints on phi angles.'
82 write (iout,'(i5,2f8.3)') idih_constr(i),phi0(i),drange(i)
85 phi0(i)=deg2rad*phi0(i)
86 drange(i)=deg2rad*drange(i)
94 if (itype(1).eq.21) nnt=2
95 if (itype(nres).eq.21) nct=nct-1
96 write(iout,*) 'NNT=',NNT,' NCT=',NCT
100 write (iout,'(/a,i3,a)') 'The chain contains',ns,
101 & ' disulfide-bridging cysteines.'
102 write (iout,'(20i4)') (iss(i),i=1,ns)
103 write (iout,'(/a/)') 'Pre-formed links are:'
109 write (iout,'(2a,i3,3a,i3,a,3f10.3)')
110 & restyp(it1),'(',i1,') -- ',restyp(it2),'(',i2,')',
111 & dhpb(i),ebr,forcon(i)
117 c-----------------------------------------------------------------------------
118 logical function seq_comp(itypea,itypeb,length)
120 integer length,itypea(length),itypeb(length)
123 if (itypea(i).ne.itypeb(i)) then
131 c-----------------------------------------------------------------------------
132 subroutine read_bridge
133 C Read information about disulfide bridges.
134 implicit real*8 (a-h,o-z)
136 include 'DIMENSIONS.ZSCOPT'
137 include 'COMMON.IOUNITS'
140 include 'COMMON.INTERACT'
141 include 'COMMON.NAMES'
142 include 'COMMON.CHAIN'
143 include 'COMMON.FFIELD'
144 include 'COMMON.SBRIDGE'
145 C Read bridging residues.
146 read (inp,*) ns,(iss(i),i=1,ns)
148 write (iout,*) 'ns=',ns,' iss:',(iss(i),i=1,ns)
149 C Check whether the specified bridging residues are cystines.
151 if (itype(iss(i)).ne.1) then
152 write (iout,'(2a,i3,a)')
153 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
154 & ' can form a disulfide bridge?!!!'
155 write (*,'(2a,i3,a)')
156 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
157 & ' can form a disulfide bridge?!!!'
161 C Read preformed bridges.
163 read (inp,*) nss,(ihpb(i),jhpb(i),i=1,nss)
164 write (iout,*) 'nss=',nss,' ihpb,jhpb: ',(ihpb(i),jhpb(i),i=1,nss)
167 C Check if the residues involved in bridges are in the specified list of
171 if (ihpb(i).eq.ihpb(j).or.ihpb(i).eq.jhpb(j)
172 & .or.jhpb(i).eq.ihpb(j).or.jhpb(i).eq.jhpb(j)) then
173 write (iout,'(a,i3,a)') 'Disulfide pair',i,
174 & ' contains residues present in other pairs.'
175 write (*,'(a,i3,a)') 'Disulfide pair',i,
176 & ' contains residues present in other pairs.'
181 if (ihpb(i).eq.iss(j)) goto 10
183 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
186 if (jhpb(i).eq.iss(j)) goto 20
188 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
201 c------------------------------------------------------------------------------
202 subroutine read_angles(kanal,iscor,energ,iprot,*)
203 implicit real*8 (a-h,o-z)
205 include 'DIMENSIONS.ZSCOPT'
206 include 'COMMON.INTERACT'
207 include 'COMMON.SBRIDGE'
210 include 'COMMON.CHAIN'
211 include 'COMMON.IOUNITS'
213 read(kanal,'(a80)',end=10,err=10) lineh
214 read(lineh(:5),*,err=8) ic
215 read(lineh(6:),*,err=8) energ
218 print *,'error, assuming e=1d10',lineh
222 read(lineh(18:),*,end=10,err=10) nss
224 read (lineh(20:),*,end=10,err=10)
225 & (IHPB(I),JHPB(I),I=1,NSS),iscor
227 read (lineh(20:),*,end=10,err=10) (IHPB(I),JHPB(I),I=1,8)
228 read (kanal,*,end=10,err=10) (IHPB(I),JHPB(I),
231 c print *,"energy",energ," iscor",iscor
232 read (kanal,*,err=10,end=10) (theta(i),i=3,nres)
233 read (kanal,*,err=10,end=10) (phi(i),i=4,nres)
234 read (kanal,*,err=10,end=10) (alph(i),i=2,nres-1)
235 read (kanal,*,err=10,end=10) (omeg(i),i=2,nres-1)
237 theta(i)=deg2rad*theta(i)
238 phi(i)=deg2rad*phi(i)
239 alph(i)=deg2rad*alph(i)
240 omeg(i)=deg2rad*omeg(i)