Skip to content

Commit

Permalink
Merge branch 'develop' into HydrogenBondAnalysis
Browse files Browse the repository at this point in the history
  • Loading branch information
orbeckst authored Oct 14, 2024
2 parents a390a4e + 4a46ac2 commit 38ffd02
Show file tree
Hide file tree
Showing 38 changed files with 17,317 additions and 749 deletions.
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# Autoformat all files using `black`
8f061e7da99eb78353e9392d6929673da5b352a3
91078a63c64ec9a1c2de7f72a835813b888d1c73
28 changes: 14 additions & 14 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,33 +26,33 @@ jobs:
strategy:
fail-fast: false
matrix:
# only test all GROMACS version on the oldest and latest
# Python to keep the testing matrix manageable and only use 2
# macos runners (latest GROMACS, oldest and latest Python)
# only test all GROMACS version on the latest
# Python to keep the testing matrix manageable and only use 1
# macos runners (latest GROMACS, latest Python)

os: [ubuntu-latest]
python-version: ["3.10"]
gromacs-version: ["4.6.5", "2018.6", "2020.6", "2021.1", "2022.4", "2023.1"]
python-version: ["3.12"]
gromacs-version: ["4.6.5", "2018.6", "2020.6", "2021.1", "2022.4", "2023.1", "2024.3"]
include:
- os: ubuntu-latest
python-version: "3.8"
gromacs-version: "2023.1"
python-version: "3.10"
gromacs-version: "2024.3"
- os: ubuntu-latest
python-version: "3.9"
gromacs-version: "2023.1"
python-version: "3.11"
gromacs-version: "2024.3"
- os: macos-latest
python-version: "3.10"
gromacs-version: "2023.1"
python-version: "3.12"
gromacs-version: "2024.3"

env:
MPLBACKEND: agg


steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: mamba environment and package installation
uses: mamba-org/setup-micromamba@v1
uses: mamba-org/setup-micromamba@v2
with:
environment-file: devtools/conda-envs/test_env.yaml
condarc: |
Expand Down Expand Up @@ -93,7 +93,7 @@ jobs:
pytest -v --durations=20 --cov=mdpow --cov-report=xml --color=yes ./mdpow/tests
- name: Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}
Expand Down
57 changes: 57 additions & 0 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Build and upload to PyPi

on:
push:
tags:
- "*"
release:
types:
- published

jobs:
test_pypi_push:
environment:
name: TestPyPi
url: https://test.pypi.org/p/MDPOW
permissions:
id-token: write
if: |
github.repository == 'Becksteinlab/MDPOW' &&
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
name: "TestPyPi: Build and upload pure Python wheels"
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: testpypi_deploy
uses: MDAnalysis/pypi-deployment@main
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
with:
test_submission: true
package_name: 'MDPOW'
module_name: 'mdpow'
tests: false

pypi_push:
environment:
name: PyPi
url: https://pypi.org/p/MDPOW
permissions:
id-token: write
if: |
github.repository == 'Becksteinlab/MDPOW' &&
(github.event_name == 'release' && github.event.action == 'published')
name: "PyPi: Build and upload pure Python wheels"
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: pypi_deploy
uses: MDAnalysis/pypi-deployment@main
if: github.event_name == 'release' && github.event.action == 'published'
with:
package_name: 'MDPOW'
module_name: 'mdpow'
tests: false
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,11 @@ coverage.xml
*.lock
*.npz
dir.csv

# Files for the Martini example that can be downloaded at runtime
doc/examples/martini/*
!doc/examples/martini/*.mdp
!doc/examples/martini/*.ipynb
!doc/examples/martini/water.gro
!doc/examples/martini/octanol.gro
!doc/examples/martini/benzene.pdb
16 changes: 12 additions & 4 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
# Required
version: 2

build:
os: "ubuntu-22.04"
tools:
python: "mambaforge-22.9"

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: doc/sphinx/source/conf.py
Expand All @@ -13,9 +18,12 @@ sphinx:
formats:
- pdf

# Optionally set the version of Python and requirements required to build your docs
# install package
python:
version: 3.8
install:
- requirements: doc/requirements.txt
system_packages: true
- method: pip
path: .

conda:
environment: devtools/conda-envs/readthedocs.yaml

7 changes: 6 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"[python]": {
"editor.formatOnSave": true
}
},
"python.testing.pytestArgs": [
"mdpow"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true
}
2 changes: 1 addition & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@ their first commit. GitHub handle is optional.
2023
----

- Alexander Moriarty (@a-ws-m)
- Alexander Moriarty (a-ws-m)
35 changes: 30 additions & 5 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@ CHANGES for MDPOW
Add summary of changes for each release. Use ISO 8061 dates. Reference
GitHub issues numbers and PR numbers.

2023-??-?? 0.9.0
2024-10-11 0.9.0
cadeduckworth, orbeckst, VOD555, a-ws-m

Changes

* added support for Python 3.10 (#202)
* dropped testing on Python 3.6 (PR #220, #202)
* dropped testing on Python 3.7 (minimally supported Python >= 3.8, #248)
* support Gromacs 2022.4 and 2023.1 (#256)
* change in TI implementation in fep.Gsolv.analysis(): scipy.integrate.simpson()
now always uses Cartwright's approach to compute the last interval instead of
the old `even="last"` behavior. This change **may lead to small numerical
differences in output** (#281)
* added testing/support for Python 3.10 (#202) to 3.12 (#283)
* dropped testing/support for Python 3.9 (#286), 3.8 (#281), 3.7 (#248),
3.6 (PR #220, #202)
* support Gromacs 2022.4 and 2023.1 (#256) and 2024.3 (PR #290)
* use pymbar >= 4 and alchemlyb >= 2 (#246)
* for ensemble.EnsembleAnalysis._single_frame()
changed 'pass' to 'raise NotImplementedError' (#216)
Expand All @@ -25,6 +29,22 @@ Changes
EnsembleAnalysis.run() method, no longer needed (per comments, #199)
* internal log_banner() now uses logger as argument (PR #247)
* use `black` formatter for codebase (#271)
* implemented `forcefields.Forcefield` class (#267)
- facilitates users using non-default forcefields without changing package
code
- `equil.Simulation` has new `ff_class` argument
- each `Forcefield` has unique `default_water_model`, replacing global
`DEFAULT_WATER_MODEL`
- `get_solvent_model()` and `get_solvent_identifier()` take either `str` or
`Forcefield` type for the `forcefield` argument
- both functions also use the `Forcefield`-specific `default_water_model`
(fixes #112)
* `forcefields.DEFAULT_WATER_MODEL` removed (#267)
* changed `system.top` and `system_octwet.top` to act as templates and added
`.template` suffix (#267)
* removed `forcefields.get_ff_paths()` (#267)
* changed `forcefields.get_solvent_identifier()`: will raise `ValueError`
instead of returning `None` (#267)

Enhancements

Expand Down Expand Up @@ -52,6 +72,11 @@ Fixes
to explicitly make a copy DataFrame of the data for angle padding (#242)
* fix rcoulomb in CHARMM energy minimization MDP template file (PR #210)
* fix ensemble.EnsembleAnalysis.check_groups_from_common_ensemble (#212)
* updated versioneer (#285)
* fix that simulation stages cannot be restarted after error (#272)
* fix that testing resource data files were not packaged at all; they are now
included with the sdist (tar.gz) (23 MiB) but excluded from the wheel (whl)
(2.3 MiB) (#293)


2022-01-03 0.8.0
Expand Down
2 changes: 1 addition & 1 deletion INSTALL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ GROMACS_.
Conda environment with pre-requisites
-------------------------------------

Make a conda environment with the latest packages for Python 3.8 or
Make a conda environment with the latest packages for Python 3.10 or
higher with the name *mdpow*; this installs the larger dependencies that are
pre-requisites for MDPOW::

Expand Down
10 changes: 5 additions & 5 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include setup.py setup.cfg COPYING INSTALL README.rst AUTHORS CHANGES
recursive-include doc *.html *.css *.js *.txt *.inv *.png
include setup.py setup.cfg COPYING INSTALL.rst README.rst AUTHORS CHANGES
include versioneer.py
include mdpow/_version.py
graft mdpow/templates/
graft mdpow/top/
graft mdpow/top/oplsaa.ff/
include versioneer.py
include mdpow/_version.py
graft mdpow/tests/testing_resources/
global-exclude *.py[cod]
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ Installation
------------

See `INSTALL`_ for detailed instructions. MDPOW currently supports and
is tested with Python 3.8 to 3.10.
is tested with Python 3.10 to 3.12.

You will also need `Gromacs`_ (currently tested with versions 4.6.5,
2018, 2020, 2021, 2022, 2023 but 2016 and 2019 should also work).
2018, 2020, 2021, 2022, 2023, 2024 but 2016 and 2019 should also work).


Development version
Expand Down
26 changes: 26 additions & 0 deletions devtools/conda-envs/readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: readthedocs
channels:
- conda-forge
dependencies:
- python >=3.10
- six
- numpy
- scipy >=1.11.0
- matplotlib-base
- pandas
- scikit-learn
- pyyaml
- mdanalysis >=2
- numkit
- gromacswrapper
- alchemlyb >=2
- pymbar >=4
- rdkit
- seaborn
- svgutils
- cairosvg
- pypdf

# sphinx and RTD
- sphinx
- sphinx_rtd_theme
4 changes: 2 additions & 2 deletions devtools/conda-envs/test_env.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ dependencies:
- python
- six
- numpy
- scipy
- scipy >=1.11.0
- matplotlib-base
- pandas
- scikit-learn
Expand All @@ -22,7 +22,7 @@ dependencies:
- cairosvg
- pypdf

# Testing
# Testing
- pytest
- pytest-pep8
- pytest-cov
Expand Down
13 changes: 13 additions & 0 deletions doc/examples/martini/benzene.pdb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
REMARK GENERATED BY TRJCONV
TITLE This is an auto generated system
REMARK THIS IS A SIMULATION BOX
CRYST1 150.000 150.000 180.000 90.00 90.00 90.00 P 1 1
MODEL 1
ATOM 1 R1 BENZ 1 30.920 6.600 24.160 1.00 0.00
ATOM 2 R2 BENZ 1 28.820 5.000 23.610 1.00 0.00
ATOM 3 R3 BENZ 1 29.860 6.580 21.680 1.00 0.00
TER
ENDMDL
CONECT 1 2
CONECT 2 3
CONECT 1 3
17 changes: 17 additions & 0 deletions doc/examples/martini/em.mdp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
include =
integrator = steep
dt = 0.02
nsteps = 1000
nstxout = 0
nstvout = 0
nstlog = 100
nstxtcout = 100
xtc-precision = 1000
rlist = 1.0
coulombtype = Reaction-Field
rcoulomb = 1.0
epsilon_r = 15
vdw-type = cutoff
vdw-modifier = Potential-shift-verlet
rvdw = 1.0
constraints = none
24 changes: 24 additions & 0 deletions doc/examples/martini/eq.mdp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
include =
dt = 0.005
nsteps = 25000
nstxout = 0
nstvout = 0
nstlog = 1000
nstxout-compressed = 1000
cutoff-scheme = Verlet
coulombtype = Reaction-Field
rcoulomb = 1.1
epsilon_r = 15
vdw-type = cutoff
vdw-modifier = Potential-shift-verlet
rvdw = 1.1
tcoupl = v-rescale
tc-grps = System
tau-t = 1.0
ref-t = 300
Pcoupl = c-rescale
Pcoupltype = isotropic
tau-p = 3.0
compressibility = 3e-4
ref-p = 1.0
refcoord_scaling = all
Loading

0 comments on commit 38ffd02

Please sign in to comment.