CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C CLUSPAC: Software for Mixture-Model Clustering C C C C COPYRIGHT (C) 1991, 1992, 1993 STANLEY L. SCLOVE C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C ALAk7DT CLUSPAC C C VERSION 1.0 5-JAN-94 C C C C PROGRAMMED BY: C C C C Prof. Stanley L. Sclove, Ph.D. 312/996-2681 C C Information & Decision Sciences Dept. M/C 294 C C University of Illinois at Chicago C C 601 So. Morgan Street C C Chicago, IL 60607-7124 C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C CLUSPAC programs implement clustering algorithms which are C C derived under the assumption of Gaussian class-conditional C C distributions. The ISDT* programs in CLUSPAC are based on C C the so-called "classification" likelihood. The MIX* programs C C are based on the mixture-model likelihood. Program C C MIXPDT in CLUSPAC is one of the mixture-model programs for C C clustering multivariate data. (For univariate data the C C "MIX1" programs may be used.) C C C C MIXPDT allows different covariance matrices; MIXPCM C C assumes a common covariance matrix across distributions. C C C C AMNOPDT, for clustering dihedral angles of molecules C C in polypeptide chains, is adapted from MIXPDT. C C C C FISIDT, for clustering (phi,psi), is adapted from C C AMNOPDT, which is for clustering (phi,psi,chi1). C C C C Input: C C ----- C C Number of clusters (K), initial values of means, prior C C probabilities, and covariance matrices. If desired, C C program ISDTPCM.CLUSPAC can be used to obtain these initial C C values. Use program MIXPDTA.CLUSPAC to try a range of C C numbers of clusters (values of K), with automatic setting C C of initial values. C C C C Program restrictions (can be modified): C C -------------------------------------- C C N, sample size, at most 9999; C C IP, number of variables, at most 20; C C K, number of clusters, at most 29; C C MAXITER, maximum number of iterations, 99 C C C C C C Subroutines called: C C MATEQ, which calls MATDT C C C C IV is a work array for subroutine MATEQ. C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C CONTROL CARDS: C C C C DATASET TITLE C C N, IN FORMAT (2X,I4) C C IP, IN FORMAT (3X,I2) C C DATFMT, IN FORMAT (18A4), E.G., (4F4.1) C C "DATFMT" WILL ALSO BE USED FOR OUTPUT, SO ALLOW AT LEAST C C ONE BLANK AT THE BEGINNING FOR CARRIAGE CONTROL. C C DATA, ONE CASE AT A TIME, IN FORMAT SPECIFIED BY DATFMT C C K, NUMBER OF CLUSTERS, IN FORMAT (2X,I2) C C MEANFT, in format (18A4) C C K INITIAL MEANS, IN FORMAT SPECIFIED BY MEANFT C C C C K INITIAL VALUES OF MIXING PROBABILITIES, C C IN FORMAT (5X,F3.2). C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C DIMENSION X(9999,20),SUM(29,20),SD(29,3) C DIMENSION AA(9999,3) C DIMENSION F(9999,29),PP(29,9999),FMAX(9999),DSQMIN(9999) C The matrix F is an N x K matrix of values of p.d.f.'s. DIMENSION ICLUS(9999),ICLSOL(9999) DIMENSION DENOM(9999),XMXPR(9999) DIMENSION DSQ(9999,29) DIMENSION TITLE(18) C DIMENSION NG(29),XBAR(29,20),XBAROLD(29,20),SEED(29,20) DIMENSION DATFMT(18) DIMENSION MEANFT(18) C DIMENSION COVFMT(18) DIMENSION SSD(29,20,20),SIGMA(29,20,20) DIMENSION WGSS(20,20) DIMENSION VARHAT(20,20) DIMENSION XMIN(20),XMAX(20) DIMENSION IV(20,20) DIMENSION P(20,20),PREC(29,20,20) DIMENSION XIDET(29),XLGDET(29),TRUDET(29) DIMENSION PR(29) C DOUBLE PRECISION SUM,SUMPXF DOUBLE PRECISION WGSS,SSD DOUBLE PRECISION VARHAT DOUBLE PRECISION P DOUBLE PRECISION DET,TRUDET DOUBLE PRECISION DSQ DOUBLE PRECISION XBAR,XBAROLD DOUBLE PRECISION DEVV,DEVW DOUBLE PRECISION F,BOTTOM C C C C FLOW OF PROGRAM: C C C READ DATA AND INITIAL PARAMETER ESTIMATES. C INVERT COVARIANCE MATRICES. C PRINT INITIAL PARAMETER ESTIMATES. C C ITERATION: C COMPUTE ESTIMATED VALUES OF PROBABILITY DENSITY FUNCTIONS. C COMPUTE LIKELIHOOD AND VALUES OF MODEL-SELECTION CRITERIA. C COMPUTE CLUSTER-MEMBERSHIP PROBABILITIES. C UPDATE PARAMETER ESTIMATES (INCLUDING C INVERSE COVARIANCE MATRICES). C CLUSTER BY MAXIMUM PROBABILITY OF CLUSTER MEMBERSHIP. C IF CLUSTERING HASN'T CHANGED, STOP AND PRINT RESULTS. C OTHERWISE DO ANOTHER ITERATION (UNLESS TOO MANY HAVE C ALREADY BEEN DONE). C C C DATA PI/3.141593/ C READ (5,36000) TITLE C C WRITE PROGRAM INFORMATION. WRITE (6,10000) WRITE (6,40000) TITLE C C READ SAMPLE SIZE, N. READ (5,12000) N XN = N WRITE (6,15000) N C READ NUMBER OF VARIABLES, IP. READ (5,54000) IP WRITE (6,13000) IP C C READ DATA FORMAT. READ (5,36000) DATFMT C C READ DATA. DO 500 I = 1,N C READ (5,DATFMT) ( AA(I,KV),KV=1,3 ), ( X(I,JV),JV=1,IP ) C was: READ (5,DATFMT) (X(I,JV), JV = 1,IP) C IF (I .EQ. 1) GO TO 100 GO TO 300 100 CONTINUE C COMPUTE MINIMA AND MAXIMA: DO 200 JV = 1,IP XMAX(JV) = X(1,JV) XMIN(JV) = X(1,JV) 200 CONTINUE 300 CONTINUE DO 400 JV = 1,IP IF (X(I,JV) .LT. XMIN(JV)) XMIN(JV)=X(I,JV) IF (X(I,JV) .GT. XMAX(JV)) XMAX(JV)=X(I,JV) 400 CONTINUE 500 CONTINUE C WRITE MINIMA AND MAXIMA: WRITE (6,64000) (XMIN(JV),JV=1,IP) WRITE (6,66000) (XMAX(JV),JV=1,IP) C C READ K, NUMBER OF CLUSTERS. READ (5,11000) K WRITE (6,26000) K C C READ INITIAL MEANS C READ INPUT FORMAT FOR MEANS: READ (5,36000) MEANFT DO 600 IC=1,K READ (5,MEANFT) (XBAR(IC,JV), JV=1,IP) C 600 CONTINUE C Store initial means into SEED: DO 602 IC = 1,K DO 602 IVAR=1,IP SEED(IC,IVAR) = XBAR(IC,IVAR) 602 CONTINUE C C READ INITIAL VALUES OF MIXING PROBABILITIES: DO 650 IC=1,K READ (5,25000) PR(IC) C 650 CONTINUE C C C SET INITIAL VALUES OF COVARIANCE MATRICES: C C READ(5,36000) COVFMT DO 660 IC = 1,K DO 660 JV = 1,IP DO 660 JW = 1,IP SIGMA(IC,JV,JW) = 0.0 660 CONTINUE DO 665 IC = 1,K DO 665 JV = 1,IP SIGMA(IC,JV,JV) = 300.00 665 CONTINUE C C WRITE(6,22000) MAXITER = 99 ITER = 1 C 700 CONTINUE C C Store old means: DO 810 IC = 1,K DO 810 JV = 1,IP XBAROLD(IC,JV) = XBAR(IC,JV) 810 CONTINUE C C WRITE (6,32000) ITER C WRITE CURRENT ESTIMATES OF PARAMETERS: WRITE (6,23000) C WRITE CURRENT ESTIMATES OF MEAN VECTORS:-- WRITE (6,20000) DO 710 IC = 1,K WRITE (6,33000) ( XBAR(IC,JV), JV=1,IP ) 710 CONTINUE WRITE (6,35000) (PR(IC), IC = 1,K) C WRITE CURRENT ESTIMATES OF COVARIANCE MATRICES:- IF (K .GE. 4) GO TO 671 DO 670 IC = 1,K WRITE(6,42500) IC DO 670 JV = 1,IP WRITE (6,48000) (SIGMA(IC,JV,JW),JW=1,IP) 670 CONTINUE C 671 CONTINUE C C Copy SIGMA into VARHAT for input to Subroutine MATEQ: DO 680 IC = 1,K DO 675 JV = 1,IP DO 675 JW = 1,IP VARHAT(JV,JW) = SIGMA(IC,JV,JW) 675 CONTINUE C C CALL SUBROUTINE TO COMPUTE INVERSE COVARIANCE MATRIX: C SET PARAMETERS OF SUBROUTINE CALL: IDET = 1 NRS1 = 0 C C CALL MATEQ(VARHAT,IP,20,JFLG,DET,IDET,IV,NRS1,P,20) C ON RETURN, P CONTAINS THE INVERSE MATRIX. C C C GENERAL FORM OF CALL IS: C CALL MATEQ(A,M,N,JFLG,DET,IDET,IV,NRS1,P,LL) C SEE SUBROUTINE LISTING FOR FULLER EXPLANATION. C DET(VARHAT) = DET*10.0**IDET C C ON RETURN, P CONTAINS THE INVERSE MATRIX. C C DO 676 JV = 1,IP DO 676 JW = 1,IP PREC(IC,JV,JW) = P(JV,JW) 676 CONTINUE C IF(DET .LE. 0.0) IDET = 0 XIDET(IC) = IDET IF(DET .LE. 0.0) DET=VARHAT(1,1)*VARHAT(2,2)*VARHAT(3,3) IF (DET .LE. 0.0) DET = -DET XLGDET(IC) = DLOG(DET) + XIDET(IC)*ALOG(10.0) TRUDET(IC) = DET*(10.0**IDET) 680 CONTINUE C C C C C COMMENCE COMPUTATION OF F(I,IC), I=1,...,N, IC=1,...,K: C C COMPUTE MAHALANOBIS D-SQUARE BETWEEN THE I-TH OBSERVATION AND C THE L-TH MEAN, L=1,2,...,K, I=1,2,...,N:-- C DO 1200 I = 1,N C DO 1000 L=1,K DSQ(I,L) = 0.0 DO 1310 JV=1,IP DEVV = XBAR(L,JV) - X(I,JV) DO 1310 JW=1,IP DEVW = XBAR(L,JW) - X(I,JW) DSQ(I,L) = DSQ(I,L) + DEVV*PREC(L,JV,JW)*DEVW 1310 CONTINUE IF ( DSQ(I,L) .LT. 0.0 ) DSQ(I,L)=0.0 ZSQ = DSQ(I,L) C IF(TRUDET(L) .LE. 0.0) XTRUDET(L)=SIGMA(L,1,1)*SIGMA(L,2,2)*SIGMA(L,3,3) IF ( TRUDET(L) .LE. 0.0 ) TRUDET(L) = -TRUDET(L) C C IF D-SQ IS INORDINATELY LARGE, SET VALUE OF PDF TO ZERO C (IT IS EXTREMELY SMALL ANYWAY, AND THIS AVOIDS UNDERFLOW): IF ( ZSQ/2.0 .LE. 174.673 ) GO TO 1090 F(I, L) = 0.0 GO TO 1100 C 1090 CONTINUE F(I, L) = EXP(-ZSQ/2.0) BOTTOM = DSQRT( TRUDET(L) ) F(I, L) = F(I,L)/BOTTOM 1100 CONTINUE C 1000 CONTINUE 1200 CONTINUE C C COMPUTE LOG LIKELIHOOD AND VALUES OF MODEL-SELECTION CRITERIA: C SUMLNF = 0.0 DO 2200 I=1,N SUMPXF = 0.0 DO 2100 IC=1,K SUMPXF = SUMPXF + PR(IC)*F(I,IC) 2100 CONTINUE C IF ( SUMPXF .LE. 0.0 ) GO TO 2200 C SUMLNF = SUMLNF + DLOG(SUMPXF) 2200 CONTINUE C XMN2LL = -2.0*SUMLNF C WRITE (6,30000) XMN2LL C C C COMPUTE MODEL SELECTION CRITERIA C C PARAMETERS: C K MEAN VECTORS OF DIMENSION P AND K P-BY-P COVARIANCE MATRICES, C WHERE P IS THE NUMBER OF VARIABLES, AND K-1 INDEPENDENT MIXING C PROBABILITIES. NOPARM = K*IP + K*IP*(IP+1)/2 + (K-1) WRITE (6,72000) NOPARM AIC = XMN2LL + 2.0*NOPARM SCH = XMN2LL + ALOG(XN)*NOPARM WRITE (6,70000) AIC WRITE (6,71000) SCH C C C COMPUTE POSTERIOR PROBABILITIES OF GROUP MEMBERSHIP, C PP(IC,I), THE CONDITIONAL PROBABILITY OF POP'N IC, GIVEN X(I), C AS PR(IC)*F(I,IC)/DENOM(I): DO 1350 I = 1,N DENOM(I) = 0.0 DO 1350 IC=1,K DENOM(I) = DENOM(I) + PR(IC)*F(I,IC) 1350 CONTINUE DO 1400 I = 1,N DO 1400 IC=1,K IF ( DENOM(I) .GT. 0.0 ) GO TO 1410 PP(IC,I) = 0.0 GO TO 1400 1410 CONTINUE PP(IC,I)= PR(IC)*F(I,IC)/DENOM(I) 1400 CONTINUE C WRITE(6,76000) DO 1420 I = 1,4 WRITE(6,82000) ( PP(IC,I), IC = 1,K ) 1420 CONTINUE C C C UPDATE PARAMETER ESTIMATES: C C C UPDATE CLUSTER MIXING PROBABILITIES PR(IC):-- DO 3800 IC = 1,K PR(IC) = 0.0 DO 3800 I = 1,N PR(IC) = PR(IC) + PP(IC,I) 3800 CONTINUE DO 3900 IC = 1,K PR(IC) = PR(IC)/N 3900 CONTINUE DO 1750 IG = 1,K DO 1750 JV = 1,IP SUM(IG,JV) = 0.0 DO 1750 JW = 1,IP SSD(IG,JV,JW) = 0.0 1750 CONTINUE C C UPDATE MEANS:-- DO 1875 IC = 1,K DO 1875 JV = 1,IP DO 1875 I = 1,N SUM(IC,JV) = SUM(IC,JV) + PP(IC,I)*X(I,JV) 1875 CONTINUE DO 1900 IG = 1,K XMINOBS = 0.5 IF (N*PR(IG) .LT. XMINOBS) GO TO 2050 GO TO 2150 2050 WRITE (6,74000) IG, XMINOBS GO TO 4000 2150 CONTINUE DO 1900 JV = 1,IP XBAR(IG,JV) = SUM(IG,JV)/(N*PR(IG)) 1900 CONTINUE C C DO 3600 IC=1,K DO 3600 JV=1,IP DO 3600 JW=JV,IP DO 3600 I=1,N DEVV=X(I,JV)-XBAR(IC,JV) DEVW=X(I,JW)-XBAR(IC,JW) TERM=PP(IC,I)*DEVV*DEVW SSD(IC,JV,JW)=SSD(IC,JV,JW)+TERM 3600 CONTINUE C DO 3700 IC=1,K DO 3700 JV=2,IP DO 3700 JW=1,JV-1 SSD(IC,JV,JW)=SSD(IC,JW,JV) 3700 CONTINUE C DO 3710 IC=1,K DO 3710 JV=1,IP DO 3710 JW=1,IP SIGMA(IC,JV,JW)=SSD(IC,JW,JV)/(N*PR(IC)) 3710 CONTINUE C C POOL: C DO 1950 JV = 1,IP DO 1950 JW = 1,IP WGSS(JV,JW) = 0.0 1950 CONTINUE C DO 2300 JV = 1,IP DO 2300 JW = 1,IP DO 2300 IC = 1,K WGSS(JV,JW) = WGSS(JV,JW) + PR(IC)*SSD(IC,JV,JW) 2300 CONTINUE C COMPUTE VARHAT, MLE OF COMMON COVARIANCE MATRIX: DO 2400 JV = 1,IP DO 2400 JW = 1,IP VARHAT(JV,JW) = WGSS(JV,JW)/N 2400 CONTINUE C (END PARAMETER-ESTIMATE UPDATE SEQUENCE) C IF (ITER .EQ. 1) GO TO 900 C STORE OLD LABELS: DO 800 I = 1,N ICLSOL(I) = ICLUS(I) 800 CONTINUE C C 900 CONTINUE C C COMPUTE NEW LABELS BY MAX POSTERIOR PROBABILITY: DO 1600 I = 1,N XMXPR(I) = PP(1,I) ICLUS(I) = 1 DO 1600 IC = 2,K IF ( PP(IC,I) .GT. XMXPR(I) ) GO TO 1500 GO TO 1600 1500 XMXPR(I) = PP(IC,I) ICLUS(I) = IC 1600 CONTINUE C C IF (N .GE. 31) GO TO 250 WRITE (6,15500) C WRITE (6,16000) WRITE (6,18000) (I, ICLUS(I), I=1,N) 250 CONTINUE C C C IF (ITER .EQ. 1) GO TO 3000 DO 2900 I = 1,N IF (ICLUS(I) .EQ. ICLSOL(I)) GO TO 2900 C If any case changed clusters, another iteration will be done: GO TO 3000 2900 CONTINUE C If no case changed cluster, a test of convergence of C estimates of the means will be done: TOL = 0.5 DO 2901 IC = 1,K DO 2901 JV = 1,IP TEST = ABS( XBAR(IC,JV)-XBAROLD(IC,JV) ) IF ( TEST .LT. TOL ) GO TO 2901 C If any mean changed much, another iteration will be done: GO TO 3000 2901 CONTINUE C If no mean has changed much, stop iterating: GO TO 3300 C 3000 CONTINUE C Maximum number of iterations is set at beginning of program C (currently it is 99). IF (ITER.GE.MAXITER) GO TO 3100 ITER = ITER + 1 GO TO 700 3100 WRITE (6,68000) GO TO 3300 C C 3300 CONTINUE C C C COUNT NUMBERS IN CLUSTERS: DO 3310 IC = 1,K NG(IC) = 0 3310 CONTINUE C DO 3320 I = 1,N IC = ICLUS(I) NG(IC) = NG(IC) + 1 3320 CONTINUE C C C PRINT FINAL RESULTS C C WRITE (6,34000) (NG(IC),IC=1,K) WRITE (6,35000) (PR(IC),IC=1,K) C DO 2800 IC = 1,K WRITE (6,28000) IC, (XBAR(IC,JV),JV=1,IP) 2800 CONTINUE C C DO 2501 IC = 1,K WRITE(6,42500) IC C WRITE (6,28000) IC, (XBAR(IC,JV),JV=1,IP) C WRITE (6,42000) DO 2500 JV=1,IP WRITE (6,48000) (SIGMA(IC,JV,JW),JW=1,IP) 2500 CONTINUE C C Compute and print standard deviations: WRITE (6,48600) C SD(IC,1) = SQRT(SIGMA(IC, 1,1 )) SD(IC,2) = SQRT(SIGMA(IC, 2,2 )) C SD1 = SD(IC,1) SD2 = SD(IC,2) C WRITE (6,48500) SD1,SD2 C C C Compute correlation matrix: DO 2503 JV = 1,IP JVN1 = JV+1 DO 2503 JW = JVN1,IP SD1 = SQRT(SIGMA(IC,JV,JV)) SD2 = SQRT(SIGMA(IC,JW,JW)) SIGMA(IC,JV,JW) = SIGMA(IC,JV,JW)/(SD1*SD2) 2503 CONTINUE DO 2505 JV = 2,IP JVM1 = IP-1 DO 2505 JW = 1,JVM1 SIGMA(IC,JV,JW) = SIGMA(IC,JW,JV) 2505 CONTINUE DO 2506 JV = 1,IP SIGMA(IC,JV,JV) = 1.0 2506 CONTINUE C C Write correlation matrix: WRITE (6,48800) C WRITE (6,48700) SIGMA(IC, 1, 2) C C 2501 CONTINUE C WRITE (6,10000) WRITE (6,48955) WRITE (6,10000) WRITE (6,40000) TITLE WRITE (6,15000) N WRITE (6,30000) XMN2LL WRITE (6,48952) DO 2508 IC = 1,K C WRITE (6,48901) IC,NG(IC), SEED(IC,1),SEED(IC,2), 1XBAR(IC,1),XBAR(IC,2), SD(IC,1),SD(IC,2) C 2508 CONTINUE WRITE (6,49000) DO 2509 IC = 1,K WRITE (6,48900) IC, PR(IC),NG(IC),XBAR(IC,1),XBAR(IC,2), 1 SD(IC,1),SD(IC,2), 2SIGMA(IC,1,2) C 2509 CONTINUE C C IF (ITER .GE. MAXITER + 1 ) WRITE (6,68000) C DO 3525 I = 1,N FMAX(I) = 0.0 DSQMIN(I) = 10.0**10 DO 3525 IC = 1,K IF ( F(I,IC) .GT. FMAX(I) ) FMAX(I) = F(I,IC) IF ( DSQ(I,IC) .LT. DSQMIN(I) ) DSQMIN(I) = DSQ(I,IC) 3525 CONTINUE C WRITE (6,52000) WRITE (6,52100) C C C Seed points: C C B -139 +135 1 beta-poly(L-alanine) C P -80 +150 2 polyglycine II C T -95 -10 3 C R -57 -47 4 right alpha-helix C L +57 +47 5 left alpha-helix C B2 -180 -180 1 C B3 +180 +180 1 C C Cluster 6, with a center near (-180,-180), will be C moved to near (-180,+180): DO 3510 I = 1,N IF(ICLUS(I) .EQ. 6 ) X(I,1) = X(I,1) IF(ICLUS(I) .EQ. 6 ) X(I,2) = 360 + X(I,2) C Cluster 7, with a center near (+180,+180), will be C moved to near (-180,+180): IF(ICLUS(I) .EQ. 7 ) X(I,1) = X(I,1)-360 IF(ICLUS(I) .EQ. 7 ) X(I,2) = X(I,2) 3510 CONTINUE C DO 3500 IC = 1,K WRITE (6,53000) IC DO 3500 I = 1,N C C Cases with min D-sq > 5.99 (upper 5% point) will be deleted C in next run: IF( DSQMIN(I) .GT. 5.99) GO TO 3505 C IF(ICLUS(I) .EQ. IC) WRITE (6,50000) I,ICLUS(I), X ( AA(I,KV),KV=1,3 ), X( X(I,JV), JV = 1,IP ), PP(IC,I), F(I,IC), FMAX(I),DSQMIN(I) 3505 CONTINUE C 3500 CONTINUE C WRITE (6,84000) C IF (ITER .GE. MAXITER + 1 ) WRITE (6,68000) C 4000 STOP C C 10000 FORMAT('1',//,' ..........................................'// X1X, ' Program ALAk7DT CLUSPAC ' / X1X, ' MIXTURE MODEL CLUSTERING FOR AMINO ACIDS',/, X1X, ' MODEL WITH VARYING COVARIANCE MATRICES '// X' Developed and programmed by: '/ X' Prof. Stanley L. Sclove, Ph.D. '/ X' Information & Decision Sciences Dept. M/C 294 '/ X' College of Business Administration '/ X' University of Illinois at Chicago '/ X' 601 South Morgan Street '// X' Chicago, IL 60607-7124 '// X' 312/996-2681 '// X' FISIDT CLUSPAC (from AMNOPDT CLUSPAC) '/ X' ALAk7dt CLUSPAC Version 1.0 5-Jan-94 '/ X' COPYRIGHT (C) 1991-1993 STANLEY L. SCLOVE', X' ALL RIGHTS RESERVED.'//) 11000 FORMAT(2X,I2) 12000 FORMAT(2X,I4) 13000 FORMAT(1X,'Number of variables used ...................',I3 ) 15000 FORMAT(1X,'Number of observations (sample size), n ...', I4 ) 15500 FORMAT(/ 1X,'CLUSTERING:' ) 16000 FORMAT(/,1X,'CASES AND LABELS:--' ) 18000 FORMAT(15(I5,I3)) 20000 FORMAT(/1X,' Means: '/) 22000 FORMAT(' FIRST ITERATION USES THE INITIAL PARAMETER ESTIMATES', X' PROVIDED BY THE USER.' ) 25000 FORMAT(5X, F3.2) 23000 FORMAT(/1X, 'CURRENT ESTIMATES OF PARAMETERS: ' ) 26000 FORMAT('1',/, 1X,'K = ',I2,' CLUSTERS'/ ) 28000 FORMAT(1X,'Mean vector for Cluster ',I2,': ',(8F12.0/)) 30000 FORMAT( 1X,' MINUS 2 LOG LIKELIHOOD = ', F12.0/) 32000 FORMAT(/, 1X,'ITERATION ', I2,/ ) 34000 FORMAT(/,1X,'Frequencies:',1X,9(I10,3X)/) 35000 FORMAT(/,1X,' Mixing probabilities: ', 3X,17(F5.3,1X)/) 33000 FORMAT( 1X, 2F7.0) 36000 FORMAT(18A4) 40000 FORMAT(//,1X,18A4//) 42000 FORMAT(/, ' Covariance matrix of phi, psi: ') 42500 FORMAT( ' Distribution ',I3 ) 48000 FORMAT(1X,8F12.1/) 48500 FORMAT(1X,2F6.1) 48600 FORMAT(1X,'Standard deviations of phi, psi: ') 48700 FORMAT(1X, F13.2/) 48800 FORMAT(1X,'Correlation between phi and psi: ') C C WRITE (6,48900) IC, PR(IC),NG(IC),XBAR(IC,1),XBAR(IC,2), C 1 SD(IC,1),SD(IC,2), C 2SIGMA(IC,1,2) 48900 FORMAT(1X,I2,1X,F5.3,I5,2F7.0,1X,2F5.0,1X, F5.1) C 48901 FORMAT(1X,I2,1X, I4, 2F6.0,3X,2F6.0,3X,2F6.1) C 48955 FORMAT(1X,'SUMMARY OF RESULTS '//) 48952 FORMAT(' Clus- Seeds',17X,'Final Means Std. Devs.'/ A' ter Freq phi psi phi psi phi psi '/ B' ------------------------------------------------------ ') C 49000 FORMAT(1X,'SUMMARY OF RESULTS'/,40X,' Correlation '/ 1' Clus- Means Std.Devs. between ,'/ 2' ter Prob Freq phi psi phi psi phi and psi '/ 5' ------------------------------------------------ ' ) C C SUMMARY OF RESULTS Correlations C Clus- Means Std. Devs. phi, phi, psi, C ter Prob Freq phi psi chi1 phi psi chi1 psi chi1 chi1 C --- ---- ---- ------------------- ------------- --------------- C C IF(ICLUS(I) .EQ. IC) WRITE (6,50000) I,ICLUS(I), C X ( AA(I,KV),KV=1,3 ), C X( X(I,JV), JV = 1,IP ), PP(IC,I), F(I,IC), FMAX(I),DSQMIN(I) C 50000 FORMAT(1X,I4,1X,I2, 1X, 3A1, 2F7.0, F7.2,2E11.2, F7.1) C 52000 FORMAT( 1X,'CASE, LABEL / DATA' ) 52100 FORMAT(/, 1X, 30X, 'F(I) MAX F(I|C) min DSQ(I,C) '/) 53000 FORMAT( 1X,' CLUSTER ', I2 ) 54000 FORMAT(3X,I2) 58000 FORMAT(/1X,'CONVERGENCE: NO CASE CHANGED CLUSTERS AFTER ', X'ITERATION ',I2,'. RESULTS ARE PRINTED BELOW.'//) 60000 FORMAT(/,1X,'JFLG = ',I2,'. IF JFLG=0, COMPUTATION OF DET', X' WENT WELL; OTHERWISE, THERE WAS TROUBLE OR MATRIX WAS ', X'ILL-CONDITIONED.'//) 62000 FORMAT(/1X,'DET = ',F13.1,' IDET = ',I3,5X, X'ACTUAL DET. = DET*10**IDET',//) 64000 FORMAT(/1X,'Minimum of each variable: ',1X,2F9.1) 66000 FORMAT(/1X,'Maximum of each variable: ',1X,2F9.1) 68000 FORMAT(1X,'PROGRAM HAS NOT CONVERGED IN 99 ITERATIONS. STOP') 70000 FORMAT(1X,' AIC = ', F15.4 ) 71000 FORMAT(1X,'SCHWARZ CRITERION = ', F15.4 ) 72000 FORMAT( 1X,'NUMBER OF PARAMETERS = ',I4 ) 74000 FORMAT(1X,'EXPECTED NUMBER OF OBSERVATIONS IN CLUSTER ',I3, X' IS LESS THAN ',F7.2,'. STOP.'/) 76000 FORMAT(//' POSTERIOR PROBS OF GROUP MEMBERSHIP FOR 1ST 4 CASES:') 82000 FORMAT(1X,29F5.2) 84000 FORMAT(1X,'PROGRAM ENDED NORMALLY.') END C C SUBROUTINE MATEQ(A,M,N,JFLG,DET,IDET,IV,NRS1,P,LL) C SUBROUTINE MATEQ IS DMATEQ FROM THE UICC SUBROUTINE LIBRARY. C PAGE 1 C C SUBROUTINE DMATEQ C ***************** C THIS ROUTINE WILL SOLVE A REAL*8 SYSTEM OF LINEAR EQUATIONS,COMPUTE C THE DETERMINANT, WITHOUT UNDERFLOW OR OVERFLOW, OF A REAL*8 MATRIX, C AND/OR INVERT A REAL*8 MATRIX. C CALLING SEQUENCE: C CALL DMATEQ(A,N,IA,JFLG,DET,IDET,IV,NRS,P,IP) WHERE; C A (INPUT) - IS THE REAL*8 MATRIX ON WHICH THE ROUTINE IS C TO WORK. IN THE PROCESS OF COMPUTATION THE C CONTENTS OF THIS MATRIX ARE DESTROYED. C N (INPUT) - IS AN INTEGER*4 VARIABLE WHICH SPECIFIES THE C ORDER OF THE A MATRIX. C IA (INPUT) - IS AN INTEGER*4 VARIABLE WHICH SPECIFIES THE C ACTUAL ROW DIMENSION OF A AS DIMENSIONED IN C THE CALLING PROGRAM. IA MUST BE GREATER THAN C OR EQUAL TO N. C JFLG (OUTPUT) - IS AN INTEGER*4 RETURN CODE VARIABLE. UPON C RETURN FROM DMATEQ IF; C JFLG=0, ALL WENT WELL. C JFLG=1, THE A MATRIX WAS SINGULAR OR NEAR C SINGULAR AND THE COMPUTATIONS COULD NOT BE C COMPLETED. THE CONTENTS OF THE VARIABLES C A, DET, IDET AND P ARE MEANINGLESS. C DET (OUTPUT) - IS A REAL*8 VARIABLE WHICH CONTAINS THE C DETERMINANT OF A. (SEE IDET) C IDET (INPUT) - IS AN INTEGER*4 VARIABLE. ON INPUT IF; C IDET=0, NO DETERMINANT IS CALCULATED. C IDET NOT 0, THE DETERMINANT OF A IS COMPUTED. C ON OUTPUT IDET CONTAINS THE POWER OF 10 C THAT DET SHOULD BE MULTIPLIED BY TO GIVE THE C CORRECT VALUE OF THE DETERMINANT. I.E. C DET(A)=DET*10.0D0**IDET. C IF DET(A) CAN BE COMPUTED WITHOUT UNDER OR C OVERFLOW, THEN IDET=0 OTHERWISE IDET IS SET C TO THE PROPER VALUE SO THAT NO UNDER OR OVER- C FLOW WILL OCCUR IN COMPUTING DET. C IV (INPUT) - IS AN INTEGER*4 WORK ARRAY WHICH SHOULD BE C DIMENSIONED AT LEAST IV(N). C PAGE 2 C C NRS (INPUT) - IS AN INTEGER*4 VARIABLE WITH THE FOLLOWING C INTERPRETATION: C NRS>0, SOLVE A SYSTEM OF LINEAR EQUATIONS C WITH NRS RIGHT HAND SIDES. C NRS=0, INVERT THE A MATRIX. C NRS<0, ONLY COMPUTE THE DETERMINANT OF A. C IN THIS CASE IDET MUST BE DIFFERENT FROM 0. C P (INPUT) - IS A REAL*8 ARRAY WITH THE FOLLOWING INTER- C PRETATION: C IF NRS>0, THEN P CONTAINS THE NRS RIGHT HAND C SIDES STORED BY COLUMNS. IN THIS CASE P MUST C BE DIMENSIONED AT LEAST P(N,NRS). ON RETURN C THE COLUMNS OF P ARE REPLACED BY THE RESPEC- C TIVE SOLUTIONS. C IF NRS=0, THEN P MUST BE DIMENSIONED AT LEAST C P(N,N). ON RETURN P WILL CONTAIN THE INVERSE C OF A. C IF NRS<0,THEN P NEED ONLY BE A DUMMY VARIABLE C IN THIS CASE P IS NEVER ACCESSED BY DMATEQ. C IP (INPUT) - IS AN INTEGER*4 VARIABLE WHICH CONTAINS THE C ACTUAL ROW DIMENSION OF P AS DIMENSIONED IN C THE CALLING PROGRAM. IP MUST BE GREATER THAN C OR EQUAL TO N. C NOTE: IMMEDIATELY ON RETURN FROM DMATEQ THE CONDITION CODE FLAG, C JFLG, SHOULD BE INTERROGATED. IF JFLG=1, THEN THE ROUTINE C COULD NOT COMPUTE A SOLUTION. C METHOD - THE ALGORITHM USED IS GAUSSIAN ELIMINATION WITH PARTIAL C -1 C PIVOTING. IN ESSENCE THE ROUTINE GENERATES A MATRIX L SUCH C -1 C THAT L *A = U, WHERE U IS AN UPPER TRIANGULAR MATRIX. THEN IT C SOLVES THE SYSTEM A*X = P BY MEANS OF THE EQUIVALENT SYSTEM C -1 -1 C U*X = L *A*X = L *P BY BACK SUBSTITUTION. C -1 C THE L MATRIX CAN BE WRITTEN AS A PRODUCT OF THE FORM C -1 C L = L *P *....*L *P WHERE EACH P IS A PERMUTATION C N-1 N-1 1 1 K C MATRIX OBTAINED BY INTERCHANGING AT MOST TWO ROWS OF THE C IDENTITY MATRIX. ( THIS REPRESENTS THE INTERCHANGING OF TWO C ROWS). THE L MATRICES ARE ELIMINATION MATRICES WHICH ARE C K C CHOSEN TO INTRODUCE ZEROS IN THE LAST N-K ENTRIES OF THE K-TH C COLUMN OF THE MATRIX. C PAGE 3 C C -1 -1 C THE CALCULATIONS OF L *A AND L *P ARE DONE BY PERFORMING C THE PERMUTATIONS ON A AND P RESPECTIVELY. THE ACTUAL L AND P C K K C ARE NOT COMPUTED. C SUBROUTINES CALLED: DMATDT C REFERENCE: C G. W. STEWART, INTRODUCTION TO MATRIX COMPUTATIONS, C ACADEMIC PRESS, 1973. REAL*8 A(N,1),DET,P(LL,1) REAL*8 DNORM,DEN,DMULT,DSUM,DISIGN DIMENSION IV(1) NRS=NRS1 IF (NRS.EQ.0) IDET=1 DISIGN=1.0D+00 DET=0.0D+00 JFLG=0 C C JFLG IS A TROUBLE FLAG.UPON EXIT IF JFLG=0 THEN THE MATRIX WAS PROCESS C WITHOUT TROUBLE.IF JFLG=1 EITHER THE MATRIX IS SINGULAR OR TROUBLE C OCCURED.ISIGN=-ISIGN EVERY TIME A ROW IS INTERCHANGED.THIS IS USED TO C INSURE THAT THE DETERMINANT HAS THE PROPER SIGN. C M1=M-1 DO 100 I=1,M 100 IV(I)=I IF (NRS) 500,200,500 200 DO 300 I=1,M DO 300 J=1,M 300 P(I,J)=0.0D+00 DO 400 I=1,M 400 P(I,I)=1.0D+00 NRS=M C C INSTEAD OF ACTUALLY INTERCHANGING ROWS A POINTER ARRAY IS USED TO KEEP C TRACK OF THE ROW POSITIONS. C C BEGIN ELIMINATION LOOP. C 500 DO 1200 K=1,M1 ICOL=K IPCOL=K C C SEARCHING FOR LARGEST ELEMENT IN ABSOLUTE VALUE IN COLUMN K. C DNORM=A(IV(K),K) IFLG=0 KK=K+1 DO 600 J=KK,M IF (DABS(A(IV(J),K)).LE.DABS(DNORM)) GO TO 600 IFLG=1 IPCOL=IV(J) DNORM=A(IPCOL,K) 600 CONTINUE C C IF IFLG=0 NO ROW INTERCHANGE TOOK PLACE.IF IFLG=1 A ROW INTERCHANGE C TOOK PLACE AND THE POINTER ARRAY IV MUST BE UPDATED. C IF (IFLG.EQ.0) GO TO 800 ISAVE=IV(ICOL) IV(ICOL)=IPCOL ICOL1=ICOL+1 DO 700 L=ICOL1,M IF (IV(L).EQ.IPCOL) IV(L)=ISAVE 700 CONTINUE DISIGN=-DISIGN 800 IF (DNORM.EQ.0.0D+00) GO TO 1900 C C BEGIN ELIMINATION OF ROW BELOW IV(K).DEN IS THE PIVOT ELEMENT. C K1=K+1 DO 1100 IM=K1,M C C BEFORE ACTUALLY ELIMINATING WE CHECK TO SEE IF A(IV(IM),K) HAS C ALREADY BEEN ANNIHILATED. C IF (A(IV(IM),K).EQ.0.0D+00) GO TO 1100 C C CALCULATE ELIMINATION FACTOR. C DMULT=-A(IV(IM),K) C C WE NOW CALCULATE VALUE OF OTHER ELEMENTS IN ROW IV(IM). C DO 900 NN=K1,M 900 A(IV(IM),NN)=(DMULT*A(IV(K),NN))/DNORM+A(IV(IM),NN) IF (NRS.LE.0) GO TO 1100 DO 1000 IN=1,NRS 1000 P(IV(IM),IN)=(DMULT*P(IV(K),IN))/DNORM+P(IV(IM),IN) 1100 CONTINUE 1200 CONTINUE C C CALCULATE VALUE OF DETERMINANT. C IF (A(IV(M),M).EQ.0.0D0) GO TO 1900 DET=DISIGN IF (IDET.NE.0) CALL DMATDT(A,N,M,DET,IV,IDET) IF (DET.EQ.0.0D+00) GO TO 1900 IF (NRS.LE.0) GO TO 2000 C C WE START SOLVING RIGHT HAND SIDES.THE SOLUTION REPLACES THE RIGHT HAND C VECTOR. C 1300 N1=M-1 DO 1600 JJ=1,NRS C C BEGIN BACK SUBSTITUTION. C P(IV(M),JJ)=P(IV(M),JJ)/A(IV(M),M) DO 1500 I=1,N1 DSUM=0.0D+00 DO 1400 J=1,I 1400 DSUM=DSUM-A(IV(M-I),M-J+1)*P(IV(M-J+1),JJ) 1500 P(IV(M-I),JJ)=(P(IV(M-I),JJ)+DSUM)/A(IV(M-I),M-I) 1600 CONTINUE DO 1800 JJ=1,NRS DO 1700 IND=1,M 1700 A(IND,1)=P(IV(IND),JJ) DO 1800 IND=1,M 1800 P(IND,JJ)=A(IND,1) RETURN 1900 JFLG=1 IDET=0 2000 RETURN END SUBROUTINE MATDT(A,IA,N,DET,IV,IDET) C SUBROUTINE MATDT IS DMATDT FROM THE UICC SUBROUTINE LIBRARY. REAL*8 A(IA,1),DET,B,LOG16 INTEGER*4 IV(1),K EQUIVALENCE (B,K) NUM=16777216 LOG16=.120411998265592457D+01 IF (A(IV(N),N).EQ.0.0D+00) GO TO 300 L=0 DO 100 I=1,N B=DABS(A(IV(I),I)) K=K/NUM-64 L=L+K 100 DET=DET*(A(IV(I),I)/16.0D+00**K) B=DABS(DET) K=K/NUM-64 IW=L+K IF ((IW.LT.-64).OR.(IW.GT.63)) GO TO 200 DET=DET*16.0D+00**L IDET=0 GO TO 400 200 DET=DET*16.0D+00**(-K) IDET=L+K B=IDET*LOG16 IDET=B B=B-DFLOAT(IDET) DET=DET*1.0D+01**B GO TO 400 300 DET=0.0D+00 IDET=0 400 RETURN END //GO.SYSIN DD * Input deck: GLYk11 Input data: GLYk12 dat N=0949 IP=02 ( 1X,3A1, 9X,F5.0, F5.0 ) GLY 7 -65 -40 999 GLY 26 63 -156 999 GLY 30 134 -176 999 GLY 32 67 -169 999 GLY 33 159 118 999 GLY 35 86 -170 999 GLY 9 -101 144 999 GLY 14 -64 -36 999 GLY 31 87 -5 999 GLY 33 76 -170 999 GLY 42 65 23 999 GLY 45 95 -8 999 GLY 49 67 33 999 GLY 53 83 1 999 GLY 85 93 -2 999 GLY 92 127 166 999 GLY 11 55 42 999 GLY 15 -85 31 999 GLY 26 123 136 999 GLY 38 28 19 999 GLY 39 87 7 999 GLY 57 119 -170 999 GLY 70 -61 156 999 GLY 75 130 -4 999 GLY 79 162 180 999 GLY 91 -107 166 999 GLY 93 158 -167 999 GLY 96 -87 -52 999 GLY 100 67 172 999 GLY 20 106 7 999 GLY 31 92 -3 999 GLY 37 -90 -162 999 GLY 42 -62 -23 999 GLY 62 53 -129 999 GLY 74 -70 -34 999 GLY 77 85 6 999 GLY 79 -73 168 999 GLY 97 71 34 999 GLY 114 111 19 999 GLY O 4 -122 147 999 GLY O 7 99 96 999 GLY O 9 -96 -146 999 GLY O 12 -58 -40 999 GLY O 51 72 -169 999 GLY O 61 60 -109 999 GLY O 68 84 -41 999 GLY O 85 -52 -38 999 GLY O 88 75 15 999 GLY O 97 88 5 999 GLY O 112 110 -5 999 GLY O 131 89 -4 999 GLY O 166 82 112 999 GLY O 170 -165 157 999 GLY O 209 -110 9 999 GLY O 223 68 10 999 GLY O 227 -167 -177 999 GLY O 265 -105 -112 999 GLY O 269 99 -26 999 GLY O 285 102 -2 999 GLY O 302 58 -3 999 GLY O 316 -68 -48 999 GLY O 332 86 128 999 GLY P 4 -128 144 999 GLY P 7 96 91 999 GLY P 9 -103 -145 999 GLY P 12 -56 -51 999 GLY P 51 74 -172 999 GLY P 61 72 -93 999 GLY P 68 79 -15 999 GLY P 85 -58 -37 999 GLY P 88 78 16 999 GLY P 97 86 -1 999 GLY P 112 107 1 999 GLY P 131 86 -9 999 GLY P 166 84 118 999 GLY P 170 -158 154 999 GLY P 209 -110 4 999 GLY P 223 64 16 999 GLY P 227 -179 176 999 GLY P 265 -109 -114 999 GLY P 269 87 -13 999 GLY P 285 97 -11 999 GLY P 302 68 -10 999 GLY P 316 -56 -53 999 GLY P 332 95 122 999 GLY A 22 131 117 999 GLY A 23 -40 144 999 GLY A 33 91 -3 999 GLY A 66 126 -2 999 GLY A 71 -116 131 999 GLY A 78 73 21 999 GLY A 98 73 -161 999 GLY A 99 60 20 999 GLY A 100 91 9 999 GLY A 115 90 179 999 GLY A 169 99 -14 999 GLY 35 109 -71 999 GLY 55 88 1 999 GLY 62 -97 166 999 GLY 68 88 -20 999 GLY 75 -94 -172 999 GLY A 31 -52 -37 999 GLY A 52 -65 -42 999 GLY A 69 -102 21 999 GLY A 89 85 9 999 GLY A 111 70 8 999 GLY B 8 54 -137 999 GLY B 20 49 -132 999 GLY B 23 82 170 999 GLY 16 87 24 999 GLY 19 89 6 999 GLY 22 83 7 999 GLY 37 68 26 999 GLY 48 -46 -59 999 GLY 55 82 -168 999 GLY 68 82 -23 999 GLY 72 75 3 999 GLY 105 68 -145 999 GLY 127 89 -4 999 GLY 129 78 26 999 GLY 5 -59 -35 999 GLY 23 -62 -45 999 GLY 25 -60 -45 999 GLY 65 -59 -43 999 GLY 73 -57 -49 999 GLY 80 91 -18 999 GLY 121 -69 -14 999 GLY 124 -75 -171 999 GLY 129 -66 -51 999 GLY 150 78 32 999 GLY 6 96 133 999 GLY 10 79 10 999 GLY 24 78 5 999 GLY 34 70 24 999 GLY 49 89 -6 999 GLY 67 88 -6 999 GLY 78 134 -171 999 GLY 89 -62 -33 999 GLY 91 99 15 999 GLY 94 -155 178 999 GLY 9 111 149 999 GLY 68 96 -25 999 GLY 88 -67 -25 999 GLY 112 79 -174 999 GLY 3 168 -172 999 GLY 11 82 0 999 GLY 15 -78 156 999 GLY 20 95 -137 999 GLY 24 -73 -37 999 GLY 35 94 11 999 GLY 36 -85 177 999 GLY 39 -125 165 999 GLY 50 75 28 999 GLY 18 71 20 999 GLY 19 -105 -168 999 GLY 43 -98 171 999 GLY 44 -158 168 999 GLY 69 66 29 999 GLY 116 -72 0 999 GLY 117 -127 -17 999 GLY 133 92 -11 999 GLY 140 172 172 999 GLY 142 -66 177 999 GLY 184 147 -149 999 GLY 186B 82 -171 999 GLY 187 92 -24 999 GLY 193 102 -17 999 GLY 196 91 -12 999 GLY 207 86 -3 999 GLY 211 -140 169 999 GLY 215 -60 129 999 GLY 216 -125 65 999 GLY 10 77 17 999 GLY 35 81 5 999 GLY 47 62 22 999 GLY 53 -83 -9 999 GLY 75 120 126 999 GLY 11 70 23 999 GLY 20 70 -149 999 GLY 23 -87 50 999 GLY 24 -101 28 999 GLY 36 -59 -52 999 GLY 43 87 -1 999 GLY 57 -96 22 999 GLY 64 52 -130 999 GLY 67 119 163 999 GLY 68 175 -169 999 GLY 73 -66 -50 999 GLY 81 83 17 999 GLY 82 150 180 999 GLY 96 -127 -178 999 GLY 141 -84 157 999 GLY 150 95 -177 999 GLY 157 -92 -167 999 GLY 168 172 -169 999 GLY 170 -173 -166 999 GLY 173 64 25 999 GLY 174 82 1 999 GLY 189 61 -155 999 GLY 192 100 -18 999 GLY 201 97 163 999 GLY 202 57 -134 999 GLY 204 84 175 999 GLY 207 72 17 999 GLY 18 -61 140 999 GLY 19 97 -15 999 GLY 44A -86 -81 999 GLY 48B 68 -132 999 GLY 51 -164 -179 999 GLY 56 -63 -35 999 GLY 59 -164 170 999 GLY 67 54 39 999 GLY 81 85 -15 999 GLY 85 172 -166 999 GLY 100 93 -71 999 GLY 120E 64 -124 999 GLY 123 176 -165 999 GLY 133 98 -16 999 GLY 140 -163 165 999 GLY 156 73 -146 999 GLY 160 -171 -148 999 GLY 175 145 175 999 GLY 179 71 23 999 GLY 183 -134 175 999 GLY 191 -145 170 999 GLY 193 106 -22 999 GLY 196 88 -21 999 GLY 197 -65 160 999 GLY 207 89 15 999 GLY 211 171 -172 999 GLY 215 -177 -174 999 GLY 216 173 179 999 GLY 219C 89 -1 999 GLY 221 -85 4 999 GLY 239 65 39 999 GLY 4 -172 159 999 GLY 24 51 44 999 GLY 25 84 -12 999 GLY 35 -98 1 999 GLY 53 83 22 999 GLY 63 -83 154 999 GLY 68 87 -3 999 GLY 76 -67 -19 999 GLY 78 98 5 999 GLY 83 170 -150 999 GLY 93 52 39 999 GLY 94 83 2 999 GLY 99 72 29 999 GLY 120 142 -168 999 GLY 123 -74 128 999 GLY 163 -131 -166 999 GLY 168 81 10 999 GLY 177 73 -147 999 GLY 183 -76 146 999 GLY 189 86 8 999 GLY 201 65 -119 999 GLY 205 -158 179 999 GLY 207 -77 179 999 GLY 210 -161 172 999 GLY 215 -83 -8 999 GLY 235 82 4 999 GLY 243 129 3 999 GLY 244 156 -150 999 GLY 262 96 -20 999 GLY 269 -50 -32 999 GLY 278 73 53 999 GLY 280 76 -161 999 GLY 285 -76 139 999 GLY 286 -77 -20 999 GLY 292 66 32 999 GLY 294 101 -5 999 GLY 299 -81 -168 999 GLY 318 -110 146 999 GLY 2 -62 173 999 GLY 4 73 9 999 GLY 12 57 -144 999 GLY 19 -134 161 999 GLY 24 95 178 999 GLY 27 104 143 999 GLY 37 -95 2 999 GLY 52 -74 141 999 GLY 54 -85 -20 999 GLY 70 -84 1 999 GLY 78 -52 -40 999 GLY 80 90 -7 999 GLY 85 169 -148 999 GLY 95 56 35 999 GLY 96 96 -11 999 GLY 101 63 40 999 GLY 121 162 -164 999 GLY 124 -83 129 999 GLY 126 -83 -170 999 GLY 135 93 -4 999 GLY 147 73 18 999 GLY 155 -99 136 999 GLY 159 -85 173 999 GLY 164 105 -6 999 GLY 165 75 -143 999 GLY 166 78 -166 999 GLY 167 155 170 999 GLY 172 96 6 999 GLY 173 -169 -173 999 GLY 181 76 -156 999 GLY 193 88 3 999 GLY 196 -87 138 999 GLY 205 64 -132 999 GLY 215 -155 170 999 GLY 220 -85 6 999 GLY 239 68 28 999 GLY 244 72 9 999 GLY 246 96 -5 999 GLY 266 81 5 999 GLY 283 71 11 999 GLY 288 -79 -7 999 GLY 290 -143 -175 999 GLY 292 -146 168 999 GLY 295 -84 -8 999 GLY 300 -87 -166 999 GLY 314 -68 -44 999 GLY A 37 -89 -170 999 GLY A 45 -73 144 999 GLY A 58 -64 -44 999 GLY A 63 -61 -50 999 GLY A 67 91 165 999 GLY A 76 63 36 999 GLY A 88 -105 176 999 GLY A 89 -55 139 999 GLY A 90 82 -2 999 GLY A 105 71 6 999 GLY A 116 81 -12 999 GLY A 123 -161 180 999 GLY 41 -69 -14 999 GLY 42 103 -179 999 GLY 51 84 10 999 GLY 52 -156 -173 999 GLY 62 39 54 999 GLY 77 165 -156 999 GLY 6 -163 -150 999 GLY 25 -62 176 999 GLY 63 91 -62 999 GLY 81 83 -160 999 GLY 98 -118 180 999 GLY 104 -152 8 999 GLY 111 72 3 999 GLY 140 -56 -57 999 GLY 145 -106 127 999 GLY 151 177 -129 999 GLY 171 87 -6 999 GLY 196 -151 -148 999 GLY 235 97 -31 999 GLY 253 72 23 999 GLY A 14 -67 -36 999 GLY A 28 -61 -49 999 GLY A 32 92 11 999 GLY A 57 -72 -10 999 GLY A 61 105 -3 999 GLY A 68 -66 146 999 GLY A 76 -131 -87 999 GLY A 85 -61 -40 999 GLY A 115 -61 -21 999 GLY 8 79 21 999 GLY 31 -64 -19 999 GLY 39 84 10 999 GLY 50 84 -2 999 GLY 64 -62 123 999 GLY 73 73 18 999 GLY 81 -53 -51 999 GLY 88 57 -129 999 GLY 99 -59 141 999 GLY 102 62 30 999 GLY 37 120 147 999 GLY 60 91 -6 999 GLY 61 91 126 999 GLY 68 -53 -39 999 GLY 93 -64 -32 999 GLY 120 -58 -177 999 GLY 146 71 15 999 GLY 168 65 46 999 GLY 189 106 -8 999 GLY 216 -113 -160 999 GLY 226 -82 167 999 GLY 230 64 -6 999 GLY 243 -60 -39 999 GLY 248 -64 -46 999 GLY 249 -62 -47 999 GLY 298 -160 -158 999 GLY 309 77 1 999 GLY 315 94 -10 999 GLY 326 -77 -15 999 GLY 351 98 -167 999 GLY 353 84 -157 999 GLY 359 -87 7 999 GLY 386 71 19 999 GLY 394 171 -150 999 GLY 398 -153 173 999 GLY 13 65 15 999 GLY 41 92 178 999 GLY 55 -86 1 999 GLY 64 64 -155 999 GLY 65 90 -177 999 GLY 68 -79 -3 999 GLY 69 46 45 999 GLY 84 95 -29 999 GLY 88 -78 -41 999 GLY 105 -68 -42 999 GLY 111 -61 -31 999 GLY 112 -75 -38 999 GLY 129 122 7 999 GLY 142 107 4 999 GLY 173 -65 -11 999 GLY 178 76 -149 999 GLY 186 77 25 999 GLY 192 -173 -176 999 GLY 228 97 18 999 GLY 273 92 -6 999 GLY 293 76 18 999 GLY 6 87 -154 999 GLY 34 -58 -46 999 GLY 57 92 -4 999 GLY 103 -64 -44 999 GLY 130 80 -1 999 GLY 133 -64 -47 999 GLY 12 84 -177 999 GLY 23 89 15 999 GLY 28 80 -134 999 GLY 30 66 31 999 GLY 51 86 32 999 GLY 56 75 13 999 GLY 77 -66 -44 999 GLY 107 77 158 999 GLY 110 -52 -53 999 GLY 113 -80 -11 999 GLY 156 76 18 999 GLY 31 -59 -46 999 GLY 85 -62 -29 999 GLY 86 -93 -10 999 GLY 109 -93 -26 999 GLY 116 78 1 999 GLY 25 -76 161 999 GLY 32 -59 -28 999 GLY 46 79 10 999 GLY 54 91 166 999 GLY A 22 70 47 999 GLY A 47 -179 179 999 GLY A 53 80 16 999 GLY A 57 -58 -11 999 GLY A 67 164 -176 999 GLY A 83 119 6 999 GLY 9 -68 -38 999 GLY 19 78 7 999 GLY 30 80 7 999 GLY 32 100 -19 999 GLY 41 113 -178 999 GLY 51 75 10 999 GLY 66 -95 0 999 GLY 68 122 -32 999 GLY 70 -64 -41 999 GLY 75 -62 -37 999 GLY 78 -151 22 999 GLY 83 -110 153 999 GLY 92 -101 137 999 GLY 100 83 14 999 GLY 102 -156 152 999 GLY 110 -65 -39 999 GLY 126 121 173 999 GLY 134 164 171 999 GLY 135 -156 -158 999 GLY 136 -64 160 999 GLY 152 110 34 999 GLY 160 105 160 999 GLY 181 -95 175 999 GLY 196 116 170 999 GLY 205 -139 -4 999 GLY 214 83 20 999 GLY 215 62 34 999 GLY 222 157 166 999 GLY 232 -65 -40 999 GLY 241 78 17 999 GLY 259 76 15 999 GLY 267 102 -12 999 GLY 18 72 26 999 GLY 19 -106 -157 999 GLY 23 106 144 999 GLY 38 105 -13 999 GLY 43 -94 -177 999 GLY 44 -172 176 999 GLY 62 72 45 999 GLY 69 67 20 999 GLY 78 119 -15 999 GLY 133 104 -18 999 GLY 140 168 177 999 GLY 142 -74 175 999 GLY 148 89 -175 999 GLY 174 78 1 999 GLY 184A 127 -151 999 GLY 187 81 -163 999 GLY 188A 87 -30 999 GLY 193 105 -19 999 GLY 196 87 -12 999 GLY 203 75 9 999 GLY 211 -136 165 999 GLY 216 178 172 999 GLY 219 69 -155 999 GLY 226 -67 146 999 GLY 12 -167 171 999 GLY 15 95 -11 999 GLY 24 -140 -142 999 GLY 30 -55 -33 999 GLY 42 80 10 999 GLY 58 79 -5 999 GLY 69 57 -117 999 GLY 78 54 48 999 GLY 100 -113 148 999 GLY 102 -80 169 999 GLY 103 -86 -7 999 GLY 104 93 146 999 GLY 111 77 22 999 GLY 18 -57 142 999 GLY 19 88 -6 999 GLY 34 53 -130 999 GLY 39 -88 -1 999 GLY 45 -87 -75 999 GLY 48D 78 -2 999 GLY 56 -63 -35 999 GLY 86 159 -157 999 GLY 90 -174 151 999 GLY 104 -162 165 999 GLY 116 -77 49 999 GLY 120C 83 3 999 GLY 128 -149 -178 999 GLY 133 92 -2 999 GLY 140 -155 156 999 GLY 156 72 -129 999 GLY 160 179 -154 999 GLY 164 -172 160 999 GLY 172 64 -124 999 GLY 175 104 -172 999 GLY 179 73 29 999 GLY 193 105 -27 999 GLY 196 88 -14 999 GLY 197 -69 175 999 GLY 202 62 -132 999 GLY 211 -162 174 999 GLY 215 -174 -165 999 GLY 216 163 -163 999 GLY 218 73 -151 999 GLY 223 89 176 999 GLY 224 -179 -168 999 GLY 238 67 38 999 GLY R 52 -63 -41 999 GLY R 64 73 21 999 GLY R 76 83 -5 999 GLY R 78 -72 162 999 GLY R 85 -59 -51 999 GLY 15 -113 -169 999 GLY 16 75 -126 999 GLY 21 -163 151 999 GLY 25 -146 142 999 GLY 94 -163 -170 999 GLY 96 -173 -169 999 GLY 101 50 -126 999 GLY 111 -155 168 999 GLY 120 172 121 999 GLY 136 -169 180 999 GLY 151 -59 -37 999 GLY 159 -64 -37 999 GLY 171 -71 -16 999 GLY 190 -90 3 999 GLY 191 67 35 999 GLY 211 -90 126 999 GLY 221 -150 153 999 GLY 223 125 -19 999 GLY 248 -148 157 999 GLY 249 -157 156 999 GLY 256 -171 180 999 GLY 263 -157 168 999 GLY 267 93 1 999 GLY 273 94 141 999 GLY 274 66 36 999 GLY 275 87 -19 999 GLY 291 -55 -26 999 GLY 294 -92 10 999 GLY 312 102 -21 999 GLY 334 64 180 999 GLY 335 48 -127 999 GLY 347 113 0 999 GLY 348 -70 146 999 GLY 350 -62 143 999 GLY 2 111 142 999 GLY 7 -61 -47 999 GLY 23 92 -1 999 GLY 24 -60 172 999 GLY 34 76 4 999 GLY 59 91 29 999 GLY 83 89 14 999 GLY 4 -155 35 999 GLY 34 41 60 999 GLY 56 77 25 999 GLY 80 -22 -61 999 GLY 89 -85 -21 999 GLY 93 31 61 999 GLY 95 86 34 999 GLY 98 -131 -158 999 GLY 18 74 21 999 GLY 19 -88 -166 999 GLY 36B 83 -112 999 GLY 43 -81 176 999 GLY 44 -160 174 999 GLY 69 64 33 999 GLY 78 78 6 999 GLY 84 -81 170 999 GLY 100 85 -154 999 GLY 121 -70 140 999 GLY 127 89 -15 999 GLY 140 158 169 999 GLY 142 -69 -173 999 GLY 149 -104 -146 999 GLY 173 55 -138 999 GLY 184 91 -134 999 GLY 185 86 14 999 GLY 187 77 -6 999 GLY 190 -87 163 999 GLY 193 94 -17 999 GLY 196 96 -22 999 GLY 205 69 12 999 GLY 211 -133 154 999 GLY 219 153 169 999 GLY L 12 163 160 999 GLY L 15 99 -10 999 GLY L 24 -121 -128 999 GLY L 27C -71 47 999 GLY L 29 89 -7 999 GLY L 40 141 -89 999 GLY L 67 56 -116 999 GLY L 76 44 49 999 GLY L 100 -110 80 999 GLY L 101 -82 138 999 GLY L 102 131 172 999 GLY L 144 -54 130 999 GLY L 160 -98 65 999 GLY L 201 93 -43 999 GLY H 10 -84 -69 999 GLY H 26 84 -23 999 GLY H 42 113 14 999 GLY H 44 129 119 999 GLY H 49 178 -174 999 GLY H 55 84 45 999 GLY H 102 -79 13 999 GLY H 108 -169 126 999 GLY H 110 -112 160 999 GLY H 137 -89 140 999 GLY H 138 62 -90 999 GLY H 143 -124 -174 999 GLY H 161 73 5 999 GLY H 166 -130 50 999 GLY H 178 39 156 999 GLY H 194 -43 2 999 GLY 27 115 125 999 GLY 28 -107 50 999 GLY 29 -105 -156 999 GLY 31 -76 -40 999 GLY 32 -62 -52 999 GLY 43 103 -3 999 GLY 55 104 -24 999 GLY 56 60 -151 999 GLY 62 -144 -124 999 GLY 86 102 4 999 GLY 92 -144 -153 999 GLY 128 140 179 999 GLY 144 86 -23 999 GLY 157 65 -153 999 GLY 158 -140 -163 999 GLY 170 81 13 999 GLY 174 -91 164 999 GLY 179 -66 -30 999 GLY 188 -70 -40 999 GLY 194 140 161 999 GLY 196 -89 179 999 GLY 204 -66 -37 999 GLY 210 110 3 999 GLY 242 94 6 999 GLY 260 100 -147 999 GLY 271 93 23 999 GLY 290 163 -177 999 GLY 304 68 32 999 GLY 311 104 2 999 GLY 325 79 12 999 GLY 330 83 -158 999 GLY 334 78 6 999 GLY 346 -66 -36 999 GLY 378 -130 135 999 GLY 381 89 -162 999 GLY 392 100 141 999 GLY 432 -161 140 999 GLY 437 159 165 999 GLY 439 89 -10 999 GLY 446 -71 -35 999 GLY 454 89 35 999 GLY 7 70 -122 999 GLY 23 -63 -43 999 GLY 30 63 42 999 GLY 34 91 162 999 GLY 47 68 38 999 GLY 65 98 -1 999 GLY 70 133 175 999 GLY 71 85 -165 999 GLY 74 72 -169 999 GLY 88 176 -179 999 GLY 94 77 12 999 GLY 97 53 -118 999 GLY A 18 84 21 999 GLY A 19 -110 -158 999 GLY A 39A 77 29 999 GLY A 43 -105 -177 999 GLY A 44 177 177 999 GLY A 61 -156 173 999 GLY A 69 66 25 999 GLY A 133 98 -1 999 GLY A 140 -177 176 999 GLY A 142 -82 -173 999 GLY A 145 -173 167 999 GLY A 184 103 127 999 GLY A 193 102 -15 999 GLY A 196 88 -6 999 GLY A 205 93 -20 999 GLY A 211 -142 161 999 GLY A 216 -158 -148 999 GLY E 18 -56 137 999 GLY E 19 97 -24 999 GLY E 40 -174 -160 999 GLY E 45 -83 -82 999 GLY E 48C 57 -120 999 GLY E 56 -58 -46 999 GLY E 62 79 -14 999 GLY E 86 175 -162 999 GLY E 90 -168 152 999 GLY E 104 -145 169 999 GLY E 117 -92 49 999 GLY E 120 62 -142 999 GLY E 121 -75 -6 999 GLY E 133 97 -12 999 GLY E 140 -145 167 999 GLY E 156 78 -141 999 GLY E 160 171 -155 999 GLY E 172 83 163 999 GLY E 173 63 20 999 GLY E 174 89 11 999 GLY E 179 71 23 999 GLY E 193 108 -25 999 GLY E 196 77 -7 999 GLY E 202 63 -124 999 GLY E 211 -158 179 999 GLY E 215 -169 177 999 GLY E 216 177 -171 999 GLY E 218 82 -163 999 GLY E 223 107 153 999 GLY E 224 -159 -174 999 GLY E 238 62 36 999 GLY I 25 -81 164 999 GLY I 32 -64 -29 999 GLY I 46 80 15 999 GLY I 54 91 -177 999 GLY 3 -171 -166 999 GLY 8 -111 179 999 GLY 10 -160 177 999 GLY 12 -82 -176 999 GLY 15 87 10 999 GLY 36 53 -131 999 GLY 38 106 160 999 GLY 52 102 -147 999 GLY 78 -65 -50 999 GLY 95 85 5 999 GLY 109 51 45 999 GLY 117 103 -20 999 GLY 123 -85 170 999 GLY 125 81 166 999 GLY 127 85 3 999 GLY 135 -77 -9 999 GLY 136 -108 117 999 GLY 154 67 40 999 GLY 162 -70 -38 999 GLY 173 -66 -38 999 GLY 189 67 19 999 GLY 196 -90 -29 999 GLY 199 71 5 999 GLY 212 87 14 999 GLY 223 -68 -159 999 GLY 228 85 35 999 GLY 229 64 51 999 GLY 235 -61 -33 999 GLY 247 89 175 999 GLY 248 137 170 999 GLY 252 77 1 999 GLY 257 -74 142 999 GLY 259 95 162 999 GLY 264 -56 -42 999 GLY 297 95 144 999 GLY 314 72 24 999 GLY 11 83 0 999 GLY 36 -132 51 999 GLY 39 84 3 999 GLY 51 105 160 999 GLY 54 99 -22 999 GLY A 15 -81 -58 999 GLY A 18 51 -117 999 GLY A 22 -30 -58 999 GLY A 25 -38 -61 999 GLY A 51 75 12 999 GLY A 57 -53 -41 999 GLY A 59 -59 -32 999 GLY B 16 -61 -18 999 GLY B 24 -59 -48 999 GLY B 25 -52 -51 999 GLY B 29 -66 -36 999 GLY B 46 98 -137 999 GLY B 56 -107 41 999 GLY B 64 -64 -37 999 GLY B 69 -58 -39 999 GLY B 74 -43 -33 999 GLY B 83 -73 -37 999 GLY B 107 -70 -34 999 GLY B 119 61 -128 999 GLY B 136 -58 -55 999 GLY A 2 162 30 999 GLY A 19 -97 -165 999 GLY A 25 85 -14 999 GLY A 38 117 35 999 GLY A 43 -106 -177 999 GLY A 44 -166 179 999 GLY A 59 60 36 999 GLY A 69 87 8 999 GLY A 74 -112 8 999 GLY A 133 109 -18 999 GLY A 140 170 177 999 GLY A 142 -71 172 999 GLY A 173 55 -145 999 GLY A 184 102 -133 999 GLY A 187 110 15 999 GLY A 193 103 -16 999 GLY A 196 82 -15 999 GLY A 205 73 15 999 GLY A 211 -142 159 999 GLY A 216 173 -161 999 GLY A 226 -81 149 999 GLY 39 175 -179 999 GLY 44 87 17 999 GLY 55 138 -155 999 GLY 56 90 167 999 GLY 67 69 19 999 GLY 79 -56 -46 999 GLY 91 75 -2 999 GLY 115 -57 -45 999 GLY 140 91 159 999 GLY 150 64 34 999 GLY 152 78 -3 999 GLY 155 108 17 999 GLY 167 91 175 999 GLY 187 79 8 999 GLY 207 -93 -35 999 GLY 235 90 11 999 GLY 241 161 176 999 GLY 252 71 29 999 GLY 253 -84 150 999 GLY 262 80 16 999 GLY 275 136 -14 999 GLY 278 70 -133 999 GLY 296 -72 -43 999 GLY R 1 -80 149 999 GLY R 6 -73 -32 999 GLY R 23 90 1 999 GLY R 24 -69 156 999 GLY R 34 83 10 999 GLY R 37 92 -6 999 GLY R 41 72 26 999 GLY R 45 87 8 999 GLY R 56 77 24 999 GLY R 77 95 -1 999 GLY R 84 121 163 999 GLY R 89 -66 -40 999 GLY 28 66 33 999 GLY 36 -81 -9 999 GLY 37 105 -7 999 GLY 56 -88 -167 999 GLY 57 -164 -138 999 GLY 10 93 -6 999 GLY 18 66 -153 999 GLY 23 84 15 999 GLY 27 88 7 999 GLY 43 81 6 999 GLY 45 -72 173 999 GLY 9 -99 -172 999 GLY 27 109 117 999 GLY 29 -86 -151 999 GLY 32 -66 -50 999 GLY 60 -71 -26 999 GLY 68 -94 5 999 GLY 80 -156 151 999 GLY 88 114 36 999 GLY 97 -174 175 999 GLY 103 84 24 999 GLY 152 104 24 999 GLY 160 -112 130 999 GLY 162 51 -123 999 GLY 175 -52 -41 999 GLY 179 104 11 999 GLY 187 -159 162 999 GLY 191 90 -150 999 GLY 194 129 -124 999 GLY 203 -111 -11 999 GLY 216 90 -27 999 GLY 243 92 9 999 GLY 250 -44 -52 999 GLY 279 72 22 999 GLY 296 94 -123 999 GLY 15 -76 144 999 GLY 17 -157 161 999 GLY 20 85 -2 999 GLY 45 94 -5 999 GLY 53 -80 171 999 GLY 85 99 -24 999 GLY 116 102 178 999 GLY 117 -87 -151 999 GLY 164 85 13 999 GLY 174 74 1 999 GLY 11 79 23 999 GLY 20 70 -148 999 GLY 23 -91 69 999 GLY 36 -61 -53 999 GLY 43 91 -8 999 GLY 62 52 -124 999 GLY 65 98 174 999 GLY 66 169 -171 999 GLY 79 125 -168 999 GLY 90 76 23 999 GLY 109 153 -165 999 GLY 119 -55 -52 999 GLY 138 -68 145 999 GLY 146 151 166 999 GLY 147 94 173 999 GLY 154 -94 -147 999 GLY 165 172 -178 999 GLY 178 68 -177 999 GLY 180 -74 3 999 GLY 182 67 -147 999 GLY 185 99 -3 999 GLY 192 68 38 999 GLY 194 84 -7 999 GLY 198 88 158 999 GLY 201 60 34 999 K=10 ( 3X, 2F7.0) A +180 +180 1 A -180 -180 1 B -90 -170 2 D +90 +170 9 T -80 +20 4 Q +80 -20 7 P -70 +130 3 H +70 -130 8 R -60 -60 5 L +60 +60 6 p(1) .10 p(2) .10 p(3) .10 p(4) .10 p(5) .10 p(6) .10 p(7) .10 p(8) .10 p(9) .10 p(9) .10