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

Reply via email to