A few years ago I did this by first using the solved structure to
generate a hypothetical (FCALC) data set to some rather optimistic
resolution limit (2A when I was stuck at 2.7), carrying out a random
Rfree selection on this FCALC set, and then dumping the FCALCs while
retaining the Rfree selections. This then became a "master" Rfree
selection set that I would merge into new data as it became
available, ensuring that all my data retained the same Rfree
selections (and the percentage Rfree generally stayed pretty
constant). For some reason (probably patience), I only figuring out
how to do the merging-in of the Rfree set using XPLOR rather than CNS
- the script is below.
These days we've largely gone to running a simulated annealing job to
uncouple new random Rfree sets, and also using dtcell (from d*TREK)
to rotate new data into the same orientation as the master dataset/
molecular orientation.
- Olve
-------------------------------------------------------
Olve Peersen
Associate Professor
Dept. of Biochemistry & Molecular Biology
1870 Campus Delivery
Colorado State University
Ft. Collins, CO 80523-1870
-------------------------------------------------------
970.491-0433 Office (MRB 279)
970.491-0271 Lab (MRB 149)
970.491-0494 Fax
[EMAIL PROTECTED]
-------------------------------------------------------
{+ file: F432master.inp +}
{+ directory: xtal_util +}
{+ description: Make a master TEST set in F432 for the alpha-8mer
data by
inheriting the old TEST room temparature TEST set
from the
file na03a.cvi and then declaring additional TEST
reflections
by taking a random 10% of the HKLs NOT PRESENT in
na03a.cvi.
Output file CONTAINS ONLY THE TEST
ARRAY +}
{+ authors: Olve Peersen +}
{- begin block parameter definition -} define(
{====================== files ===================================}
{* reflection file - which contains a previously used test *}
{===>} reflection_old="na03a.cvi";
{* reflection file - to which test set array will be added *}
{===>} reflection_new="F432master.hkl";
{* percentage of reflections to be used for TEST set - ie. 10% *}
{===>} percentage=10.0;
{* output reflection file *}
{===>} reflection_outfile="F432master.cvt";
{=======================================================================
====}
{ things below this line do not normally need to be
changed }
{=======================================================================
====}
) {- end block parameter definition -}
checkversion 0.9
evaluate ($log_level=quiet)
xray
{======= Read old data
Make a copy of the pre-existing TEST set into OLD_TEST
Make an array to keep track of "known" (i.e. TEST = 0/1)
HKLS in OLD_SIGMA
Undeclare all other likely arrays to free up memory ==}
reflection @&reflection_old end
declare name=old_test type=integer domain=reciprocal end
do (old_test=test) (all)
declare name=old_sigma type=real domain=reciprocal end
do (old_sigma=sigma) (all)
undeclare name=fobs domain=reciprocal end
undeclare name=sigma domain=reciprocal end
undeclare name=iobs domain=reciprocal end
undeclare name=sigi domain=reciprocal end
undeclare name=test domain=reciprocal end
{======= Read in the new data file, undeclare then redeclare TEST to
make sure it
exists. Then undeclare all other likely arrays to free up
memory ==}
reflection @&reflection_new end
undeclare name=test domain=reciprocal end
declare name=test type=integer domain=reciprocal end
undeclare name=fobs domain=reciprocal end
undeclare name=sigma domain=reciprocal end
undeclare name=iobs domain=reciprocal end
undeclare name=sigi domain=reciprocal end
{====== Set up an array OLD to keep track of previously known
reflections versus
those that have never been considered for inclusion in the
TEST set ==}
declare name=old type=integer domain=reciprocal end
do (old=0) (all)
do (old=1) (old_sigma >= 0.001) { HKL is in old data/TEST set }
{====== Set up TEST=1 for percentage of data ====}
do (test=0) (all) { Reset all to working set }
do (test=1) (old_test=1) { Inherit old TEST values
for knowns }
do (test=1*int(random()+&percentage/100.)) { Randomly assign
TEST = 1 for }
(old=0) { percentage of new
HKLs }
write reflection { Output new file with TEST
flag only }
output=&reflection_outfile
test
end
end
stop
On Mar 1, 2007, at 11:55 AM, Axel Brunger wrote:
Actually, the merge script will create the superset of both reflection
data sets, so it won't delete reflections from one data set that are
not present in the other data set.
Once you have done the "merge.inp" script, you can use the "make_cv"
script to extend your test set while keeping your original test
set selection.
If you continue to have trouble, please contact me directly with more
details.
Axel Brunger
Florian Brückner wrote:
Dear colleagues,
I have a dataset form a protein-ligand complex. I want to use the
same Rfree test set for refinement as used for the protein alone.
How can I extract the test set from the CNS reflection file of the
protein-alone dataset (created with make_cv) to use it with the
protein-ligand data. I tried CNS program "merge" but obviouly
reflections which are missing in the protein-alone reflection file
(because they were rejected during scaling) are also eliminated in
the merged output file. This way I am loosing some of the data.
Does anyone have a better idea?
Thanks,
Florian.
--
Axel T. Brunger
Investigator, Howard Hughes Medical Institute
Professor of Molecular and Cellular Physiology
Stanford University
Web: http://atb.slac.stanford.edu
Email: [EMAIL PROTECTED] Phone: +1 650-736-1031
Fax: +1 650-745-1463