Skip to content

Commit eca940c

Browse files
authored
README and docs update #275
2 parents 897711f + 90ce7e7 commit eca940c

File tree

6 files changed

+105
-78
lines changed

6 files changed

+105
-78
lines changed

README.md

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,46 +27,54 @@
2727
PySAGES (Python Suite for Advanced General Ensemble Simulations) is a Python
2828
implementation of [SSAGES](https://ssagesproject.github.io) with support for GPUs.
2929

30-
**NOTICE**: This is in early stages of development. Expect breaking changes.
31-
3230
## Installation
3331

34-
Currently, there is only support for
35-
[HOOMD-blue](https://glotzerlab.engin.umich.edu/hoomd-blue) and
36-
[OpenMM](http://openmm.org/), but gradual support for other molecular dynamics engines is
37-
planned (for instance, for all engines already supported by the original SSAGES).
32+
PySAGES currently supports [HOOMD-blue](https://glotzerlab.engin.umich.edu/hoomd-blue),
33+
[LAMMPS](https://www.lammps.org), [ASE](https://wiki.fysik.dtu.dk/ase/index.html), and
34+
[OpenMM](https://openmm.org). We plan to add support for other engines that have a python
35+
API, including those supported by the original SSAGES.
3836

39-
You first need to install one of the following plugins depending on your molecular
40-
dynamics engine:
37+
Before installing PySAGES, you need to install one of the following plugins, depending on
38+
your molecular dynamics engine of choice:
4139

42-
- For HOOMD-blue visit [HOOMD DLPack Plugin](https://github.com/SSAGESLabs/hoomd-dlext).
43-
- For OpenMM go to [OpenMM DLPack Plugin](https://github.com/SSAGESLabs/openmm-dlext).
40+
- [DLPack Plugin for HOOMD-blue](https://github.com/SSAGESLabs/hoomd-dlext)
41+
- [DLPack Plugin for OpenMM](https://github.com/SSAGESLabs/openmm-dlext)
42+
- [DLPack Plugin for LAMMPS](https://github.com/SSAGESLabs/lammps-dlext)
43+
- No plugin needed for ASE
4444

45-
PySAGES also depends on [JAX](https://github.com/google/jax/), follow their installation
46-
guide to set it up. _NOTE:_ make sure you have jaxlib installed before using PySAGES.
47-
Depending on your local setup, you will have to install the jaxlib CPU version or the CUDA compatible flavor.
45+
You also need to install [JAX](https://github.com/google/jax), a library for
46+
high-performance numerical computing. Follow their installation guide and make sure you
47+
have it installed before using PySAGES. Depending on your local setup, you may need
48+
to install the CPU version or the CUDA compatible version.
4849

49-
To test GPU support HOOMD-blue, HOOMD-dlext and JAX need to be built or installed with
50-
CUDA support.
50+
For GPU support, JAX and any backend (HOOMD-blue, LAMMPS, or OpenMM) need to be built or
51+
installed with CUDA support.
5152

52-
Our installation tutorial on Google Colab enable you to see how PySAGES,
53-
HOOMD-blue and OpenMM can be built and installed into such environment.
54-
[![Install Env](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/SSAGESLabs/PySAGES/blob/main/examples/Install_PySAGES_Environment.ipynb)
53+
You can follow our installation tutorial on Google Colab to see how PySAGES, HOOMD-blue,
54+
and OpenMM can be built and installed in such an environment.
55+
[![Colab Badge]][Install Notebook]
5556

5657
## Usage
5758

58-
PySAGES provide a straightforward interface to setup Collective Variables and Enhanced
59-
Sampling methods in your MD simulations. See the [documentation](https://pysages.readthedocs.io/en/latest/) to learn more.
59+
PySAGES provides a straightforward interface to set up collective variables and enhanced
60+
sampling methods in your MD simulations. See the
61+
[documentation](https://pysages.readthedocs.io/en/latest) to learn more.
6062

61-
We provide ready-to-go examples for common methods.
62-
Checkout out the [examples](examples/) subfolder to look at different script and notebook examples.
63-
These include pre-set simulations and a tutorial on how to install PySAGES along with the supported MD engines.
63+
We provide ready-to-go examples for common methods. Check out the [examples](examples/)
64+
subfolder to look at different script and notebook examples. These include pre-set
65+
simulations and a tutorial on how to install PySAGES along with the supported MD engines.
6466

6567
## Development
6668

67-
We believe in good software engineering and collaboration.
68-
As an open-source software we welcome all contributions.
69-
To ease collaboration we use [trunk](https://trunk.io) as a development tool free for open-source software.
70-
This includes version-checked linters that can be run automatically.
71-
We ship a launcher for trunk with this repo `./trunk`, no installation required.
72-
For details about how to use `./trunk fmt` to format existing code into this style and `./trunk check` to verify a consistent code style, check out the trunk documentation [page](https://docs.trunk.io/docs).
69+
We believe in good software engineering and collaboration. We welcome all contributions.
70+
To ease collaboration, we use [trunk](https://trunk.io) as a development tool free for
71+
open-source software. This includes version-checked linters that can be run automatically.
72+
We ship a launcher for trunk with this repo: `./trunk`, no installation required. For
73+
details about how to use `./trunk fmt` to format existing code into this style and
74+
`./trunk check` to verify a consistent code style, check out the [trunk documentation
75+
page](https://docs.trunk.io/docs).
76+
77+
<!-- References -->
78+
79+
[Colab Badge]: https://colab.research.google.com/assets/colab-badge.svg
80+
[Install Notebook]: https://colab.research.google.com/github/SSAGESLabs/PySAGES/blob/main/examples/Install_PySAGES_Environment.ipynb

docs/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
furo
22
jaxlib
33
myst-parser
4+
setuptools-scm
45
sphinx
56
sphinx-copybutton
67
sphinx-design

docs/source/conf.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# list see the documentation:
55
# https://www.sphinx-doc.org/en/master/usage/configuration.html
66

7+
from setuptools_scm import get_version
8+
79
# -- Path setup --------------------------------------------------------------
810

911
# If extensions (or modules to document with autodoc) are in another directory,
@@ -24,8 +26,7 @@
2426
author = "PySAGES Team (Pablo Zubieta, Ludwig Schneider, Gustavo Pérez-Lemus, et al.)"
2527

2628
# The full version, including alpha/beta/rc tags
27-
release = "0.2.0"
28-
version = "0.2.0"
29+
release = version = get_version(root="../..")
2930

3031
# -- General configuration ---------------------------------------------------
3132

@@ -62,6 +63,7 @@
6263

6364
html_logo = "_static/pysages-bottom.svg"
6465
html_show_sphinx = False
66+
html_title = "PySAGES documentation"
6567

6668
# The theme to use for HTML and HTML Help pages. See the documentation for
6769
# a list of builtin themes.

docs/source/index.md

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!--
2-
You can adapt this file completely to your liking, but it
3-
should at least contain the root ```{toctree}``` block.
2+
You can adapt this file completely to your liking, but it should contain
3+
the root ```{toctree}``` block.
44
-->
55

66
# Python Suite for Advanced General Ensemble Simulations
@@ -12,9 +12,9 @@ should at least contain the root ```{toctree}``` block.
1212
:padding: 0
1313
1414
```{grid-item}
15-
[![CI]](https://github.com/SSAGESLabs/PySAGES/actions/workflows/ci.yml) &nbsp;
16-
[![Docker CI]](https://github.com/SSAGESLabs/PySAGES/actions/workflows/docker-ci.yml) &nbsp;
17-
[![Trunk]](https://github.com/SSAGESLabs/PySAGES/actions/workflows/trunk.yml)
15+
[![CI Badge]](https://github.com/SSAGESLabs/PySAGES/actions/workflows/ci.yml) &nbsp;
16+
[![Docker CI Badge]](https://github.com/SSAGESLabs/PySAGES/actions/workflows/docker-ci.yml) &nbsp;
17+
[![Trunk Badge]](https://github.com/SSAGESLabs/PySAGES/actions/workflows/trunk.yml)
1818
```
1919
````
2020

@@ -42,12 +42,12 @@ this [interactive introduction][Intro] with PySAGES. Even better, PySAGES alread
4242
an extensible framework to compute collective variables and to perform enhanced-sampling
4343
MD simulations to discover reaction pathways and estimate free energies. Most research
4444
objectives are achievable by using these implemented collective variables and methods.
45-
PySAGES currently supports automatically connecting these methods to [HOOMD-blue] and
46-
[OpenMM]. Both engines offer a python interface to the user and implement the simulation
47-
on GPUs for best performance. PySAGES interacts with both backends directly on the GPU
48-
memory; copying between GPU and host memory is not required. This approach allows biased
49-
simulations without slowing the backend simulation engines down. PySAGES still implements
50-
all methods and collective variables as pure python for access and modification.
45+
PySAGES currently supports automatically connecting these methods to [ASE], [HOOMD-blue],
46+
[LAMMPS], and [OpenMM]. PySAGES communicates with these backends without copying data
47+
between GPU and host memory, except for ASE, which does not support GPU calculations
48+
directly. This approach allows biased simulations without slowing the backend simulation
49+
engines down. PySAGES still implements all methods and collective variables in pure python
50+
for access and modification.
5151

5252
## Indices and tables
5353

@@ -66,9 +66,13 @@ mpi
6666
package-pysages
6767
```
6868

69-
[CI]: https://github.com/SSAGESLabs/PySAGES/actions/workflows/ci.yml/badge.svg?branch=main
70-
[Docker CI]: https://github.com/SSAGESLabs/PySAGES/actions/workflows/docker-ci.yml/badge.svg?branch=main
71-
[Trunk]: https://github.com/SSAGESLabs/PySAGES/actions/workflows/trunk.yml/badge.svg?branch=main
69+
<!-- References -->
70+
71+
[CI Badge]: https://github.com/SSAGESLabs/PySAGES/actions/workflows/ci.yml/badge.svg?branch=main
72+
[Docker CI Badge]: https://github.com/SSAGESLabs/PySAGES/actions/workflows/docker-ci.yml/badge.svg?branch=main
73+
[Trunk Badge]: https://github.com/SSAGESLabs/PySAGES/actions/workflows/trunk.yml/badge.svg?branch=main
7274
[Intro]: https://colab.research.google.com/github/SSAGESLabs/PySAGES/blob/main/examples/Advanced_Sampling_Introduction.ipynb
75+
[ASE]: https://wiki.fysik.dtu.dk/ase/index.html
7376
[HOOMD-blue]: https://glotzerlab.engin.umich.edu/hoomd-blue
77+
[LAMMPS]: https://www.lammps.org
7478
[OpenMM]: https://openmm.org

docs/source/installation.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Installation
2+
3+
The dependencies for a PySAGES installation can change based on your desired simulation
4+
backend engine. Depending on your system setup, it may be necessary to reinstall the
5+
simulation backend, especially if you do not have write permission for your current
6+
installation. On top of the current installation, it is required that you install a
7+
plugin that connects PySAGES with the simulation engine:
8+
9+
- [DLPack Plugin for HOOMD-blue](https://github.com/SSAGESLabs/hoomd-dlext)
10+
- [DLPack Plugin for OpenMM](https://github.com/SSAGESLabs/openmm-dlext)
11+
- [DLPack Plugin for LAMMPS](https://github.com/SSAGESLabs/lammps-dlext)
12+
- No plugin needed for ASE
13+
14+
You also need to install [JAX](https://github.com/google/jax), a library for
15+
high-performance numerical computing. Follow their installation guide and make sure you
16+
have it installed before using PySAGES. Depending on your local setup, you may need
17+
to install the CPU version or the CUDA compatible version.
18+
19+
For GPU support, JAX and any backend (HOOMD-blue, LAMMPS, or OpenMM) need to be built or
20+
installed with CUDA support.
21+
22+
Once the installation requirements are satisfied, PySAGES can be installed with `pip`:
23+
24+
```shell
25+
pip install git+https://github.com/SSAGESLabs/PySAGES.git
26+
```
27+
28+
or
29+
30+
```shell
31+
git clone https://github.com/SSAGESLabs/PySAGES.git
32+
cd PySAGES
33+
pip install .
34+
```
35+
36+
For the latest version of PySAGES, it is possible to deploy simulations with a [docker
37+
container](https://hub.docker.com/r/ssages/pysages). However, at the moment we cannot
38+
guarantee a stable docker image for PySAGES.
39+
40+
You can follow our installation tutorial on Google Colab to see how PySAGES, HOOMD-blue,
41+
and OpenMM can be built and installed in such an environment: [Install Notebook].
42+
43+
<!-- References -->
44+
45+
[Install Notebook]: https://colab.research.google.com/github/SSAGESLabs/PySAGES/blob/main/examples/Install_PySAGES_Environment.ipynb

docs/source/installation.rst

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)