msmhelper

msmhelper: A Python package for Markov state modeling of protein dynamics - Published in JOSS (2023)

https://github.com/moldyn/msmhelper

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 13 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org, acs.org, joss.theoj.org
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
    Organization moldyn has institutional domain (www.moldyn.uni-freiburg.de)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Mathematics Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation ·

Repository

Helper function for Markov State Models

Basic Info
Statistics
  • Stars: 12
  • Watchers: 1
  • Forks: 3
  • Open Issues: 1
  • Releases: 7
Created about 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Citation Zenodo

README.md

DocsFeaturesInstallationFAQ

msmhelper

This is a package with helper functions to work with discrete state trajectories and Markov state models. In contrast to pyemma and msmbuilder, it focuses on Markov state modeling based on an already existing state trajectory. Therefore, neither dimensionality reduction methods nor clustering methods are included. For a methodological overview, we recommend Sittel and Stock.

This package is published in:

msmhelper: A Python Package for Markov State Modeling of Protein Dynamics,
D. Nagel, and G. Stock,
J. Open Source Soft. 2023 8 (85), 5339,
doi: 10.21105/joss.05339

We kindly ask you to cite this article in case you use this software package for published works.

Features

  • Simple usage with sleek function-based API
  • High performance due to numba-optimized source code, checkout the benchmark comparing to PyEMMA
  • Documentation including tutorials
  • Powerful command-line interface (CLI) to create publication-ready figures
  • Supports Python 3.8-3.11

Implemented Key Functionalities

  • Hummer-Szabo projection of optimal dimensionality reduction by Hummer and Szabo 2014
  • Dynamical coring by Nagel et al. 2019
  • Fast extraction of pathways and MSM-based prediction of pathways based on the definition of Nagel et al. 2020
  • Fast calculation of waiting times based on both, state trajectories and MSMs
  • Blazing fast Chapman-Kolmogorov test implementation
  • Entropy-based similarity measure to compare different state discretizations, this method will be published soon in Nagel 2023
  • Contact representation by Nagel et al. 2023 for a compact structural representation of the states
  • Command-line interface providing both, visualization and analysis methods
  • Provide (non-reversible) transition matrix of all states (corresponds in pyemma to connectivity='none', 'all' which will (probably) never be implemented)

Getting started

Installation

The package is called msmhelper and is available via PyPI or conda. To install it, simply call: bash python3 -m pip install --upgrade msmhelper or conda install -c conda-forge msmhelper

or for the latest dev version ```bash

via ssh key

python3 -m pip install git+ssh://git@github.com/moldyn/msmhelper.git

or via password-based login

python3 -m pip install git+https://github.com/moldyn/msmhelper.git ```

Documentation and Tutorials

The documentation serves as a comprehensive resource, offering a broad range of information such as general guidelines, API code references, and command line tool details. It also includes a Frequently Asked Questions (FAQ) section and outlines the procedures for contributing to the project. Moreover, a suite of tutorials is available, covering all the primary functionalities of the package. These tutorials are provided in the form of Jupyter notebooks. You can easily obtain these notebooks either directly from the docs/tutorials directory on our GitHub repository or by clicking the download buttons available on each tutorial page within the documentation.

If you prefer, you can compile the documentation on your local machine by executing the following commands:

```bash

install all additional dependencies

python -m pip install msmhelper[docs]

build the docs inside the site directory

python -m mkdocs build ```

Shell Completion

Using the bash, zsh or fish shell click provides an easy way to provide shell completion, checkout the docs. In the case of bash you need to add following line to your ~/.bashrc bash eval "$(_MSMHELPER_COMPLETE=bash_source msmhelper)" In general one can call the module directly by its entry point $ msmhelper or by calling the module $ python -m msmhelper. The latter method is preferred to ensure using the desired python environment. For enabling the shell completion, the entry point needs to be used.

Usage

This package offers either a command line interface to run standalone analysis and to create commonly-used figures, or its much more powerful API can be used to embedded it into an existing Python workflow. Check out the documentation for an overview over all modules and some example workflows, and for some examples see the following section. ```python import msmhelper as mh

open text files

traj = mh.openmicrostates(filename, limitsfile)

create markov state model

tmat, states = mh.estimatemarkovmodel(traj, lagtime=1) ... ```

Hummer-Szabo Projection

In the following we show some sample figures produced directly with the command line tools. For more information on that, there is a tutorial explaining the methods more in depth. In general we can see, that applying the HS-projection removes most projection artifacts based on coarse-graining many microstates into a few macrostates.

| Method | MSM | Hummer-Szabo MSM | | :---: | :---: | :---: | | Implied Timescales | Implied Timescales | Implied Timescales | | Chapman-Kolmogorov test | Chapman-Kolmogorov Test | Chapman-Kolmogorov Test | | Waiting Time Distributions | waiting time distribution | waiting time distribution | | Waiting Times | waiting times | waiting times | | Contact Representation | contact representation | |

For more examples checkout the tutorials.

Roadmap

  • Add Buchete-Hummer test as alternative for the Chapman-Kolmogorov test.
  • Add a numba implementation of a parallelized autocorrelation function estimation.
  • Use static type hints together with beartype

Owner

  • Name: Biomolecular Dynamics
  • Login: moldyn
  • Kind: organization
  • Location: Freiburg

Group of Prof. Dr. G. Stock, University of Freiburg

JOSS Publication

msmhelper: A Python package for Markov state modeling of protein dynamics
Published
May 24, 2023
Volume 8, Issue 85, Page 5339
Authors
Daniel Nagel ORCID
Biomolecular Dynamics, Institute of Physics, Albert-Ludwigs-Universität Freiburg, 79104 Freiburg, Germany
Gerhard Stock ORCID
Biomolecular Dynamics, Institute of Physics, Albert-Ludwigs-Universität Freiburg, 79104 Freiburg, Germany
Editor
Lucy Whalley ORCID
Tags
markov state model protein dynamics MD

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Nagel
  given-names: Daniel
  orcid: "https://orcid.org/0000-0002-2863-2646"
- family-names: Stock
  given-names: Gerhard
  orcid: "https://orcid.org/0000-0002-3302-3044"
doi: 10.5281/zenodo.7957966
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Nagel
    given-names: Daniel
    orcid: "https://orcid.org/0000-0002-2863-2646"
  - family-names: Stock
    given-names: Gerhard
    orcid: "https://orcid.org/0000-0002-3302-3044"
  date-published: 2023-05-24
  doi: 10.21105/joss.05339
  issn: 2475-9066
  issue: 85
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5339
  title: "msmhelper: A Python package for Markov state modeling of
    protein dynamics"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05339"
  volume: 8
title: "msmhelper: A Python package for Markov state modeling of protein
  dynamics"

GitHub Events

Total
  • Watch event: 4
Last Year
  • Watch event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 608
  • Total Committers: 5
  • Avg Commits per committer: 121.6
  • Development Distribution Score (DDS): 0.148
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
braniii d****l@p****m 518
moldyn-nagel d****l@p****e 75
gd25 g****5@b****t 10
moldyn-diez 5****o 4
LGTM Migrator l****r 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 10
  • Total pull requests: 36
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 9 days
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 1.6
  • Average comments per pull request: 0.47
  • Merged pull requests: 35
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • braniii (4)
  • yuxuanzhuang (3)
  • lorenzo-rovigatti (1)
  • yardasol (1)
Pull Request Authors
  • braniii (34)
  • gegabo (2)
  • lgtm-com[bot] (1)
Top Labels
Issue Labels
bug (1)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 50 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 11
  • Total maintainers: 1
pypi.org: msmhelper

Helper functions for Markov State Models.

  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 50 Last month
Rankings
Dependent packages count: 6.6%
Downloads: 14.6%
Average: 18.9%
Forks count: 19.6%
Stargazers count: 23.3%
Dependent repos count: 30.6%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: msmhelper
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Average: 51.2%
Dependent packages count: 51.2%
Stargazers count: 58.4%
Forks count: 61.1%
Last synced: 6 months ago

Dependencies

extra-requirements.txt pypi
  • flake8 *
  • pdoc3 *
  • pytest *
  • pytest-benchmark *
  • pytest-cov *
  • pytest-rerunfailures *
requirements.txt pypi
  • beartype >=0.8.1
  • decorit *
  • numba *
  • numpy >=1.21.0
  • pandas *
  • scipy *
setup.py pypi
  • decorit *
  • numba *
  • numpy *
  • pandas *
  • scipy *
.github/workflows/codeql.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/pages.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/pytest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite