[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ccp4bb]: Bug (and Fix!) for symmetry restraints in PROTIN



***  For details on how to be removed from this list visit the  ***
***    CCP4 home page http://www.dl.ac.uk/CCP/CCP4/main.html    ***

Folks:

I have encountered a problem in specifying restraints to PROTIN.
I have a covalent linkage across a crystallographic 2-fold from
a residue via an intermediate atom to the symmetry copy of that
same residue.  To reduce it to a simpler description:

	- C2 - C3  --   X  --  C3 - C2 -
        residue 1    res 2     residue 1'

where res 1' is the 2-fold related copy of res 1.

I am using the following set of restraints in PROTIN

! First the bond length (1-2) restraints
! residues 1 and 2 are in the same chain so we can use the
! normal link command
CHNTYP 3 SPEC RESN 1 2 ATNA C3 X DIST 1.53 1 1
! unfortunately residues 2 and 1' are not, so instead we use
SPEC CHNNAM Z Z ATNA X C3 RESN 2 1 DIST 1.53 1 1 SYMM -X,1/2+Y,-Z

That actually works, with a quibble saved for later.

! Now the bond angle (1-3) restraints
SPEC CHNNAM Z Z ATNA C2 X  RESN 1 2 DIST 2.53 2 2
SPEC CHNNAM Z Z ATNA C3 C3 RESN 1 1 DIST 2.53 2 2 SYMM -X,1/2+Y,-Z


It's that last restraint that is the problem.  PROTIN ignores 
restraints from any residue to itself.  Here is a patch to fix it:

*** protin.f	Thu Dec 14 15:10:12 2000
--- /usr/local/Ccp4/solopt/src/protin.f	Thu Feb 10 03:29:31 2000
***************
*** 3745,3769 ****
       +              IRES.EQ.IRESSD(2,ISP,2)) ISD12 = 2
- C EAM - Dec 2000    
- C               Special check to allow restraint between a residue
- C               and its own symmetry mate. The ordering test above
- C               will always fill set ISD12=2 in this case.
-                 if (CHIDSD(1,ISP).EQ.CHIDSD(2,ISP) .AND.
-      +              IRESSD(1,ISP,2).EQ.IRESSD(2,ISP,2)) THEN
-                     IF (JDATM(1:3).EQ.ATIDSD(1,ISP,2)(1:3).AND.
-      +                 DFLAG .EQ. ATIDSD(1,ISP,2)(4:4)) THEN
-                           IANMSD(1,ISP,2) = IATOM
-                           CHNMSD(1,ISP) = ICHAIN
-                     END IF
-                     IF (JDATM(1:3).EQ.ATIDSD(2,ISP,2)(1:3).AND.
-      +                 DFLAG .EQ. ATIDSD(2,ISP,2)(4:4)) THEN
-                           IANMSD(2,ISP,2) = IATOM
-                           CHNMSD(2,ISP) = ICHAIN
-                     END IF
-                     IF (IANMSD(1,ISP,2).GT.0 .AND.
-      +                  IANMSD(2,ISP,2).GT.0) ISPEC2 = ISPEC2 + 1
-                     ISD12 = 0
-                 END IF 
- C               There's still a potential problem because the check
- C               for multiple conformers of the residue is not done
- C EAM - Dec 2000    
                  IF (ISD12.NE.0) THEN
--- 3745,3746 ----
***************
*** 3771,3772 ****
--- 3748,3750 ----
       +                     DFLAG .EQ. ATIDSD(ISD12,ISP,2)(4:4)) THEN
+ c                  IF (JDATM.EQ.ATIDSD(ISD12,ISP,2)) THEN
                      IANMSD(ISD12,ISP,2) = IATOM


This works, at least well enough so that I can continue refinement.
There are still some problems left if anyone is feeling energetic
and wants to fix them.

1)  The "1/2+Y" in the symmetry specification is total nonsense.
    This is a proper 2-fold and the correct command should logically
    be  SYMM -X,Y,-Z   but that has the effect of displacing the
    restrained atom by a full unit cell.  I don't know why.
    My work-around is to add an artificial translation of 1/2 that
    cancels out in the end.

2)  My actual structure necessarily involves a pair of alternate 
    conformers linking across the 2-fold A-to-B and B-to-A. This is
    probably very common in such cases.  I haven't managed to get
    PROTIN to handle disorder properly in symmetry restraints;
    there are a couple of lines of code that are supposed to, but
    they don't work.   I've worked around this by adding dummy
    atoms to the residue description, but it would be nice if the
    conventional description of disorder by alternate chain ids
    also worked.

3)  Can anyone tell me whether it is possible to specify this sort
    of case to Refmac V5?   I have the program itself, but no 
    documentation to guide me through how one adds external 
    symmetry restraints.

			regards,

					Ethan

-------------------------------------------------------------------
Ethan A Merritt                         K428b Health Sciences
Dept of Biological Structure            phone: (206)543-1421
Mailstop 357742         		FAX:   (206)685-7002
University of Washington
Seattle, WA 98195-7742                  merritt@u.washington.edu
-------------------------------------------------------------------