CIFIO : Input and output CIF data

Author: Syd Hall, Crystallography Centre, University of Western Australia, Nedlands 6907, Australia.

CIFIO reads and writes CIF data to and from the Xtal binary or ascii archive file representations.

Purpose

The Crystallographic Information File (CIF) has been developed for electronic submissions to IUCr journals and databases. CIFIO converts an Xtal archive file into CIF format and vice versa. The data to be extracted from the bdf is specified by the user by entering data names into a request file cifreq. A template cifreqfile is supplied with the system but this can be copied and modified according to individual needs. CIFIO will only recognise requests for data items which have been defined by the core CIF dictionary which is supplied as the file cifdic. However, users may construct their own dictionary cifdic.locto handle local data (DO NOT edit the cifdicfile).

The generated . ciffile will contain information on all requested data items that are currently present on the archive bdf. The unsatisfied requests will be flagged with a question mark '?'. The unavailability of a specific data item may be that data has not been archived on the bdf (as a result of a prior calculation) or that Xtal does not generate this information. The user may use a standard text editor to add or amend a . ciffile, but caution must be exercised at all times in order not to corrupt the structure of the file. This may be checked by reading the .cif file with CIFIO with the dictionary checking facility on (ie. enter " cifio cifin dict")

CIFIO uses the mapping file cifmapwhich is supplied with the system. This file contains the data that enables each CIF data name to be mapped to the Xtal bdf items. The cifmapfile should never be changed and a single copy is usually kept in a globally-accessible read-only area of your directory.

CIFIO has four modes: read and write a CIF, read and write and ascii image of the Xtal archive file.

CIF Input

This is the default mode. It will cause the cif file to be read and converted into a sequence of line commands in the file . new. The file . newis automatically read and used to execute a sequence of Xtal calculations needed to create an archive bdf containing the data items in the CIF. If the dict option is set the input cif file will be checked against the dictionary files cifdic and cifdic.loc (optional).

CIF Output

Entering cifout will cause CIFIO to output the data values listed in the file cifreq . (supplied for Acta Crystallographica C submissions) to the file .cif. The following controls apply when generating a CIF.

dset n

Specifies which data set is output to cif. The default is data set 1.

qchr or nqch

This signals how the character data output by CIFIO is encapsulated. If qchr is entered character strings are bounded by single quotes. For example the description of the extinction method could appear as ' Zachariasen Gaussian'. If nqch is entered bounding quotes are not used but imbedded blanks are replaced with an underline. The above example would appear as Zachariasen_Gaussian. nqch is the default.

sfac or nsfa

The outputing of requested structure factor data is treated specially by CIFIO. This is because a user may wish to use a standard CIFREQfile for all CIFIO runs but only generate structure factor data in specific instances where they are required (note that in the future structure factor data may not be an automatic requirement for submission to IUCr journals). Entering sfac will cause the requested structure factor data as defined by the _refln_data names to output to the CIFfile. Entering nsfa , or as default, these data item requests will be ignored .

scal or nsca

The measured structure factor data (Frel, \(F^{2}\) rel and Irel) on the bdf is unscaled. These options signal CIFIO to scale, or not to scale, the measured data which is output to the CIFfile. The default is scal .

corr or ncor

The measured structure factor data (Frel, \(F^{2}\) rel and Irel) on the bdf is not corrected for extinction effects. These options signal CIFIO to correct, or not to correct, the measured data which is output to the CIFfile. The default is corr .

arcFile Output

The ciffile discussed above is designed for data communication external to the Xtal System. It contains only selected items that are required by the recipient journal, database or laboratory. CIFIO is able to read a standard CIF (which was not necessarily generated by CIFIO) and create input commands which enable this data to be stored on an Xtal bdf. However, the data on a CIF is users choice (for example, no structure factors) and this limits the universality of recreating a bdf. In other words, even an CIFIO generated ciffile is not the exact text image of the data on the archive bdf and cannot be used therefore to produce an identical copy of the original bdf.

This is where CIFIO serves a second important archiving function. The arcout signal causes an arcarchive file to be created. This is also a text file in STAR format. The arcfile differs from the a ciffile in that it contains every data item on the bdf and can be used to recreate and identical copy of that bdf.

The arcfile has a number of important applications. First, it provides for a machine independent archive file which can be stored and reused with any machine and any future version of the Xtal System. Second, it can be sent to any other site by electronic means and converted directly into an identical bdf. Third, its contents are completely self-defined and it is suitable as a communication file with other software. Fourth, because ARCis a text file, data can be examined, added to, deleted or modified with a standard text editor. The modified arccan be used to create a new modified bdf ( it goes without saying that such editing must be done with extreme caution ). No additional control options are used to output an arcfile.

arcFile Input

Setting arcin on the CIFIO line will cause the arcfile to be read and converted to an output archive bdf. This file will be identical to the bdf that was used to creat arc.

cifreqcustomization

For acentric crystal data it is possible to customize the cifreqfile in order to record the Friedel mates of the primary reflections. This is relatively easy by just replacing the existing cifreqtext:

#data_<structure> # but for xtal use the refln data is needed
in same block

loop_
_refln_index_h
_refln_index_k
_refln_index_l
_refln_F_meas
_refln_F_calc
_refln_F_sigma
_refln_F_squared_meas
_refln_F_squared_calc
_refln_F_squared_sigma
_refln_observed_status
               ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

with the new data requests:

#data_<structure> # but for xtal use the refln data is needed
in same block
# create using   CIFIO cifout sfac scal ncorr
# F_meas* values are scaled but dispersion and extinction affected
# F_cal is extinction and dispersion free, i.e. ideal kinematic.

loop_
_refln_index_h
_refln_index_k
_refln_index_l
_refln_F_meas
_refln_F_calc
_refln_F_sigma
_refln_F_meas_friedel
_refln_F_sigma_friedel
_refln_observed_status
               ?  ?  ?  ?  ?  ?  ?  ?  ?  

In doing this you should note that ordinarily, in correction mode _refln_F_meas is taken to be the dispersion and extinction corrected average of Frel and -Frel. By requesting F_meas_friedel you are signalling that you also want to output the dispersion uncorrected and thereby extinction uncorrected Friedel mate. This can differ considerably from the value of _refln_F_calc and the dispersion and extinction corrected average of Frel so the recommendation is to use the CIFIO cifout sfac scal ncorr command to do ensure both uncorrected Frel and -Frel estimates are printed and just live with the large F_calc differences.

But one could well wonder why you would actually want to do this at all since the default output using CIFIO cifout sfac scal corr is already the best estimate of the true kinematc structure factor that you're going to get. Nevertheless, it is possible.

File Assignments

  • Optionally reads the input archive bdf ( cifout and arcout modes)

  • Optionally writes an output archive bdf ( cifin and arcin modes)

  • Optionally reads a cifline file ( cifin mode)

  • Optionally reads an arcline file ( arcin mode)

  • Optionally writes a cifline file ( cifout mode)

  • Optionally writes an arcline file ( arcout mode)

  • Optionally reads the cifreqand line file ( cifout mode)

  • Optionally reads the cifmapand line file ( cifout and cifin modes)

Examples

CIFIO dict

Read the .ciffile and validate the data items against the dictionaries cifdicand cifdic.loc.

CIFIO cifo sfac ncor

Create a ciffile containing data items from the input archive bdf which are specified in the line file cifreq. Structure factor data should be included if requested in cifreq, and the measured structure facture data will be scaled but no extinction corrections applied.