msmhelper
msmhelper: A Python package for Markov state modeling of protein dynamics - Published in JOSS (2023)
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
Repository
Helper function for Markov State Models
Basic Info
- Host: GitHub
- Owner: moldyn
- License: bsd-3-clause
- Language: Python
- Default Branch: main
- Homepage: https://moldyn.github.io/msmhelper
- Size: 9.64 MB
Statistics
- Stars: 12
- Watchers: 1
- Forks: 3
- Open Issues: 1
- Releases: 7
Metadata Files
README.md
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 |
|
|
| Chapman-Kolmogorov test |
|
|
| Waiting Time Distributions |
|
|
| Waiting Times |
|
|
| 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
- Website: http://www.moldyn.uni-freiburg.de/index.html
- Twitter: MolDynFR
- Repositories: 7
- Profile: https://github.com/moldyn
Group of Prof. Dr. G. Stock, University of Freiburg
JOSS Publication
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
Top Committers
| Name | 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
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.
- Homepage: https://github.com/moldyn/msmhelper
- Documentation: https://moldyn.github.io/msmhelper
- License: BSD-3-Clause License
-
Latest release: 1.1.1
published over 2 years ago
Rankings
Maintainers (1)
conda-forge.org: msmhelper
- Homepage: https://github.com/moldyn/msmhelper
- License: BSD-3-Clause
-
Latest release: 0.6.2
published over 3 years ago
Rankings
Dependencies
- flake8 *
- pdoc3 *
- pytest *
- pytest-benchmark *
- pytest-cov *
- pytest-rerunfailures *
- beartype >=0.8.1
- decorit *
- numba *
- numpy >=1.21.0
- pandas *
- scipy *
- decorit *
- numba *
- numpy *
- pandas *
- scipy *
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- actions/checkout v3 composite
- actions/setup-python v3 composite
- pypa/gh-action-pypi-publish release/v1 composite
