https://github.com/blakeaw/pybilt
Toolkit to aid in the analysis of lipid bilayer molecular simulation trajectories.
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.8%) to scientific vocabulary
Last synced: 6 months ago
·
JSON representation
Repository
Toolkit to aid in the analysis of lipid bilayer molecular simulation trajectories.
Basic Info
- Host: GitHub
- Owner: blakeaw
- License: mit
- Language: Python
- Default Branch: master
- Size: 31.3 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
- Releases: 0
Fork of LoLab-MSM/PyBILT
Created about 6 years ago
· Last pushed over 3 years ago
https://github.com/blakeaw/PyBILT/blob/master/

# *Py*thon based lipid *BIL*ayer molecular simulation analysis *T*oolkit
------

[](LICENSE)
[](https://www.codacy.com/gh/blakeaw/PyBILT/dashboard?utm_source=github.com&utm_medium=referral&utm_content=blakeaw/PyBILT&utm_campaign=Badge_Grade)

[](https://github.com/LoLab-VU/PyBILT/releases/tag/v0.3.0)
[](https://anaconda.org/blakeaw/pybilt)
[](http://pybilt.readthedocs.io/en/latest/?badge=latest)
[](https://zenodo.org/badge/latestdoi/85123567)
------
#### PyBILT is a Python toolkit developed to analyze molecular simulation trajectories of lipid bilayers systems. The toolkit includes a variety of analyses from various lipid bilayer molecular simulation publications.
The analyses include:
* Mean Squared Displacement (MSD)
* Diffusion coefficent estimators (from MSD curves) - includes Einstein relation, linear fit, and anomalous diffusion fit.
* Area per lipid estimators
* Bilayer thickness
* Displacement Vector (flow) maps and correlations
* Deuterium order parameter
* Orientation parameters
* Mass and Electron Density Estimators
* and more!
------

------
# Install
### Core dependencies
**PyBILT** has the following core dependencies:
* [MDAnalysis](https://www.mdanalysis.org/) > 1.0
* [NumPy](http://www.numpy.org/)
* [SciPy](https://www.scipy.org/)
* [Matplotlib](https://matplotlib.org/)
* [Seaborn](https://seaborn.pydata.org/)
* [six](https://pypi.org/project/six/)
* [future](http://python-future.org/)
### Python version support
The `pybilt` package has been tested using [Anaconda Python](https://www.anaconda.com/) 3.7 and MDAnalysis=1.1.1.
### pip install
You can install the latest version of the `pybilt` package using `pip` sourced from the GitHub repo:
```
pip install -e git+https://github.com/LoLab-VU/PyBILT@v0.3.0#egg=pybilt
```
However, this will not automatically install the core dependencies. You will have to do that separately:
```
pip install MDAnalysis numpy scipy matplotlib seaborn six future
```
### conda install
First make sure you have the `conda-forge` channel in your channel list; that is the channel from which MDAnalysis is installed. You can use the following command to add it to the bottom of your channel list:
```
conda config --append channels conda-forge
```
Then you can install the `pybilt` package from the `blakeaw` Anaconda Cloud channel,
```
conda install -c blakeaw pybilt
```
The core dependencies will be automatically installed.
### Recommended additional software
The following software is not required for the basic operation of **PyBILT**, but provides extra capabilities and features when installed.
#### pytest
The `pybilt` test suite is designed to be run with [pytest](https://docs.pytest.org/en/latest/), so if you want to run the tests then you will need to install pytest.
#### Jupyter
**PyBILT** comes with a set of [Jupyter IPython notebooks](./jupyter_notebooks) which supplement the doc pages. If you want to run these notebooks locally then you will need to intall [Jupyter](https://jupyter.org/) (or at least the IPython kernel).
Note that the notebooks have not been updated for Python 3 yet.
#### sphinx, sphinx_rtd_theme, and recommonmark
If you want to build local versions of doc pages install the following additional packages:
* [sphinx](http://www.sphinx-doc.org/en/master/)
* [sphinx_rtd_theme](https://sphinx-rtd-theme.readthedocs.io/en/stable/)
* [recommonmark](https://recommonmark.readthedocs.io/en/latest/)
------
# Documentation and Usage
## Quick overview of PyBILT
**PyBILT** is composed of 2 primary analysis packages:
* bilayer_analyzer -- The [bilayer_analyzer](http://pybilt.readthedocs.io/en/latest/pybilt.bilayer_analyzer.html#module-pybilt.bilayer_analyzer.bilayer_analyzer) is an analysis package that
is designed to analyze (quasi) planar lipid bilayer
systems. It is accessed through the BilayerAnalyzer
object, which can be imported via: ```from
pybilt.bilayer_analyzer import BilayerAnalyzer```. The
BilayerAnalyzer features automatic dynamic unwrapping of
coordinates and leaflet detection. The bilayer_analyzer
works on a multiple-representation model, whereby the
various analyses are conducted using different
representations of the bilayer lipids. Bilayer lipids
can be represented using the following four
representations:
* All atom
* Centers-of-mass -- Each lipid (or selection of atoms from each lipid) is reduced to a
center-of-mass.
* Grid (or lipid grid) -- The lipids are mapped to two-dimensional grids (one for each leaflet) in the
style of the [GridMAT-MD method](http://www.bevanlab.biochem.vt.edu/GridMAT-MD/)
* Vectors - Each lipid is converted to a vector representation using select reference atoms (or sets of reference atoms) that are used to compute the head and tail of the vector; e.g., a lipid tail atom to lipid head atom, or P-N vectors.
The bilayer_analyzer features various types of analyses and the use of different
representations is handled internally based the requirements and design of each
analysis type. See the [documentation](https://pybilt.readthedocs.io/en/latest/ba_analyses.html) for list of analyses that can be added to intances of the BilayerAnalyzer.
* [mda_tools](http://pybilt.readthedocs.io/en/latest/pybilt.mda_tools.html) -- This package includes various modules and functions for directly
analyzing and operating on MDAnalysis trajectories and objects.
e.g. functions to compute density profiles.
Additional packages include:
* [lipid_grid](http://pybilt.readthedocs.io/en/latest/pybilt.lipid_grid.html) -- The lipid grid module can be used construct "lipid grid" grid
representations of lipid bilayers, which can be used to
accurately estimate quantities such as area per lipid.
* [com_trajectory](http://pybilt.readthedocs.io/en/latest/pybilt.com_trajectory.html) -- This module can be used to construct a center of mass
trajectory (COMTraj) out of an MDAnalysis trajectory,
which is useful for computing quantities like mean squared
displacement. The COMTraj is designed to work with bilayers.
* [plot_generation](http://pybilt.readthedocs.io/en/latest/pybilt.plot_generation.html) -- This module has several pre-written plotting functions
(using matplotlib and seaborn) for some of the properties
that can be computed from functions in the other modules.
e.g. mean squared displacement and area per lipid.
## Docs
Visit the **PyBILT** docs on [Read the Docs](http://pybilt.readthedocs.io/en/latest/index.html).
Docs can also be viewed offline/locally by opening the [PyBILT/docs/build/html/index.html](docs/build/html/index.html) file from the
repo in a web browser; however, this build of the docs is not updated often.
## Jupyter IPython notebooks
In addition
to the Docs, there are currently a few Jupyter IPython
[notebooks](jupyter_notebooks) that provide some examples and show some basic
usage (these have not been updated/tested for/with python 3 yet); updates and more of these are in the pipeline.
------
# Contact
To report problems or bugs please open a
[GitHub Issue](https://github.com/LoLab-VU/PyBILT/issues). Additionally, any
comments, suggestions, or feature requests for **PyBILT** can also be submitted as
a
[GitHub Issue](https://github.com/LoLab-VU/PyBILT/issues).
------
# Contributing
If you would like to contribute directly to **PyBILT**'s development please
1. Fork the repo (https://github.com/LoLab-VU/PyBILT/fork)
2. Create a new branch for your feature (git checkout -b feature/foo_bar)
3. Create test code for your feature
4. Once your feature passes its own test, run all the tests using [pytest](https://docs.pytest.org/en/latest/) (python -m pytest)
5. Once your feature passes all the tests, commit your changes (git commit -am 'Add the foo_bar feature.')
6. Push to the branch (git push origin feature/foo_bar)
7. Create a new Pull Request
------
# License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details
------
# Acknowledgments
* A special thanks to James Pino (https://github.com/JamesPino) for his inciteful comments and suggestions that have helped improve the quality of this code, and thanks to him for pointing out some very useful coding tools.
* Thanks to my advisors, Carlos F. Lopez and Arvind Ramanathan, for catalyzing this project and for providing me with the space and means to pursue it.
------
# Citing
If you use the **PyBILT** software as a part of your research, please cite the its use. You can export the **PyBILT** software citation in your preferred format from its [Zenodo DOI](https://doi.org/10.5281/zenodo.3426128) entry.
Also, please cite the following references as appropriate for scientific/research software used with/via **PyBILT**:
#### MDAnalysis
See: https://www.mdanalysis.org/pages/citations/
#### Packages from the SciPy ecosystem
These include NumPy, SciPy, and Matplotlib for which references can be obtained from:
https://www.scipy.org/citing.html
#### seaborn
Reference can be exported from the [seaborn Zeondo DOI entry](https://doi.org/10.5281/zenodo.592845)
#### Jupyter
See: https://github.com/jupyter/jupyter/issues/190
#### IPython
See: https://ipython.org/citing.html
------
Owner
- Name: Blake A. Wilson
- Login: blakeaw
- Kind: user
- Location: Texas, USA
- Website: https://blakeaw.github.io/
- Repositories: 4
- Profile: https://github.com/blakeaw
Computational research science in physical chemistry, systems biology, and nanomaterials bioengineering.