/python-ihm

Python package for handling IHM mmCIF and BinaryCIF files

Primary LanguagePythonMIT LicenseMIT

DOI docs pypi package Linux Build Status Windows Build Status codecov

This is a Python package to assist in handling mmCIF and BinaryCIF files compliant with the integrative/hybrid modeling (IHM) extension. It works with Python 2.6 or later (Python 3 is fully supported).

Please see the documentation or some worked examples for more details.

Installation with pip

pip install ihm

Note that a C extension module is built for faster parsing of mmCIF files. This requires that your system has a C compiler. If you don't want to build the C extension module, install with pip install ihm --install-option="--without-ext".

Installation from source code

To build and install from a clone of the GitHub repository, run

python setup.py build
python setup.py install

Note that a C extension module is built for faster parsing of mmCIF files. This requires that your system has a C compiler and SWIG. If either of these components are missing, you can choose to build without the extension by adding --without-ext to both setup.py command lines above.

If you want to read or write BinaryCIF files, you will also need the Python msgpack package.

Testing

There are a number of testcases in the test directory. Each one can be run like a normal Python script to test the library. They can also be all run at once using nose or pytest. They will also test the C extension module if it is first built with python setup.py build_ext --inplace.