C PROTEIN DATA BANK SOURCE CODE CONTCT C AUTHOR. L.ANDREWS C ENTRY DATE. 10/79 UNSUPPORTED C LAST REVISION. 5/83 C PURPOSE. INTERMOLECULAR CONTACTS C LANGUAGE. FORTRAN IV,DOS MACRO 11(PDP11) C C C C G LINE -4C CARD V IN VC C ******PROGRAM CONTCT LAWRENCE C. ANDREWS WINTER 1978 C C THIS PROGRAM IS FAST INTERMOLECULAR CONTACT PROGRAM. C IT USES CUBING OF SPACE AND LINKED LIST SORTS TO C GAIN SPEED IN FINDING ALL INTERMOLECULAR CONTACTS IN C THE CRYSTAL. THE CONTACTS WHICH ARE FOUND ARE GROUPED BY C THE OPERATIONS INVOLVED IN TRANSFORMING THE ATOMS C INVOLVED. IF MORE THAN ONE MOLECULE OCCURS IN C THE ASYMMETRIC UNIT, THE PROPER PAIR OF OERATIONS IS C LISTED. C THIS CODE IS RELATIVELY SPECIFIC FOR THE PDP11 C RUNNING DOS. TWO SUBROUTINES FOR THE NAMES OF C RESIDUES AS USUALLY SPECIFIED FOR HEMOGLOBINS ARE C RATHER SPECIFIC FOR THOSE PROTEINS AND MIGHT BE DELETED. C C CORRECTION. INSERT MISSING SUBROUTINES. 23-SEP-82. C C CORRECTION. REPLACE BAD RECORD. 20-JAN-83. C C CORRECTION. REPLACE BAD RECORDS. 12-MAY-83. C C ********INPUT CARDS (COLUMN NO.S SPECIFIED) C C ***REQUIRED CARDS C C PDBFIL (A6,6A4) C 1-6 PDBFIL C 7-30 STANDARD DOS FILE IDENTIFIER FOR FILE CONTAINING PROTEIN C DATA BANK INPUT E.G. PDBFIL MT0:FETAL.PDB[31,3] C C END (A4) C 1-3 END C LAST INPUT CARD --- GO DO CALCULATIONS C C ***OPTIONAL CARDS C LIST (A4) C 1-4 LIST C IF PRESENT, INSTEAD OF LISTING INTERMOLECULAR C CONTACT DISTANCES, THE FRACTIONAL COORDINATES OF ALL ATOMS C IN ONE ASYMMETRIC UNIT C ARE LISTED C C C DMAX (A4,F17.2) C 1-4 DMAX C 5-21 MAXIMUM LIMIT (ANGSTROMS) FOR DECLARING 2 RESIDUES C TO BE IN CONTACT (LAST DMAX CARD INPUT IS USED-DEFAULT=5.0) C TITLE (A5,18A4) C 1-5 TITLE C 6-79 INFORMATION TO BE ECHOED TO OUTPUT C ANY NUMBER MAY BE INPUT--ALL ARE ECHOED C C FILE (20A4) C 1-4 FILE C 5-80 STANDARD DOS FILE IDENTIFIER--CAUSES NAMED FILE TO BE READ C UNTIL FILE OR END CARD OR END OF FILE IS REACHED C EOF RETURNS CONTROL TO KB: C CANNOT BE USED IN BATCH STREAMS C E.G. FILE DK0:WARD.INP[100,12] C C ***OPTIONAL CARDS THAT MODIFY EXECUTION C C CELL (A4,F17.2,2F8.2,3F7.2) C 1-4 CELL C 5-21 A C 22-29 B C 30-37 C C 38-44 ALPHA OR COSINE ALPHA C 45-51 BETA OR COSINE BETA C 52-58 GAMMA OR COSINE GAMMA C PRESENCE REQUIRES EULER CARD AND EITHER SPGR OR SYMTRY CARDS C ABSENCE MEANS PDBFIL CELL FROM CRYST1 RECORD WILL BE USED C C SPGR (A4,15A2) C 1-4 SPGR C 5-34 SPACE GROUP SYMBOL--BLANKS ARE ALLOWED C IF SYMTRY CARDS ARE PRESENT, THEY TAKE PRECEDENCE C PRESENTLY ALLOWED SYMBOLS ARE P2, P21, P 21 21 21, P 21 21 2, C P 21 2 21, P 2 21 21, C2, C2221, R32 C PRESENCE REQUIRES CELL CARD C C SYMTRY (A6,74A1) C 1-6 SYMTRY C 7-80 SYMMETRY OPERATIONS ARE WRITTEN AS EQUIVALENT POSITIONS C - AS IN INTERNATIONAL TABLES C EXAMPLES SYMTRY X,Y,Z C SYMTRY -X,1/2+Y,-Z C ONE EQUIVALENT POSITION PER CARD C BLANKS ARE IGNORED C PRESENCE REQUIRES CELL CARD C C LATT (A4) C 1-4 LATT C J ON H ANSON P AULA F ITZGERALD C IF PRESENT, ROTATES INPUT COORDINATES -90 DEGREES C ABOUT X-AXIS TO AGREE WITH THE WAY JH AND PF SET UP C THEIR COORDINATES WITH THE MOLECULAR DYAD ALONG Z-AXIS C C EULER (A5,6F12.2) (SPECIFICATION OF ORIENTATION OTHER THAN INPUT C COORDIATES) C 1-5 EULER C 6-17 THETA1 (IN DEGREES) C 17-29 THETA2 C 30-41 THETA3 C 42-53 X TRANSLATION IN CELL FRACTIONS C 54-65 Y TRANSLATION IN CELL FRACTIONS C 66-77 Z TRANSLATION IN CELL FRACTIONS (OF FINAL CELL) C PRESENCE REQUIRES CELL CARD C MORE THAN ONE EULER DESIGNATION MAY APPEAR C THE ROTATIONS ARE -- C A RIGHT-HANDED ROTATION ABOUT THE Z-AXIS BY THETA 1 C A RIGHT-HANDED ROTATION ABOUT THE ROTATED X-AXIS BY THETA2 C A RIGHT-HANDED ROTATION ABOUT THE ROTATED Z-AXIS BY THETA3 C C NOTE CONCERNING THE COORDINATE SYSTEMS USED C IF EULER INFORMATION IS INPUT, IT IS CURRENTLY MEANT TO BE USED AS C IN LATTMAN-S ROTATION AND TRANSLATION FUNCTION PROGRAMS. IF THESE C HAVE THE MOLECULAR DYAD OF THE HEMOGLOBIN TETRAMER C ALIGNED ALONG THE Z-AXIS INCLUDE A LATT CARD. NOTE THAT THE MRC C SYSTEM (PDB FETAL AND DEOXY ENTRIES) HAVE THE DYAD ALONG THE C Y-AXIS. TO CONVERT FROM MRC TO LATTMAN-S C SYSTEM, ROTATE -90 DEGREES ABOUT THE X-AXIS. ********* C **************USE GREAT CARE WITH MODIFICATIONS OF COORDINATES. C THE OUTPUT OF THE ROTATION FUNCTION (DEFINED BY LATTMAN-S PROGRAMS) C ASSUMES THAT THE A-STAR-AXIS IS ALONG THE X-AXIS, AND THE C-AXIS C IS ALONG THE Z-AXIS. C C ***OPERATION**** C C THE PROGRAM WILL RUN FASTER IF ALL SENSE SWITCHES ARE DOWN. C IF SOME ARE UP FILE 4 WILL BE WRITTEN WITH C DEBUGGING INFORMATION. C THE PROGRAM READS A STANDARD PROTEIN DATA BANK (PDB) FILE TO OBTAIN C CERTAIN INFORMATION-- C CELL AND SPACE GROUP IF NOT INPUT SEPARATELY C TRANSFORMATION FROM INPUT ORTHOGONAL COORDINATES TO C FRACTIONAL COORDINATES (IF CELL CARD WAS NOT INPUT) C NON-CRYSTALLOGRAPHIC SYMMETRY TRANSFORMATION(S) C RESIDUE NAMES IN ORDER C SUBUNIT BOUNDARIES (I.E. BEGINNING AND ENDING RESIDUES IN CHAINS) C ATOMIC COORDINATES (CARTESIAN SYSTEM) C C IF ONLY PDBFIL AND AN END CARD ARE INPUT, THE PROTEIN WILL BE USED AS C READ FROM THE PDB. IF CARDS TO MODIFY EXECUTION ARE PRESENT, THE C COORDINATES WILL BE TRANSFORMED TO USE THE SPECIFIED CELL. THE C INPUT CARDS MAY APPEAR IN ANY ORDER, BUT END IS THE LAST CARD THAT C WILL BE READ. IF SYMTRY CARDS ARE PRESENT, THE FIRST ONE WILL BE C THE FIRST EQUIVALENT POSITION (AND SHOULD BE X,Y,Z), THE SECOND C WILL BE THE SECOND EQUIVALENT POSITION, ETC. IF MORE THAN ONE EULER C CARD IS INPUT, THE SET OF EQUIVALENT POSITIONS WILL BE EXPANDED. C IF THERE ARE N SYMTRY CARDS, SYMMETRY OPERATION N+1 WILL BE C THE OPERATION THAT GIVES THE POSITION DEFINED BY THE SECOND EULER C CARD. FOR INSTANCE, THE CARDS--- C C CELL 63.33,185.65,52.96,90.,92.59,90. C SYMTRY X,Y,Z C SYMTRY -X,1/2+Y,-Z C EULER -168.9,-102.55,25.49, .2776,.1468,.016 C EULER -13.38,-89.58,45.8, .1356,.355,.5125 C C WILL GENERATE THE FOLLOWING SYMMETRY OPERATIONS C C ( 1 0 0) (0) C 1) ( 0 1 0) (0) FROM EULER 1, X,Y,Z C ( 0 0 1) (0) C C (-1 0 0) (0) C 2) ( 0 1 0) (.5) FROM EULER 1, -X,1/2+Y,-Z C ( 0 0 -1) (0) C C (-.895 -.698 .440) (.479) C 3) ( .302 -.872 -.315) (.404) FROM EULER 2, X,Y,Z C ( .008 -.222 .970) (.527) C C ( .895 .698 -.440) (-.479) C 4) ( .302 -.872 -.315) ( .404) FROM EULER 2, -X,1/2+Y,-Z C (-.008 .222 -.970) (-.527) C C OPERATIONS 1 AND 2 USE INFORMATION FROM EULER CARD NO. 1. C OPERATIONS 3 AND 4 GIVE THE MOLECULE SPECIFIED BY EULER CARD NO. 2 C THE PROGRAM CURRENTLY HAS NOT BEEN TESTED FOR MORE THAN 2 EULER CARDS. C EULER CARDS SHOULD NOT USUALLY BE USED FOR CRYSTALLOGRAPHIC SYMMETRY, C BECAUSE CONTACTS WILL THEN BE LISTED MORE THAN ONCE. C C C MATRICES USEFUL FOR CONVERTING FROM ORTHOGONAL COORDINATES TO C FRACTIONAL COORDINATES ARE WRITTEN IN FILE NO. 4. C COMMON RESINF RESIDUE INFORMATION C NX,NM,NH COUNTERS IN GETRES FOR NO. OF SCALE, MTRIX,AND HELIX C CARDS--NH IS USED IN HBHELX C C ILEAD COUNTERS TO INDICATE LEADING NON-AMINO ACID RESIDUES C ON A CHAIN--DEFINED IN GETRES--USED IN HBHELX,HBNAME C C SMAT OPERATION TO GET ORIGINAL ATOMS INTO FRACTIONAL C COORDINATES C C AMAT NON-CRYSTALLOGRAPHIC SYMMETRY OPERATION--DEFINED GETRES C USED IN NXTLSY C C COMMON DIRACC DIRECT ACCESS POINTERS FOR ALL FILES C C COMMON HELIX LISTS INFORMATION FOR CONVERTING FROM RESIDUE C LIST NO. TO HELIX/TURN INFORMATION C C COMMON OMNIA SCRATCH SPACE C IN SETUP, EQUIVALENCED TO SAVE SPACE, OTHERWISE C ONLY REFERENCED DIRECTLY IN MAIN PROGRAM C ********NON-ANSII USAGE--PARTS ARE USED AS INTEGER C C COMMON SYMTRY C NSYM NO. OF SYMOPS (I.E. MOLECULES IN CELL) C = NO. IN SP.GR. TIMES NO. OF EULER CARDS C C SYM MATRICES AND VECTORS TO GENERATE SUCCESSIVE MOLECULES C FIRST SHOULD BE IDENTITY OPERATION C DEFINED IN SETUP OR GETLIM--EXPANDED IN NMOL IF C MORE THAN ONE EULER CARD PRESENT C REDEFINED IN NMOL IF ANY EULER CARDS ARE PRESENT C C ISYMST FIRST SYMOP TO BE TREATED IN CURRENT PASS C C SYMPRV VALUE THAT ELEMENTS OF SYM ADDRESSED BY ISYMST HAD C ON PREVIOUS PASS C C C COMMON EUL C EULER ROTATION MATRICES DEFINED FROM EULER ANGLES C DEFINED IN SETUP---MODIFIED IN SETUP TO INCLUDE -90 C DEGREE ROTATION ABOUT X-AXIS AND CONVERSION TO C FRACTIONAL COORDINATES IF A LATT CARD IS INCLUDED C ---USED IN NMOL TO MAKE FINAL SYMOPS C CART MATRIX TO GO FROM CARTESIAN TO FRACTIONAL COORDINATES C DEFINED, USED IN SETUP, FOR LATTMAN ROTATION AND C TRANSLATION FUNCTIONS, IT MUST HAVE A-STAR PARALLEL C TO X AND C PARALLEL TO Z C C COMMON FLAGS C ISP DEFINED IN SETUP, IF SPGR CARD IS READ--USED IN SETUP C TO ASSURE COMPLETE DATA---USED IN GETRES TO INHIBIT C REDEFINITION OF SPACE GROUP C C IATF DEFINED IN SETUP--FLAG TO INDICATE THAT ATOMS WILL C NOT COME FROM PDB C C COMMON RESSPC SPATIAL INFORMATION FOR RESIDUES C C XINTRV DEFINED IN GETLIM--USED IN INDXNF C C XMAXO,XMINO DEFINED IN GETRES--USED IN GETLIM C CARTESIAN LIMITS OF MOLECULE NO. 1 C C MINX,MAXX INTEGER LIMITS OF BOXES FOR SORTING--DEFINED IN C GETLIM--USED IN RESCON,INDXNF,INDEXN C C XMAXF,XMINF FRACTIONAL COORDINATES LIMITS OF MOLECULE NO. 1--DEFINED C TRNLIM--USED IN TRNLIM,RESCON C C CELL CELL PARAMETERS C C C ALGORITHMS OF CONTCT C C SETUP 1) MATRIX FERLAB ROTATES -90 DEGREES ABOUT X TO AGREE C WITH LATTMAN-S TRANSLATION FUNCTION C C 2) MATRIX CART ASSUMES A-STAR PARALLEL TO X AND C PARA. TO Z C C GETLIM TO DECIDE HOW MANY BOXES TO DIVIDE EACH SIDE OF ENCLOSING C BOX INTO-- C 1) ASSUME MAXIMUM OF 10 C 2) LENGTH OF EACH DIVISION = 9.99999/(MAX-MIN) C I.E. THE POSSIBLE INTEGERIZED VALUES ARE 0,1,---9 C (10 VALUES) C 3) IF (MAX-MIN) / (2*RMAX+DMAX) .LT. 10 ----MULTIPLY C THAT VALUE DIVIDED BY 10 (YES 10.0) TIMES THE LENGTH C OF EACH DIVISION CALCULATED ASSUMING 10 DIVISIONS C RMAX IS THE SIZE OF THE LARGEST RESIDUE C C SRTRES USES LINKED LIST SORT BY GROUPS (BOXES OF GETLIM) C ORIGINALLY PUBLISHED AS A RASTER SCAN CONVERTER C B.W.JORDAN,JR. AND R.C.BARRETT C COMMUNICATIONS OF THE ASSOCIATION FOR COMPUTING C MACHINERY VOL.16,676-682 (1973) SEE ALSO C CACM V.17,157-163 AND CACM V.17,71-77 C CODE MODIFIED FROM CODE OF PRJCTN (ANDREWS,MC CANDLISH, C AND BERNSTEIN, CRYSNET PROJECT BROOKHAVEN NATIONAL C LABORATORY - BNL REPORT 21714) C SUBROUTINE INDXNF INDEXES 3 FLOATING POINT NUMBERS C BY CONVERTING TO INTEGERS AND USING INDEXN C C NMOL X1,X2,X,T1,T2 ARE VECTORS M1,M2 ARE MATRICES C IF X1=M1*X+T1 AND X2=M2*X+T2 C THEN X2=M2*M1(INVERSE)*X1 + (T2-M2*M1(INVERSE)*T1) C C RESCON T (METRIC TENSOR) =M(TRANSPOSE)*M C WHERE M IS ANY MATRIX FOR CONVERTING FROM FRACTIONAL C COORDINATES TO ORTHOGONAL COORDINATES C IF X AND Y ARE TWO POSITIONS (VECTORS) EXPRESSED IN C FRACTIONAL COORDINATES, THE DISTANCE (D) BETWEEN C THEM IS C C D = SQRT( (X-Y) * T * (X-Y) ) WHERE THE FIRST (X-Y) IS C A ROW VECTOR AND THE SECOND IS A COLUMN VECTOR C C (A*A A*B*COS(GAMMA) A*C*COS(BETA) ) C T = (A*B*COS(GAMMA) B*B B*C*COS(ALPHA) ) C (A*C*COS(BETA) B*C*COS(ALPHA) C*C ) C C FOR FURTHER DETAILS SEE INTERNATIONAL TABLES FOR C CRYSTALLOGRAPHY VOL.2, PG 60 C C IPOINT FOLLOWS LIST OF ATOMS THAT ARE IN BOX AND C RETURNS IPOINT= ADDRESS OF NEXT ATOM (RESIDUE) OR C ZERO IF DONE C C TOUCH HAS TO FIGURE OUT WHERE TO PUT A REDIDUE C USING INFORMATION FROM RESCON (TAPE8) AND CNTPAR C C EULERV AND EULERL THE ORDER OF ROTATIONS IS-- THETA3 ABOUT Z THEN C THETA 2 ABOUT X THEN THETA 1 ABOUT Z C C CNTPAR ACRONYM FOR COUNT PAIRS C CONSIDER A CENTRAL MOLECULE WITH RESIDUES ON THE SURFACE C NUMBERED 1 AND 2. CONSIDER TWO SYMMETRY OPERATIONS 1 C AND 2 THAT GENERATE TWO ADDITIONAL MOLECULES WHICH TOUCH C THE CENTRAL MOLECULE. M1,T1 IS THE MATRIX AND TRANSLATION C WHICH GENERATES THE MOLECULE CONTAINING C RESIDUE 1P WHICH TOUCHES RESIDUE 2 IN THE CENTRAL MOLECULE C AND M2,T2 IS THE MATRIX AND TRANSLATION WHICH GENERATES C THE MOLECULE CONTAINING RESIDUE 2P WHICH IS IN CONTACT C WITH RESIDUE 1 IN THE CENTRAL MOLECULE. IF X1 IS THE C COORDINATES OF RESIDUE 1 AND X2 IS THE COORDINATES OF C OF RESIDUE 2 AND X1P IS THE COORDINATES OF RESIDUE C 1P ETC, THEN C C X1P = M1*X1 + T1 C X2P = M2*X1 + T2 C C IF IN SCANNING THE LIST OF ATOMS AND EQUIVALENT POSITIONS, C WE FOUND THE CONTACT WHERE RESIDUE 1P TOUCHES 2, BUT C WE NEED THE CONTACT WHERE WE LOOK FROM THE OTHER SIDE, C THEN WE NEED THE CONTACT WHERE 2 TOUCHES 1P. C THAT IS WE ALWAYS WANT TO SHOW THE CONTACTS AS IF C WE ARE LOOKING IN THE SAME DIRECTION FROM THE C CENTRAL MOLECULE. C C THEN WE NEED TO USE M2,T2 ON BOTH 1P AND 2. C C M2(M1*X+T1) + T2 = X1 MUST BE TRUE FOR BOTH TO BE SAME CONTACT C M2*M1*X1 + M2*T1 + T2 = X1 SAME THING C C FOR THIS TO BE TRUE, M2*M1 = UNIT MATRIX, AND C M2*T1 = -T2 C C C ---IF THIS CONDITION IS MET, THEN THE TWO OPERATIONS DOM C INDEED REFER TO THE SAME CONTACT AS SEEN FROM ALTERNATE C SIDES. CNTPAR LOOKS FOR THESE CONDITIONS AMONG THE C OPERATIONS FOUND IN THE SEARCH. NOTE THAT BOTH SIDES WILL C NOT ALWAYS BE FOUND. I HOPE THAT THE CODE IS GENERAL FOR C ALL SPACE GROUPS. NOTE THAT CNTPAR AS IT STANDS C CANNOT COPE WITH MORE THAN PAIRS OF CONTACTS--THESE COULD C ARISE IN BAD CASES IN SPACE GROUPS ABOVE ORTHORHOMBIC. C C C *******NOTE ABOUT CNTPAR-- C THIS SUBROUTINE MAY NOT HAVE BEEN COMPLETELY THOUGHT C THROUGH FOR HIGH SYMMETRY SPACE GROUPS AND WILL NOT WORK C IF MORE THAN A PAIR OF SYMOPS MUST BE MATCHED C $JOB CONTCT[1,1] $R FORTRN #MAIN