1 subroutine molread_zs(molnum)
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.ALLPROT'
18 include 'COMMON.TORCNSTR'
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",molnum
37 write(iout,*) 'molnum:',molnum,' nres=',nres
38 C Read sequence of the protein
40 read (inp,'(80a1)') (sequence(i)(1:1),i=1,nres)
42 read (inp,'(20(1x,a3))') (sequence(i),i=1,nres)
44 C Convert sequence to numeric code
46 itype(i)=rescode(i,sequence(i),iscode)
48 write (iout,*) "Numeric code:"
49 write (iout,'(20i4)') (itype(i),i=1,nres)
52 if (itype(i).eq.ntyp1 .or. itype(i+1).eq.ntyp1) then
54 if (itype(i).eq.ntyp1) then
58 else if (itype(i+1).ne.20) then
60 else if (itype(i).ne.20) then
70 write(iout,*) 'NNT=',NNT,' NCT=',NCT
71 if (itype(1).eq.ntyp1) nnt=2
72 if (itype(nres).eq.ntyp1) nct=nct-1
75 call store_molinfo(molnum)
76 if (ns_zs(molnum).gt.0) then
77 write (iout,'(/a,i3,a)') 'The chain contains',ns_zs(molnum),
78 & ' disulfide-bridging cysteines.'
79 write (iout,'(20i4)') (iss_zs(i,molnum),i=1,ns_zs(molnum))
80 write (iout,'(/a/)') 'Pre-formed links are:'
81 do i=1,nss_zs(1,molnum)
82 i1=ihpb_zs(i,1,molnum)-nres_zs(molnum)
83 i2=jhpb_zs(i,1,molnum)-nres_zs(molnum)
84 it1=itype_zs(i1,molnum)
85 it2=itype_zs(i2,molnum)
86 write (iout,'(2a,i3,3a,i3,a,3f10.3)')
87 & restyp(it1),'(',i1,') -- ',restyp(it2),'(',i2,')',
88 & dhpb_zs(i,molnum),ebr,forcon_zs(i,molnum)
91 write (iout,*) "Protein:",molnum," leaving MOLREAD_ZS"
95 c-----------------------------------------------------------------------------
96 logical function seq_comp(itypea,itypeb,length)
98 integer length,itypea(length),itypeb(length)
101 if (itypea(i).ne.itypeb(i)) then
109 c-----------------------------------------------------------------------------
110 subroutine read_bridge
111 C Read information about disulfide bridges.
112 implicit real*8 (a-h,o-z)
114 include 'DIMENSIONS.ZSCOPT'
115 include 'COMMON.IOUNITS'
118 include 'COMMON.INTERACT'
119 include 'COMMON.NAMES'
120 include 'COMMON.CHAIN'
121 include 'COMMON.FFIELD'
122 include 'COMMON.SBRIDGE'
123 include 'COMMON.ALLPROT'
124 C Read bridging residues.
125 read (inp,*) ns,(iss(i),i=1,ns)
127 write (iout,*) 'ns=',ns,' iss:',(iss(i),i=1,ns)
128 C Check whether the specified bridging residues are cystines.
130 if (itype(iss(i)).ne.1) then
131 write (iout,'(2a,i3,a)')
132 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
133 & ' can form a disulfide bridge?!!!'
134 write (*,'(2a,i3,a)')
135 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
136 & ' can form a disulfide bridge?!!!'
140 C Read preformed bridges.
142 read (inp,*) nss,(ihpb(i),jhpb(i),i=1,nss)
143 write (iout,*) 'nss=',nss,' ihpb,jhpb: ',(ihpb(i),jhpb(i),i=1,nss)
146 C Check if the residues involved in bridges are in the specified list of
150 if (ihpb(i).eq.ihpb(j).or.ihpb(i).eq.jhpb(j)
151 & .or.jhpb(i).eq.ihpb(j).or.jhpb(i).eq.jhpb(j)) then
152 write (iout,'(a,i3,a)') 'Disulfide pair',i,
153 & ' contains residues present in other pairs.'
154 write (*,'(a,i3,a)') 'Disulfide pair',i,
155 & ' contains residues present in other pairs.'
160 if (ihpb(i).eq.iss(j)) goto 10
162 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
165 if (jhpb(i).eq.iss(j)) goto 20
167 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
180 c------------------------------------------------------------------------------
181 subroutine store_molinfo(molnum)
182 implicit real*8 (a-h,o-z)
184 include 'DIMENSIONS.ZSCOPT'
185 include "COMMON.ALLPROT"
186 include 'COMMON.CHAIN'
187 include 'COMMON.SBRIDGE'
189 include "COMMON.INTERACT"
190 include "COMMON.LOCAL"
191 include "COMMON.IOUNITS"
195 c write (iout,*) "store_molinfo nres",nres_zs(molnum),
196 c & " nnt",nnt_zs(molnum)," nct",nct_zs(molnum)
197 iatsc_s_zs(molnum)=iatsc_s
198 iatsc_e_zs(molnum)=iatsc_e
199 iatel_s_zs(molnum)=iatel_s
200 iatel_e_zs(molnum)=iatel_e
201 iturn3_start_zs(molnum)=iturn3_start
202 iturn3_end_zs(molnum)=iturn3_end
203 iturn4_start_zs(molnum)=iturn4_start
204 iturn4_end_zs(molnum)=iturn4_end
205 iatscp_s_zs(molnum)=iatscp_s
206 iatscp_e_zs(molnum)=iatscp_e
207 loc_start_zs(molnum)=loc_start
208 loc_end_zs(molnum)=loc_end
209 ithet_start_zs(molnum)=ithet_start
210 ithet_end_zs(molnum)=ithet_end
211 iphi_start_zs(molnum)=iphi_start
212 iphi_end_zs(molnum)=iphi_end
213 itau_start_zs(molnum)=itau_start
214 itau_end_zs(molnum)=itau_end
217 ntheta_zs(molnum)=ntheta
218 nside_zs(molnum)=nside
220 ialph_zs(i,1,molnum)=ialph(i,1)
221 ialph_zs(i,2,molnum)=ialph(i,2)
224 nint_gr_zs(i,molnum)=nint_gr(i)
225 nscp_gr_zs(i,molnum)=nscp_gr(i)
227 istart_zs(i,j,molnum)=istart(i,j)
228 iend_zs(i,j,molnum)=iend(i,j)
230 itype_zs(i,molnum)=itype(i)
231 itel_zs(i,molnum)=itel(i)
232 ielstart_zs(i,molnum)=ielstart(i)
233 ielend_zs(i,molnum)=ielend(i)
234 c write (iout,*) "i",i," nscp_gr",nscp_gr(i),
235 c & " iscp",(iscpstart(i,j),iscpend(i,j),j=1,nscp_gr(i))
237 iscpstart_zs(i,j,molnum)=iscpstart(i,j)
238 iscpend_zs(i,j,molnum)=iscpend(i,j)
243 c nfree_zs(molnum)=nfree
245 c iss_zs(i,molnum)=iss(i)
248 c ihpb_zs(i,molnum)=ihpb(i)
249 c jhpb_zs(i,molnum)=jhpb(i)
250 c dhpb_zs(i,molnum)=dhpb(i)
251 c forcon_zs(i,molnum)=forcon(i)
253 link_start_zs(molnum)=link_start
254 link_end_zs(molnum)=link_end
257 c------------------------------------------------------------------------------
258 subroutine restore_molinfo(molnum)
259 implicit real*8 (a-h,o-z)
261 include 'DIMENSIONS.ZSCOPT'
262 include "COMMON.ALLPROT"
263 include "COMMON.SBRIDGE"
264 include "COMMON.CHAIN"
266 include "COMMON.INTERACT"
267 include "COMMON.TORCNSTR"
268 include "COMMON.LOCAL"
273 iatsc_s=iatsc_s_zs(molnum)
274 iatsc_e=iatsc_e_zs(molnum)
275 iatel_s=iatel_s_zs(molnum)
276 iatel_e=iatel_e_zs(molnum)
277 iturn3_start=iturn3_start_zs(molnum)
278 iturn3_end=iturn3_end_zs(molnum)
279 iturn4_start=iturn4_start_zs(molnum)
280 iturn4_end=iturn4_end_zs(molnum)
281 iatscp_s=iatscp_s_zs(molnum)
282 iatscp_e=iatscp_e_zs(molnum)
283 ithet_start=ithet_start_zs(molnum)
284 ithet_end=ithet_end_zs(molnum)
285 iphi_start=iphi_start_zs(molnum)
286 iphi_end=iphi_end_zs(molnum)
287 itau_start=itau_start_zs(molnum)
288 itau_end=itau_end_zs(molnum)
289 loc_start=loc_start_zs(molnum)
290 loc_end=loc_end_zs(molnum)
293 ntheta=ntheta_zs(molnum)
294 nside=nside_zs(molnum)
296 ialph(i,1)=ialph_zs(i,1,molnum)
297 ialph(i,2)=ialph_zs(i,2,molnum)
300 nint_gr(i)=nint_gr_zs(i,molnum)
301 nscp_gr(i)=nscp_gr_zs(i,molnum)
303 istart(i,j)=istart_zs(i,j,molnum)
304 iend(i,j)=iend_zs(i,j,molnum)
306 itype(i)=itype_zs(i,molnum)
307 itel(i)=itel_zs(i,molnum)
308 ielstart(i)=ielstart_zs(i,molnum)
309 ielend(i)=ielend_zs(i,molnum)
311 iscpstart(i,j)=iscpstart_zs(i,j,molnum)
312 iscpend(i,j)=iscpend_zs(i,j,molnum)
317 c nfree=nfree_zs(molnum)
319 c iss(i)=iss_zs(i,molnum)
322 c ihpb(i)=ihpb_zs(i,molnum)
323 c jhpb(i)=jhpb_zs(i,molnum)
324 c dhpb(i)=dhpb_zs(i,molnum)
325 c forcon(i)=forcon_zs(i,molnum)
327 link_start=link_start_zs(molnum)
328 link_end=link_end_zs(molnum)
331 c------------------------------------------------------------------------------
332 subroutine read_angles(kanal,iscor,energ,iprot,*)
333 implicit real*8 (a-h,o-z)
335 include 'DIMENSIONS.ZSCOPT'
336 include 'COMMON.INTERACT'
337 include 'COMMON.SBRIDGE'
340 include 'COMMON.CHAIN'
341 include 'COMMON.IOUNITS'
343 read(kanal,'(a80)',end=10,err=10) lineh
344 read(lineh(:5),*,err=8) ic
345 read(lineh(6:),*,err=8) energ
348 print *,'error, assuming e=1d10',lineh
352 read(lineh(18:),*,end=10,err=10) nss
354 read (lineh(20:),*,end=10,err=10)
355 & (IHPB(I),JHPB(I),I=1,NSS),iscor
357 read (lineh(20:),*,end=10,err=10) (IHPB(I),JHPB(I),I=1,8)
358 read (kanal,*,end=10,err=10) (IHPB(I),JHPB(I),
361 c print *,"energy",energ," iscor",iscor
362 read (kanal,*,err=10,end=10) (theta(i),i=3,nres)
363 read (kanal,*,err=10,end=10) (phi(i),i=4,nres)
364 read (kanal,*,err=10,end=10) (alph(i),i=2,nres-1)
365 read (kanal,*,err=10,end=10) (omeg(i),i=2,nres-1)
367 theta(i)=deg2rad*theta(i)
368 phi(i)=deg2rad*phi(i)
369 alph(i)=deg2rad*alph(i)
370 omeg(i)=deg2rad*omeg(i)