PROGRAM splitpcd c Splits PDB file into separate molecules + waters for XPLOR for PCD c Separate substrates (551-560) and sulfates (561-569) as well c Makes sure ILE has CD but not CD1 atom labels c Sets OCC=0 for 368-370 and OCC=1 for rest CHARACTER*76 line, l(6,6,4000) INTEGER n(6,6) DO i = 1,6 DO j = 1,6 n(i,j) = 0 endDO endDO c Handle files WRITE (6, 1000) ' Enter input file name:' 1000 FORMAT (a) READ (5, 1000) line OPEN (unit=1, file=line, form='FORMATTED', status='OLD') DO WHILE (.TRUE.) 5 READ (1, 1000, end=9) line IF (line(1:4) .NE. 'ATOM' .AND. line(1:6) .NE. 'HETATM') goto 5 IF (line(14:20) .EQ. 'CD1 ILE') line(16:16) = ' ' READ (line(55:60), 2001) occ 2001 FORMAT (f6.2) READ (line(23:26), 1001) nres 1001 FORMAT (i4) IF (nres .LT. 300) THEN line(74:76) = 'ALP' occ = 1.0 i = 1 ELSE IF (nres .LT. 540) THEN line(74:76) = 'BET' IF (nres .GE. 368 .AND. nres .LE. 370) THEN occ = 0.0 ELSE occ = 1.0 endIF i = 2 ELSE IF (nres .LT. 560) THEN line(74:76) = 'INH' occ = 1.0 i = 3 ELSE IF (nres .LT. 570) THEN line(74:76) = 'SUL' occ = 1.0 i = 4 ELSE IF (nres .LT. 601) THEN line(74:76) = 'FE ' occ = 1.0 i = 5 ELSE line(74:76) = 'WAT' line(14:21) = 'OH2 TIP3' occ = 1.0 i = 6 endIF WRITE (line(55:60), 2001) occ IF (line(22:22) .EQ. 'A') THEN j = 1 line(73:73) = 'A' ELSE IF (line(22:22) .EQ. 'B') THEN j = 2 line(73:73) = 'B' ELSE IF (line(22:22) .EQ. 'C') THEN j = 3 line(73:73) = 'C' ELSE IF (line(22:22) .EQ. 'D') THEN j = 4 line(73:73) = 'D' ELSE IF (line(22:22) .EQ. 'E') THEN j = 5 line(73:73) = 'E' ELSE IF (line(22:22) .EQ. 'F') THEN j = 6 line(73:73) = 'F' ELSE IF (line(73:73) .EQ. 'A') THEN j = 1 ELSE IF (line(73:73) .EQ. 'B') THEN j = 2 ELSE IF (line(73:73) .EQ. 'C') THEN j = 3 ELSE IF (line(73:73) .EQ. 'D') THEN j = 4 ELSE IF (line(73:73) .EQ. 'E') THEN j = 5 ELSE IF (line(73:73) .EQ. 'F') THEN j = 6 ELSE goto 5 endIF line(22:22) = ' ' n(j,i) = n(j,i) + 1 WRITE (line(7:11), 1002) n(j,i) 1002 FORMAT (i5) l(j,i,n(j,i)) = line endDO 9 CLOSE (unit=1) WRITE (6, 1003) n 1003 FORMAT (6i8) c Write each file IF (n(1,1) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='AALP.pdb') DO m = 1, n(1,1) WRITE (1, 1000) l(1,1,m) endDO CLOSE (unit=1) endIF IF (n(1,2) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='ABET.pdb') DO m = 1, n(1,2) WRITE (1, 1000) l(1,2,m) endDO CLOSE (unit=1) endIF IF (n(1,3) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='AINH.pdb') DO m = 1, n(1,3) WRITE (1, 1000) l(1,3,m) endDO CLOSE (unit=1) endIF IF (n(1,4) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='ASUL.pdb') DO m = 1, n(1,4) WRITE (1, 1000) l(1,4,m) endDO CLOSE (unit=1) endIF IF (n(1,5) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='AFE.pdb') DO m = 1, n(1,5) WRITE (1, 1000) l(1,5,m) endDO CLOSE (unit=1) endIF IF (n(1,6) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='AWAT.pdb') DO m = 1, n(1,6) WRITE (1, 1000) l(1,6,m) endDO CLOSE (unit=1) endIF IF (n(2,1) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='BALP.pdb') DO m = 1, n(2,1) WRITE (1, 1000) l(2,1,m) endDO CLOSE (unit=1) endIF IF (n(2,2) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='BBET.pdb') DO m = 1, n(2,2) WRITE (1, 1000) l(2,2,m) endDO CLOSE (unit=1) endIF IF (n(2,3) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='BINH.pdb') DO m = 1, n(2,3) WRITE (1, 1000) l(2,3,m) endDO CLOSE (unit=1) endIF IF (n(2,4) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='BSUL.pdb') DO m = 1, n(2,4) WRITE (1, 1000) l(2,4,m) endDO CLOSE (unit=1) endIF IF (n(2,5) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='BFE.pdb') DO m = 1, n(2,5) WRITE (1, 1000) l(2,5,m) endDO CLOSE (unit=1) endIF IF (n(2,6) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='BWAT.pdb') DO m = 1, n(2,6) WRITE (1, 1000) l(2,6,m) endDO CLOSE (unit=1) endIF IF (n(3,1) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='CALP.pdb') DO m = 1, n(3,1) WRITE (1, 1000) l(3,1,m) endDO CLOSE (unit=1) endIF IF (n(3,2) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='CBET.pdb') DO m = 1, n(3,2) WRITE (1, 1000) l(3,2,m) endDO CLOSE (unit=1) endIF IF (n(3,3) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='CINH.pdb') DO m = 1, n(3,3) WRITE (1, 1000) l(3,3,m) endDO CLOSE (unit=1) endIF IF (n(3,4) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='CSUL.pdb') DO m = 1, n(3,4) WRITE (1, 1000) l(3,4,m) endDO CLOSE (unit=1) endIF IF (n(3,5) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='CFE.pdb') DO m = 1, n(3,5) WRITE (1, 1000) l(3,5,m) endDO CLOSE (unit=1) endIF IF (n(3,6) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='CWAT.pdb') DO m = 1, n(3,6) WRITE (1, 1000) l(3,6,m) endDO CLOSE (unit=1) endIF IF (n(4,1) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='DALP.pdb') DO m = 1, n(4,1) WRITE (1, 1000) l(4,1,m) endDO CLOSE (unit=1) endIF IF (n(4,2) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='DBET.pdb') DO m = 1, n(4,2) WRITE (1, 1000) l(4,2,m) endDO CLOSE (unit=1) endIF IF (n(4,3) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='DINH.pdb') DO m = 1, n(4,3) WRITE (1, 1000) l(4,3,m) endDO CLOSE (unit=1) endIF IF (n(4,4) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='DSUL.pdb') DO m = 1, n(4,4) WRITE (1, 1000) l(4,4,m) endDO CLOSE (unit=1) endIF IF (n(4,5) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='DFE.pdb') DO m = 1, n(4,5) WRITE (1, 1000) l(4,5,m) endDO CLOSE (unit=1) endIF IF (n(4,6) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='DWAT.pdb') DO m = 1, n(4,6) WRITE (1, 1000) l(4,6,m) endDO CLOSE (unit=1) endIF IF (n(5,1) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='EALP.pdb') DO m = 1, n(5,1) WRITE (1, 1000) l(5,1,m) endDO CLOSE (unit=1) endIF IF (n(5,2) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='EBET.pdb') DO m = 1, n(5,2) WRITE (1, 1000) l(5,2,m) endDO CLOSE (unit=1) endIF IF (n(5,3) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='EINH.pdb') DO m = 1, n(5,3) WRITE (1, 1000) l(5,3,m) endDO CLOSE (unit=1) endIF IF (n(5,4) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='ESUL.pdb') DO m = 1, n(5,4) WRITE (1, 1000) l(5,4,m) endDO CLOSE (unit=1) endIF IF (n(5,5) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='EFE.pdb') DO m = 1, n(5,5) WRITE (1, 1000) l(5,5,m) endDO CLOSE (unit=1) endIF IF (n(5,6) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='EWAT.pdb') DO m = 1, n(5,6) WRITE (1, 1000) l(5,6,m) endDO CLOSE (unit=1) endIF IF (n(6,1) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='FALP.pdb') DO m = 1, n(6,1) WRITE (1, 1000) l(6,1,m) endDO CLOSE (unit=1) endIF IF (n(6,2) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='FBET.pdb') DO m = 1, n(6,2) WRITE (1, 1000) l(6,2,m) endDO CLOSE (unit=1) endIF IF (n(6,3) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='FINH.pdb') DO m = 1, n(6,3) WRITE (1, 1000) l(6,3,m) endDO CLOSE (unit=1) endIF IF (n(6,4) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='FSUL.pdb') DO m = 1, n(6,4) WRITE (1, 1000) l(6,4,m) endDO CLOSE (unit=1) endIF IF (n(6,5) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='FFE.pdb') DO m = 1, n(6,5) WRITE (1, 1000) l(6,5,m) endDO CLOSE (unit=1) endIF IF (n(6,6) .NE. 0) THEN OPEN (unit=1, form='FORMATTED', status='UNKNOWN', file='FWAT.pdb') DO m = 1, n(6,6) WRITE (1, 1000) l(6,6,m) endDO CLOSE (unit=1) endIF end