********> bugfix.63 Author: Steve Gallion (Brandeis) and Bill Ross Date: 4/23/94 Programs: LINK Severity: Moderate Problem: Link-modified O,H charges in DOHE residues in proteins are reversed Affects: Proteins that use DOHE Cause: simple programming error Some people like to terminate proteins with OH groups. A hack was introduced in LINK at some point that modified the charges and default geometry of the DOHE residue (nominally for DNA) ->when it was found in a protein<-, such that the net charge on the OH would be neutral. However, the O received the positive charge and the H the negative. Example: This link.in, when used with db4.dat, exercises the problem: test DU 0 0 0 0 0 test P 0 0 1 3 0 HB 1TYR 1GLY 1ILE 1DOHE1 QUIT Fix: Rather than perpetuate the hack, we provide a POHE residue (Protein OH / End) having the correct charges to use instead, and the hack is deleted from LINK. This will enable the same strategy to be used with LEaP. Add the following residue to all.in and uni.in and rebuild db4.dat: ------------------------------------------------------------------------ PROTEIN-OH END POHE INT 1 CORR OMIT DU BEG 0.00000 1 DUMM DU M 0 -1 -2 0.000 0.000 0.000 0.00000 2 DUMM DU M 1 0 -1 1.000 0.000 0.000 0.00000 3 DUMM DU M 2 1 0 1.000 90.000 0.000 0.00000 4 O OH M 3 2 1 1.360 113.000 180.890 -0.38000 5 H HO M 4 3 2 0.960 107.000 -39.220 0.38000 DONE ------------------------------------------------------------------------ Make the following change to subroutine BLDIT in link.f (lines are commented out with '*'s): *** OLD link.f --- NEW link.f *************** *** 983,989 **** 258 CONTINUE IF(MOLTYP(NMOL).NE.3) GO TO 200 ICK = LABRES(NTOTRS) ! IF(ICK.EQ.IDOHE) GO TO 203 * IF(ICK.EQ.IOME) GO TO 204 NMINUS = NTOTRS-1 IF(NMINUS.LE.0) GO TO 200 --- 987,993 ---- 258 CONTINUE IF(MOLTYP(NMOL).NE.3) GO TO 200 ICK = LABRES(NTOTRS) ! * IF(ICK.EQ.IDOHE) GO TO 203 * IF(ICK.EQ.IOME) GO TO 204 NMINUS = NTOTRS-1 IF(NMINUS.LE.0) GO TO 200 *************** *** 999,1010 **** ITYP(2,1) = IHH(4) ITYP(2,2) = IHH(5) GO TO 200 ! 203 CHG(1) = 0.38 ! CHG(2) = -0.38 ! RTP(1,1) = 1.36 ! RTP(2,1) = 113. ! RTP(3,1) = 180. ! RTP(2,2) = 107. * GO TO 200 * 204 CONTINUE * ISYMBL(NBUILD) = IO2 --- 1003,1015 ---- ITYP(2,1) = IHH(4) ITYP(2,2) = IHH(5) GO TO 200 ! * 203 continue ! * CHG(1) = 0.38 ! * CHG(2) = -0.38 ! * RTP(1,1) = 1.36 ! * RTP(2,1) = 113. ! * RTP(3,1) = 180. ! * RTP(2,2) = 107. * GO TO 200 * 204 CONTINUE * ISYMBL(NBUILD) = IO2 *************** Temporary workarounds: none. Routines affected: BLDIT in link.f and the residue database, db4.dat. --