OpenMiChroM

March 25, 2025 ยท View on GitHub

|Citing OpenMiChroM| |PyPI| |conda-forge| |ReadTheDocs| |NDB| |Update| |Downloads| |GitHub-Stars|

.. |Citing OpenMiChroM| image:: https://img.shields.io/badge/cite-OpenMiChroM-informational :target: https://open-michrom.readthedocs.io/en/latest/Reference/citing.html .. |PyPI| image:: https://img.shields.io/pypi/v/OpenMiChroM.svg :target: https://pypi.org/project/OpenMiChroM/ .. |conda-forge| image:: https://img.shields.io/conda/vn/conda-forge/OpenMiChroM.svg :target: https://anaconda.org/conda-forge/OpenMiChroM .. |ReadTheDocs| image:: https://readthedocs.org/projects/open-michrom/badge/?version=latest :target: https://open-michrom.readthedocs.io/en/latest/ .. |NDB| image:: https://img.shields.io/badge/NDB-Nucleome%20Data%20Bank-informational :target: https://ndb.rice.edu/ .. |Update| image:: https://anaconda.org/conda-forge/openmichrom/badges/latest_release_date.svg :target: https://anaconda.org/conda-forge/openmichrom .. |Downloads| image:: https://anaconda.org/conda-forge/openmichrom/badges/downloads.svg :target: https://anaconda.org/conda-forge/OpenMiChroM .. |GitHub-Stars| image:: https://img.shields.io/github/stars/junioreif/OpenMiChroM.svg?style=social :target: https://github.com/junioreif/OpenMiChroM

Documentation <https://open-michrom.readthedocs.io/>__ | Install <https://open-michrom.readthedocs.io/en/latest/GettingStarted/installation.html>__ | Tutorials <https://open-michrom.readthedocs.io/en/latest/Tutorials/Tutorial_Single_Chromosome.html>__ | Forum <https://groups.google.com/g/open-michrom>__

Overview

OpenMiChroM <https://www.sciencedirect.com/science/article/pii/S0022283620306185>_ is a Python library for performing chromatin dynamics simulations and analyses. OpenMiChroM uses the OpenMM <http://openmm.org/>_ Python API employing the MiChroM (Minimal Chromatin Model) <https://www.pnas.org/content/113/43/12168>_ energy function. The chromatin dynamics simulations generate an ensemble of 3D chromosomal structures that are consistent with experimental Hi-C maps. OpenMiChroM also allows simulations of a single or multiple chromosome chains using high-performance computing on different platforms (GPUs and CPUs). It is a highly flexible framework that can be extended for chromatin modeling and simulations across different species and for general biomolecular simulations.

.. image:: https://raw.githubusercontent.com/junioreif/OpenMiChroM/main/docs/source/images/OpenMiChroM_intro_small.jpg :align: center :height: 300px

The chromatin dynamics simulations can be performed for different human cell lines, cell phases (interphase to metaphase), and various organisms from DNAzoo <https://www.dnazoo.org/>. Chromatin subcompartment annotations are available at the NDB (Nucleome Data Bank) <https://ndb.rice.edu/>. The OpenMiChroM package accepts the chromatin sequence of compartments and subcompartments as input to create and simulate a chromosome polymer model. Examples of running the simulations and generating in silico Hi-C maps can be found here <https://open-michrom.readthedocs.io/en/latest/Tutorials/Tutorial_Single_Chromosome.html>_.

.. image:: https://raw.githubusercontent.com/junioreif/OpenMiChroM/main/docs/source/images/A549_NDB.jpg :align: center :height: 300px

Usage

The following code snippet shows how to generate a single chromosome polymer model and run a chromatin dynamics simulation using OpenMiChroM:

::

  from OpenMiChroM.ChromDynamics import MiChroM
  sim = MiChroM(name='stomach_GRCh38', temperature=1.0, timeStep=0.01)
  sim.setup(platform="cuda")
  sim.saveFolder('stomach_GRCh38_chr10_simulation')
  sim.buildClassicMichrom(ChromSeq='inputs/stomach_GRCh38.bed', chromosome='chr10')

  sim.createReporters(statistics=True, traj=True, outputName=None, trajFormat="cndb", energyComponents=True, interval=10**3)
  sim.run(nsteps=10**5, report=True, interval=10**4)

Resources

  • Reference Documentation <https://open-michrom.readthedocs.io/>__: Examples, tutorials, and class details.
  • Installation Guide <https://open-michrom.readthedocs.io/en/latest/GettingStarted/installation.html>__: Instructions for installing OpenMiChroM.
  • GitHub repository <https://github.com/junioreif/OpenMiChroM/>__: Download the OpenMiChroM source code.
  • Issue tracker <https://github.com/junioreif/OpenMiChroM/issues>__: Report issues/bugs or request features.

Citation

When using OpenMiChroM for chromatin dynamics simulations or analyses, please use this citation <https://open-michrom.readthedocs.io/en/latest/Reference/citing.html>.
We also thank Polychrom <https://github.com/open2c/polychrom>
, where part of this code was inspired. You can use this citation <https://zenodo.org/records/3579473>_.

Installation

The OpenMiChroM library can be installed via pip <https://pypi.org/project/OpenMiChroM/>, conda <https://conda.io/projects/conda/>, or compiled from source.

Install via pip

The code below will install OpenMiChroM from PyPI:

::

pip install OpenMiChroM

.. note::

**OpenMiChroM** relies on the `OpenMM <http://openmm.org/>`_ API to run the chromatin dynamics simulations.

OpenMM is now available as a pip-installable package. You can install it using pip openmm[cuda12] to iinstall to use with GPU's or openmm to install for CPU's only:

.. code-block:: bash

    pip install openmm[cuda12]

Alternatively, if you prefer to use conda, install OpenMM from the `conda-forge channel <https://conda-forge.org/>`_ with:

.. code-block:: bash

    conda install -c conda-forge openmm

Install via conda

If you prefer using conda, you can install OpenMiChroM from conda-forge <https://anaconda.org/conda-forge/OpenMiChroM>__ with the following command:

::

conda install -c conda-forge OpenMiChroM

.. hint::

Sometimes, the installation via conda may appear to be stuck. If this happens, update conda/anaconda using the command below and try installing **OpenMiChroM** again.

::

conda update --prefix /path/to/anaconda3/ anaconda

Required Libraries

The following libraries are required for installing OpenMiChroM:

  • Python <https://www.python.org/>__ (>=3.6)
  • NumPy <https://www.numpy.org/>__ (>=1.14)
  • SciPy <https://www.scipy.org/>__ (>=1.5.0)
  • h5py <https://www.h5py.org/>__ (>=2.0.0)
  • pandas <https://pandas.pydata.org/>__ (>=1.0.0)
  • scikit-learn <https://scikit-learn.org/>__ (>=0.20.0)