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

RE: [ccp4bb]: Refmac vs. cns



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

Dear All,

I pretty much agree with everything Dirk has said. I pretty much shudder at
my late 80's low R-factors which I annealed. I am sure CD will do me one day
(but hey I deposited the data).

I find torsional dynamics excellent for getting errors out of mol repl slns
where bias is a severe problem at 2.5 + A. Like Dirk I chuck the model (I
use them as bkgrnd objects) but keep the omit maps.

CNS has some very nice features, the ability to define NCS is very strong
also dictionary design is easier.

I have hacked a script because I am old and stupid which runs refmac and
arp_warp in a cyclical manner. It is absolutely great for putting in waters
etc. Use the gui where possible.

A side note is if you ask any program to put waters in, it will put waters
in. It does not put in glycerols, sulfates etc etc. I only run my script
once I have by hand checked my maps to put these things in first. If you
don't do this serious errors can result.

When using unusual ligands, I struggle (see above I'm dumb) to avoid refmac
and arp_warp choking on each others atom types.
Here is my work around

grep -v 'XYL' {$name}{$count}.pdb > test.pdb
grep  'YXL' {$name}{$count}.pdb > pre_arp_xyl.pdb

cat test.pdb test_xyl.pdb > pre_arp_{$name}{$count}.pdb

/bin/rm {$name}{$count}.pdb

$CBIN/arp_warp \
xyzin pre_arp_{$name}{$count}.pdb \
mapin1 arp_2fofc.map \
mapin2 arp_fofc.map \
xyzout post_arp_{$name}{$count}.pdb \
<< eof-arp
mode update waters
symmetry p212121
resolution 100 1.8
# refine waters
find atoms 50 chain W cutsigma auto
remove atoms 8 cutsigma 1 merge 2.2
refine waters
end
eof-arp
#
#

grep -v 'xyl' post_arp_{$name}{$count}.pdb > post_arp_test.pdb
cat post_arp_test.pdb pre_arp_xyl.pdb > {$name}{$count}.pdb

Replace the arp_warp below in the iterative script with the above. If my
funky ligand is xyl, the script strips out the latest refined coords puts
them in a file. It then adds some coordinates you specify to this file
before going into arp.
Your specified file has the starting coordinates of your ligand but with
atom names warp_arp likes (C1- C100 is fine!). This stops arp_warp choking
but it also stops it putting water in where your ligand should be. After
arp_warp the script strips out the place holder ligand putting back in your
refmac refined coordinates for xyl.
This has some advantages
(1)It works easily and avoids a headache. You've spent ages getting that
refmac dictionary right, have a coronary trying to get it compatable with
warp_arp is just a pain. In water mode you just don't want waters where your
ligand should be.
The assumption is that atoms in your ligand have not moved more than 2.0A.
If you put in right at the start and refined it already this is reasonable.
By inserting more greps you can strip more funky ligands etc.


Automated insertions of waters

#!/bin/csh -f
#
# user input
#
set name = 'yfpjn_'
set count = 0
set cycles = 30
#
#
#
set last = 0
@ last = $count + $cycles
#
set current = 0
set next = 0
#
while ( $count != $last )
#
@ count ++
@ current = $count - 1
@ next = $count + 1
#
echo '###################################'
echo '            CYCLE-NO. '$count
echo '###################################'
#
#
#

refmac5 \
        XYZIN {$name}{$current}.pdb \
        XYZOUT {$name}{$count}.pdb \
        HKLIN data.mtz \
        hklout {$name}{$count}.mtz \
        tlsin {$name}{$current}.tls \
        tlsout {$name}{$count}.tls \
        <<eof-refmac
LABIN FP=F SIGFP=SIGF FREE=FreeR_flag
LABO FC=FC PHIC=PHIC FWT=2FOFCWT PHWT=PH2FOFCWT -
     DELFWT=FOFCWT  PHDELWT=PHFOFCWT FOM=FOM
REFI TYPE RESTrained
refi tlsc 10
REFI RESI MLKF resol 50 1.5
REFI BREF isotropic
REFI METH CGMAT
WEIG EXPE MATR 1.35
NCSR NCHAIN 2 CHAINS A B NSPAN 3 1 44 1 46 177 1 182 202 1
SCAL TYPE BULK LSSC ANIS FIXBulk BBulk 200
#SCAL LSSC ANIS
make_restraints hydrogens no
SOLVENT YES
NCYC 15
MONI MEDI
!BINS 15
PNAME YFP
DNAME EPIM NATIVE
USECWD

make newligand noexit
make check 0

END
eof-refmac
#

#
grep "REMARK   3" {$name}{$count}.pdb

#
#
#
#
#
#
#
#
#
fft \
hklin {$name}{$count}.mtz \
mapout map2fo.temp
<< EOF-fft > /dev/null
labin  F1=2FOFCWT PHI=PH2FOFCWT
fftsymmetry p21212
END
EOF-fft
#
mapmask mapin map2fo.temp mapout arp_2fofc.map << eof > /dev/null
xyzlim 0 1 0 0.25 0 1
symmetry p21212
eof
#
fft \
hklin {$name}{$count}.mtz \
mapout mapfo.temp  \
<< EOF-fft > /dev/null
labin  F1=FOFCWT PHI=PHFOFCWT
fftsymmetry p21212
END
EOF-fft
#
mapmask mapin mapfo.temp mapout arp_fofc.map << eof > /dev/null
xyzlim 0 1 0 0.25 0 1
symmetry p21212
eof
#
#

cp {$name}{$count}.pdb pre_arp_{$name}{$count}.pdb


$CBIN/arp_warp \
xyzin pre_arp_{$name}{$count}.pdb \
mapin1 arp_2fofc.map \
mapin2 arp_fofc.map \
xyzout post_arp_{$name}{$count}.pdb \
<< eof-arp
mode update waters
symmetry p21212
resolution 100 1.5
# refine waters
find atoms 50 chain W cutsigma auto
remove atoms 8 cutsigma 1 merge 2.2
refine waters
end
eof-arp
#
#

cp post_arp_{$name}{$count}.pdb  {$name}{$count}.pdb



echo 'Finished internal cycle'
end
echo 'Finished big cycles'





refmac5 \
        XYZIN {$name}{$count}.pdb \
        XYZOUT final_{$name}{$count}.pdb \
        HKLIN data.mtz \
        hklout final_{$name}{$count}.mtz \
        tlsin {$name}{$count}.tls \
        tlsout final_{$name}{$count}.tls \
        <<eof-refmac
LABIN FP=F SIGFP=SIGF FREE=FreeR_flag
LABO FC=FC PHIC=PHIC FWT=2FOFCWT PHWT=PH2FOFCWT -
     DELFWT=FOFCWT  PHDELWT=PHFOFCWT FOM=FOM
REFI TYPE RESTrained
refi tlsc 10
REFI RESI MLKF resol 50 1.5
REFI BREF isotropic
REFI METH CGMAT
WEIG EXPE MATR 1.35
NCSR NCHAIN 2 CHAINS A B NSPAN 3 1 44 1 46 177 1 182 202 1
SCAL TYPE BULK LSSC ANIS FIXBulk BBulk 200
#SCAL LSSC ANIS
make_restraints hydrogens no
SOLVENT YES
NCYC 15
MONI MEDI
!BINS 15
PNAME YFP
DNAME EPIM NATIVE
USECWD

make newligand noexit
make check 0

END
eof-refmac




grep "REMARK   3"  final_{$name}{$count}.pdb

fft \
hklin final_{$name}{$count}.mtz \
mapout map2fo.temp  \
<< EOF-fft > /dev/null
labin  F1=2FOFCWT PHI=PH2FOFCWT
fftsymmetry p21212
END
EOF-fft

fft \
hklin final_{$name}{$count}.mtz \
mapout mapfo.temp  \
<< EOF-fft > /dev/null
labin  F1=FOFCWT PHI=PHFOFCWT
fftsymmetry p21212
END
EOF-fft



mapmask:
mapmask mapin map2fo.temp mapout 2fofc_xyl.map \
xyzin final_{$name}{$count}.pdb << eof > /dev/null
border 15
symmetry p21212
eof

mapmask:
mapmask mapin  mapfo.temp mapout fofc_xyl.map \
xyzin final_{$name}{$count}.pdb << eof > /dev/null
border 15
symmetry p21212
eof

maps:

echo read m1 fofc_xyl.map ccp4 > script
echo brix m1 fofc_yfp.omap >> script
echo read m2 2fofc_xyl.map ccp4 >> script
echo brix m2 2fofc_yfp.omap >> script
echo quit >> script

run mapman -b < script > mapman.log



/bin/rm -f *.temp

best
Jim

James H. Naismith                | Research mailto:naismith@st-and.ac.uk
Professor of Chemical Biology    | Teaching mailto:jhn@st-and.ac.uk
BBSRC Career Development Fellow  |
Centre for Biomolecular Sciences | Office: 1334-463792 (24 hr)
The North Haugh                  | Fax   : 1334-467229
The University                   | Lab   : 1334-467245
St. Andrews                      | In UK     add  0 to start of number
Fife Scotland, U.K., KY16 9ST    | www     http://speedy.st-and.ac.uk/