1 subroutine molread_zs(molnum)
5 implicit real*8 (a-h,o-z)
7 include 'DIMENSIONS.ZSCOPT'
10 integer IERROR,ERRCODE,kolor,key,comm
13 include 'COMMON.IOUNITS'
16 include 'COMMON.INTERACT'
17 include 'COMMON.LOCAL'
18 include 'COMMON.NAMES'
19 include 'COMMON.CHAIN'
20 include 'COMMON.FFIELD'
21 include 'COMMON.SBRIDGE'
22 include 'COMMON.ALLPROT'
23 include 'COMMON.TORCNSTR'
24 character*4 sequence(maxres)
26 double precision x(maxvar)
27 character*320 controlcard,ucase
28 dimension itype_pdb(maxres)
30 call card_concat(controlcard,.true.)
31 call reada(controlcard,'SCAL14',scal14,0.4d0)
32 call reada(controlcard,'SCALSCP',scalscp,1.0d0)
33 call reada(controlcard,'CUTOFF',cutoff_corr,7.0d0)
34 call reada(controlcard,'DELT_CORR',delt_corr,0.5d0)
35 r0_corr=cutoff_corr-delt_corr
36 call readi(controlcard,"NRES",nres,0)
37 iscode=index(controlcard,"ONE_LETTER")
40 & write (iout,*) "Error: no residues in molecule",molnum
43 if (me.eq.Master) write(iout,*) 'molnum:',molnum,' nres=',nres
44 C Read sequence of the protein
46 read (inp,'(80a1)') (sequence(i)(1:1),i=1,nres)
48 read (inp,'(20(1x,a3))') (sequence(i),i=1,nres)
50 C Convert sequence to numeric code
52 itype(i)=rescode(i,sequence(i),iscode)
54 if (me.eq.Master) then
55 write (iout,*) "Numeric code:"
56 write (iout,'(20i4)') (itype(i),i=1,nres)
60 if (itype(i).eq.ntyp1 .or. itype(i+1).eq.ntyp1) then
62 if (itype(i).eq.ntyp1) then
66 else if (itype(i+1).ne.20) then
68 else if (itype(i).ne.20) then
78 if (me.eq.Master) write(iout,*) 'NNT=',NNT,' NCT=',NCT
79 if (itype(1).eq.ntyp1) nnt=2
80 if (itype(nres).eq.ntyp1) nct=nct-1
83 call store_molinfo(molnum)
84 if (ns_zs(molnum).gt.0) then
85 write (iout,'(/a,i3,a)') 'The chain contains',ns_zs(molnum),
86 & ' disulfide-bridging cysteines.'
87 write (iout,'(20i4)') (iss_zs(i,molnum),i=1,ns_zs(molnum))
88 write (iout,'(/a/)') 'Pre-formed links are:'
89 do i=1,nss_zs(1,molnum)
90 i1=ihpb_zs(i,1,molnum)-nres_zs(molnum)
91 i2=jhpb_zs(i,1,molnum)-nres_zs(molnum)
92 it1=itype_zs(i1,molnum)
93 it2=itype_zs(i2,molnum)
94 write (iout,'(2a,i3,3a,i3,a,3f10.3)')
95 & restyp(it1),'(',i1,') -- ',restyp(it2),'(',i2,')',
96 & dhpb_zs(i,molnum),ebr,forcon_zs(i,molnum)
99 if (me.eq.Master) then
100 write (iout,*) "Protein:",molnum," leaving MOLREAD_ZS"
105 c-----------------------------------------------------------------------------
106 logical function seq_comp(itypea,itypeb,length)
108 integer length,itypea(length),itypeb(length)
111 if (itypea(i).ne.itypeb(i)) then
119 c-----------------------------------------------------------------------------
120 subroutine read_bridge
121 C Read information about disulfide bridges.
122 implicit real*8 (a-h,o-z)
124 include 'DIMENSIONS.ZSCOPT'
129 include 'COMMON.IOUNITS'
132 include 'COMMON.INTERACT'
133 include 'COMMON.NAMES'
134 include 'COMMON.CHAIN'
135 include 'COMMON.FFIELD'
136 include 'COMMON.SBRIDGE'
137 include 'COMMON.ALLPROT'
138 C Read bridging residues.
139 read (inp,*) ns,(iss(i),i=1,ns)
141 if (me.eq.Master) write (iout,*) 'ns=',ns,' iss:',(iss(i),i=1,ns)
142 C Check whether the specified bridging residues are cystines.
144 if (itype(iss(i)).ne.1) then
145 write (iout,'(2a,i3,a)')
146 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
147 & ' can form a disulfide bridge?!!!'
148 write (*,'(2a,i3,a)')
149 & 'Do you REALLY think that the residue ',restyp(iss(i)),i,
150 & ' can form a disulfide bridge?!!!'
154 C Read preformed bridges.
156 read (inp,*) nss,(ihpb(i),jhpb(i),i=1,nss)
157 write (iout,*) 'nss=',nss,' ihpb,jhpb: ',(ihpb(i),jhpb(i),i=1,nss)
160 C Check if the residues involved in bridges are in the specified list of
164 if (ihpb(i).eq.ihpb(j).or.ihpb(i).eq.jhpb(j)
165 & .or.jhpb(i).eq.ihpb(j).or.jhpb(i).eq.jhpb(j)) then
166 write (iout,'(a,i3,a)') 'Disulfide pair',i,
167 & ' contains residues present in other pairs.'
168 write (*,'(a,i3,a)') 'Disulfide pair',i,
169 & ' contains residues present in other pairs.'
174 if (ihpb(i).eq.iss(j)) goto 10
176 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
179 if (jhpb(i).eq.iss(j)) goto 20
181 write (iout,'(a,i3,a)') 'Pair',i,' contains unknown cystine.'
194 c------------------------------------------------------------------------------
195 subroutine store_molinfo(molnum)
196 implicit real*8 (a-h,o-z)
198 include 'DIMENSIONS.ZSCOPT'
199 include "COMMON.ALLPROT"
200 include 'COMMON.CHAIN'
201 include 'COMMON.SBRIDGE'
203 include "COMMON.INTERACT"
204 include "COMMON.LOCAL"
205 include "COMMON.IOUNITS"
209 iatsc_s_zs(molnum)=iatsc_s
210 iatsc_e_zs(molnum)=iatsc_e
211 iatel_s_zs(molnum)=iatel_s
212 iatel_e_zs(molnum)=iatel_e
213 iturn3_start_zs(molnum)=iturn3_start
214 iturn3_end_zs(molnum)=iturn3_end
215 iturn4_start_zs(molnum)=iturn4_start
216 iturn4_end_zs(molnum)=iturn4_end
217 iatscp_s_zs(molnum)=iatscp_s
218 iatscp_e_zs(molnum)=iatscp_e
219 loc_start_zs(molnum)=loc_start
220 loc_end_zs(molnum)=loc_end
221 ithet_start_zs(molnum)=ithet_start
222 ithet_end_zs(molnum)=ithet_end
223 iphi_start_zs(molnum)=iphi_start
224 iphi_end_zs(molnum)=iphi_end
225 itau_start_zs(molnum)=itau_start
226 itau_end_zs(molnum)=itau_end
229 ntheta_zs(molnum)=ntheta
230 nside_zs(molnum)=nside
232 ialph_zs(i,1,molnum)=ialph(i,1)
233 ialph_zs(i,2,molnum)=ialph(i,2)
236 nint_gr_zs(i,molnum)=nint_gr(i)
237 nscp_gr_zs(i,molnum)=nscp_gr(i)
239 istart_zs(i,j,molnum)=istart(i,j)
240 iend_zs(i,j,molnum)=iend(i,j)
242 itype_zs(i,molnum)=itype(i)
243 itel_zs(i,molnum)=itel(i)
244 ielstart_zs(i,molnum)=ielstart(i)
245 ielend_zs(i,molnum)=ielend(i)
246 c write (iout,*) "i",i," nscp_gr",nscp_gr(i),
247 c & " iscp",(iscpstart(i,j),iscpend(i,j),j=1,nscp_gr(i))
249 iscpstart_zs(i,j,molnum)=iscpstart(i,j)
250 iscpend_zs(i,j,molnum)=iscpend(i,j)
255 c nfree_zs(molnum)=nfree
257 c iss_zs(i,molnum)=iss(i)
260 c ihpb_zs(i,molnum)=ihpb(i)
261 c jhpb_zs(i,molnum)=jhpb(i)
262 c dhpb_zs(i,molnum)=dhpb(i)
263 c forcon_zs(i,molnum)=forcon(i)
265 link_start_zs(molnum)=link_start
266 link_end_zs(molnum)=link_end
269 c------------------------------------------------------------------------------
270 subroutine restore_molinfo(molnum)
271 implicit real*8 (a-h,o-z)
273 include 'DIMENSIONS.ZSCOPT'
274 include "COMMON.ALLPROT"
275 include "COMMON.SBRIDGE"
276 include "COMMON.CHAIN"
278 include "COMMON.INTERACT"
279 include "COMMON.TORCNSTR"
280 include "COMMON.LOCAL"
285 iatsc_s=iatsc_s_zs(molnum)
286 iatsc_e=iatsc_e_zs(molnum)
287 iatel_s=iatel_s_zs(molnum)
288 iatel_e=iatel_e_zs(molnum)
289 iturn3_start=iturn3_start_zs(molnum)
290 iturn3_end=iturn3_end_zs(molnum)
291 iturn4_start=iturn4_start_zs(molnum)
292 iturn4_end=iturn4_end_zs(molnum)
293 iatscp_s=iatscp_s_zs(molnum)
294 iatscp_e=iatscp_e_zs(molnum)
295 ithet_start=ithet_start_zs(molnum)
296 ithet_end=ithet_end_zs(molnum)
297 iphi_start=iphi_start_zs(molnum)
298 iphi_end=iphi_end_zs(molnum)
299 itau_start=itau_start_zs(molnum)
300 itau_end=itau_end_zs(molnum)
301 loc_start=loc_start_zs(molnum)
302 loc_end=loc_end_zs(molnum)
305 ntheta=ntheta_zs(molnum)
306 nside=nside_zs(molnum)
308 ialph(i,1)=ialph_zs(i,1,molnum)
309 ialph(i,2)=ialph_zs(i,2,molnum)
312 nint_gr(i)=nint_gr_zs(i,molnum)
313 nscp_gr(i)=nscp_gr_zs(i,molnum)
315 istart(i,j)=istart_zs(i,j,molnum)
316 iend(i,j)=iend_zs(i,j,molnum)
318 itype(i)=itype_zs(i,molnum)
319 itel(i)=itel_zs(i,molnum)
320 ielstart(i)=ielstart_zs(i,molnum)
321 ielend(i)=ielend_zs(i,molnum)
323 iscpstart(i,j)=iscpstart_zs(i,j,molnum)
324 iscpend(i,j)=iscpend_zs(i,j,molnum)
329 c nfree=nfree_zs(molnum)
331 c iss(i)=iss_zs(i,molnum)
334 c ihpb(i)=ihpb_zs(i,molnum)
335 c jhpb(i)=jhpb_zs(i,molnum)
336 c dhpb(i)=dhpb_zs(i,molnum)
337 c forcon(i)=forcon_zs(i,molnum)
339 link_start=link_start_zs(molnum)
340 link_end=link_end_zs(molnum)
343 c------------------------------------------------------------------------------
344 subroutine read_angles(kanal,iscor,energ,iprot,*)
345 implicit real*8 (a-h,o-z)
347 include 'DIMENSIONS.ZSCOPT'
348 include 'COMMON.INTERACT'
349 include 'COMMON.SBRIDGE'
352 include 'COMMON.CHAIN'
353 include 'COMMON.IOUNITS'
355 read(kanal,'(a80)',end=10,err=10) lineh
356 read(lineh(:5),*,err=8) ic
357 read(lineh(6:),*,err=8) energ
360 print *,'error, assuming e=1d10',lineh
364 read(lineh(18:),*,end=10,err=10) nss
366 read (lineh(20:),*,end=10,err=10)
367 & (IHPB(I),JHPB(I),I=1,NSS),iscor
369 read (lineh(20:),*,end=10,err=10) (IHPB(I),JHPB(I),I=1,8)
370 read (kanal,*,end=10,err=10) (IHPB(I),JHPB(I),
373 c print *,"energy",energ," iscor",iscor
374 read (kanal,*,err=10,end=10) (theta(i),i=3,nres)
375 read (kanal,*,err=10,end=10) (phi(i),i=4,nres)
376 read (kanal,*,err=10,end=10) (alph(i),i=2,nres-1)
377 read (kanal,*,err=10,end=10) (omeg(i),i=2,nres-1)
379 theta(i)=deg2rad*theta(i)
380 phi(i)=deg2rad*phi(i)
381 alph(i)=deg2rad*alph(i)
382 omeg(i)=deg2rad*omeg(i)