CIF/STAR file support for Python
PyCIFRW provides support for reading and writing CIF (Crystallographic Information Format) files using Python. It was developed at the Australian National Beamline Facility (ANBF), run by the Australian Synchrotron Research Program (ASRP), as part of a larger project to provide CIF input/output capabilities for data collection. It is currently (Mar 2016) maintained and developed by James Hester with support from the Australian Nuclear Science and Technology Organisation (ANSTO).
The CIF 1.1 and 2.0 working specifications were used as a reference.
PyCifRW has been tested on the IUCr sample CIF trip files located at http://www.iucr.org/iucr-top/cif/developers/trip and fails or successfully reads as it is supposed to (note that ciftest5 contains characters now forbidden in CIFs).
PyCIFRW is written entirely in Python. While this makes parsing of large CIF files rather slow, it should run wherever Python runs. The latest version has been tested on Linux and Windows 7.
The source code of a C extension module is also included in the distribution. This module accelerates CIF file reading. From time to time system-dependent installation packages are generated containing precompiled versions of this module.
See file INSTALLATION
See the various files in the docs directory for details of the interface. Essentially, CIF files look like python dictionaries, with each entry in the dictionary corresponding to a data block. The blocks themselves are also dictionaries, with each data name being a single entry in the dictionary, so for example, cf[‘si_std’][‘_diffrn_meas_wavelength’] will return the value of _diffrn_meas_wavelength in the data block named si_std of the Cif file object cf.
To read in a CIF:
from CifFile import CifFile cf = CifFile.ReadCif(‘jun_01_2.cif’)
to access information in a CIF
wav = cf[‘si_std’][‘_diffrn_meas_wavelength’]
to set a value
cf[‘si_std’][‘_diffrn_meas_wavelength’] = 1.54
The “Programs” directory contains program “validate_cif.py” which validates a data files against data dictionaries. Execute this file without arguments for a help message.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size PyCifRW-4.2.1-cp35-cp35m-manylinux1_x86_64.whl (154.1 kB)||File type Wheel||Python version 3.5||Upload date||Hashes View hashes|
|Filename, size PyCifRW-4.2.1-py2.7-linux-x86_64.egg (309.1 kB)||File type Egg||Python version 2.7||Upload date||Hashes View hashes|
|Filename, size PyCifRW-4.2.1-py3.5-linux-x86_64.egg (302.2 kB)||File type Egg||Python version 3.5||Upload date||Hashes View hashes|
|Filename, size PyCifRW-4.2.1-py3.tar.gz (495.2 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
|Filename, size PyCifRW-4.2.1.tar.gz (500.4 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
Hashes for PyCifRW-4.2.1-cp35-cp35m-manylinux1_x86_64.whl
Hashes for PyCifRW-4.2.1-py2.7-linux-x86_64.egg
Hashes for PyCifRW-4.2.1-py3.5-linux-x86_64.egg