OK, here's my first attempt at an automatic file converter. It's not
complete, but I think it should do the majority of files. What it does:
1. Reads a non-anomalous CNS file, either with or without labels in the
main data block. There must be a complete set of 'DECL' lines at the
beginning of the file. In other words, I think it will work for genuine
CNS files, but not for files generated by mtz2various.
2. Make intelligent guesses about the column types of all the columns in
the file. Translate all recognized columns (including
F,I,sigF,sigI,E,FOM,ABCD) to MTZ columns.
3. Make a new FreeR_flag column, with inverted 1/0 values.
4. Copy all the data into the default CCP4 reciprocal ASU, shifting
phases and ABCD coeffs as required.
There are several bits of functionality missing, which I will add when I
have time. (They are in the design but implementation is incomplete):
1. Completeing the data to insert lines for unobserved reflections.
2. Handling anomalous data.
3. Generating a full set of free flags (0...n rather than 0...1).
4. Getting the right answer when CNS and CCP4 use different spacegroup
settings.
5. Getting the cell and spacegroup from a PDB file.
Usage is very simple, e.g.
~/clipper20/examples/cns2mtz -cnsin test.hkl -cell 50.9,50.9,121.4
-spacegroup 96
~/clipper20/examples/cns2mtz -cnsin test.hkl -cell "50.9 50.9 121.4
90 90 90" -spacegroup "P 43 21 2"
x86 Linux binary available from here:
http://www.ysbl.york.ac.uk/~cowtan/cns2mtz/cns2mtz.html
|