E725

READING, WRITING AND VALIDATING CIFS USING CIFTBX2 AND CYCLOPS . Herbert J. Bernstein, Bernstein + Sons, 5 Brewster Lane, Bellport, New York 11713-2803, USA and Sydney R. Hall, Crystallographic Centre, University of Western Australia, Nedlands 6009, Australia.

The basic steps needed to adapt existing Fortran applications and write new applications which will manipulate CIFs are explained. We emphasize techniques needed to make applications compatible with both DDL1 and DDL2 CIFs. We discuss validating CIFs and more general STAR documents against dictionaries.

CIFs are becoming the standard for presentation of small molecules, and the pending adoption of the mmCIF dictionary by the IUCr is encouraging increasing use of CIFs for macromolecules. It is critically important for existing applications, such as molecular display programs, to be adapted to accept small molecule and macromolecule CIFs for input and to be able to produce CIFs as output in order to ensure a common interchange format among programs. Application programmers need to become familiar with the dictionary-based definition of CIF tokens and to design their applications so that the addition of new layered dictionaries will not require a redesign of code. We use the experience in adapting the DDL1 versions of several programs to a compatible DDL1/DDL2 environment to illustrate some to the practical issues involved. We show how tools, such as the extended version of CIFtbx2, a new version of a Fortran subroutine library for programmers developing CIF applications, and CYCLOPS 2, a new version of the very effective STAR data name checking program, can be used to make the transition to CIF and between DDL1 and DDL2 more manageable.

Issues that are addressed include managing large dictionaries efficiently with the use of hash-tables, the use of layered dictionaries, the implications of categories, and the implications of the more precise data types of mmCIF.