-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit e45b600
Showing
189 changed files
with
221,784 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
### Description | ||
|
||
### Checklist | ||
If you're providing a new node for maize, please make sure of the following: | ||
- [ ] My node has been placed in an appropriate subfolder, and exposed in the corresponding `__init__.py` file | ||
- [ ] My node has tests (using `TestRig`, and testing a variety of inputs and parameters) | ||
- [ ] My node is fully documented using [ReST syntax](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html) and references if neccessary | ||
- [ ] My code passes type-checking using `mypy --strict --explicit-package-bases` | ||
- [ ] My code lints correctly | ||
- [ ] My code has been formatted with `black`, using a `line-length` of 100 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: Mypy | ||
|
||
on: [push, workflow_dispatch] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
python-version: ["3.10"] | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | | ||
bash -s -- --batch | ||
conda env create -f env-dev.yml | ||
conda run --name maize-dev pip install --no-deps . | ||
conda run --name maize-dev pip install types-PyYAML types-toml | ||
- name: Analysing the code with mypy | ||
run: | | ||
conda run --name maize-dev mypy --strict --explicit-package-bases maize/steps maize/utilities |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
name: Pylint | ||
|
||
on: [push, workflow_dispatch] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
python-version: ["3.10"] | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | | ||
bash -s -- --batch | ||
conda env create -f env-dev.yml | ||
conda run --name maize-dev pip install --no-deps . | ||
- name: Analysing the code with pylint | ||
run: | | ||
conda run --name maize-dev pylint --exit-zero maize/steps maize/utilities |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# This workflow will install Python dependencies, run tests and lint with a single version of Python | ||
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python | ||
|
||
name: Test-docking | ||
|
||
on: | ||
push: | ||
branches: [ "master" ] | ||
pull_request: | ||
branches: [ "master" ] | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
python-version: ["3.10"] | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | | ||
bash -s -- --batch | ||
conda env create -f env-dev.yml | ||
conda run --name maize-dev pip install --no-deps . | ||
conda run --name maize-dev ./devtools/install_test_deps.sh | ||
- name: Run docking test with pytest | ||
run: | | ||
conda run --name maize-dev pytest tests/test_docking.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
.ipynb_checkpoints | ||
.VSCodeCounter | ||
__pycache__ | ||
*.egg-info | ||
.coverage | ||
.vscode | ||
.pylintrc | ||
.*_cache | ||
*_autosummary | ||
coverage | ||
docs/_build | ||
docs/_static | ||
docs/autosummary | ||
docs/Makefile | ||
docs/make.bat | ||
/test-config.toml | ||
test | ||
testing.ipynb | ||
deplicenses.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Primary Authors | ||
=============== | ||
- [Thomas Löhr](https://github.com/tlhr) | ||
- Marco Klähn | ||
|
||
Contributing Authors | ||
==================== | ||
- Michele Assante | ||
- Lili Cao | ||
- Michael Dodds | ||
- Jon Paul Janet | ||
- Mikhail Kabeshov | ||
- Alessandro Tibo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# CHANGELOG | ||
|
||
## Version 0.4.0 | ||
### Features | ||
- Added Gromacs module (Lily) | ||
- Added flexible docking with Vina | ||
- Added additional tag handling utilities | ||
- Added explicit prior and agent parameters to Reinvent | ||
- Added `IsomerCollection` tagging system | ||
- Added active learning module, subgraph, and example notebook | ||
|
||
### Changes | ||
- Reorganised cheminformatics | ||
|
||
### Fixes | ||
- Fixed relative-absolute conversion of BFEs not using reference correctly | ||
- Fixed `MakeAbsolute` not handling disconnected subgraphs | ||
- Fixed `SaveLibrary` not saving all conformers | ||
- Fixed `AutoDockGPU` not detecting tarred grids as inputs | ||
- Fixed OpenFE dumping failing on existing dump | ||
|
||
## Version 0.3.2 | ||
### Features | ||
- Tests can now be skipped automatically based on available config options | ||
- Added absolute free energy conversion for `OpenRFE` | ||
|
||
### Changes | ||
- Updated REINVENT implementation | ||
- Updated bundled maize | ||
|
||
## Version 0.3.1 | ||
### Changes | ||
- Updated bundled maize | ||
|
||
### Fixes | ||
- Fixed SaveCSV not using the correct tag order | ||
- Various type fixes | ||
|
||
## Version 0.3.0 | ||
### Features | ||
- Several new filters | ||
- More subgraphs | ||
- OpenFE node | ||
- Constraints for AutoDockGPU and Glide | ||
- Nodes for reaction prediction | ||
- Batched CSV saving | ||
- Flexible docking with Vina | ||
|
||
### Changes | ||
- Various improvements to RMSD filtering | ||
- Performance improvements for `Isomer` tag handling | ||
- Allowed certain RDKit ops to timeout | ||
- More robust Schrodinger job handling | ||
- Integration tests | ||
- Maize core wheel for automated builds | ||
|
||
### Fixes | ||
- Fix for zombie threads when using REINVENT | ||
- Fix for installation only being possible using `-e` | ||
- Cleaned up typing | ||
|
||
## Version 0.2.3 | ||
### Changes | ||
- Removed interface for REINVENT 3.2 | ||
|
||
### Fixes | ||
- Cleanup of package structure | ||
- Updated dependencies | ||
- Added explicit check for Schrodinger license | ||
|
||
## Version 0.2.2 | ||
### Features | ||
- Added Schrodinger grid preparation tools | ||
|
||
### Changes | ||
- Adjusted timeout for Gypsum-DL | ||
- Various enhancements for GLIDE | ||
|
||
### Fixes | ||
- Fixed `Vina` command validation for newer `Vina` versions | ||
- Fixed parsing issues for `Vina` | ||
|
||
|
||
## Version 0.2.1 | ||
### Features | ||
- Improved REINVENT interface, using `ReinventEntry` and `ReinventExit` | ||
|
||
### Changes | ||
- Timeouts for conformer / isomer generation | ||
- Improved logging | ||
|
||
### Fixes | ||
- Check for zero bytes for `Vina` output | ||
|
||
## Version 0.2.0 | ||
|
||
Updated for public release. | ||
|
||
## Version 0.1 | ||
|
||
Initial release. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
Contributing | ||
============ | ||
This is a summary of code conventions and contributing guidelines for *maize-contrib*. | ||
|
||
Issues & Pull requests | ||
---------------------- | ||
To report bugs or suggest new features, open an issue, or submit a pull request with your changes. | ||
|
||
Installation | ||
------------ | ||
If you will be working on both *maize* and *maize-contrib* it will be easiest to install the environment for *maize-contrib* first, as it encompasses all dependencies for maize and domain-specific extensions. You can then install both packages using editable installs. | ||
|
||
Code style | ||
---------- | ||
We use the [PEP8](https://peps.python.org/pep-0008/) convention with a 100 character line length - you can use `black` as a formatter with the `--line-length=100` argument. The code base features full static typing, use the following [mypy](https://mypy.readthedocs.io/en/stable/) command to check it: | ||
|
||
```shell | ||
mypy --follow-imports=silent --ignore-missing-imports --strict maize | ||
``` | ||
|
||
Type hints should only be omitted when either mypy or typing doesn't yet fully support the required feature, such as [higher-kinded types](https://github.com/python/typing/issues/548) or type-tuples ([PEP646](https://peps.python.org/pep-0646/)). | ||
|
||
> [!IMPORTANT] | ||
> If you installed the maize core in editable mode you may need to specify its location with `$MYPYPATH` to ensure `mypy` can find it. See this [setuptools issue](https://github.com/pypa/setuptools/issues/3518). | ||
Documentation | ||
------------- | ||
Every public class or function should feature a full docstring with a full description of parameters / attributes. Custom nodes should follow the example node in `maize/steps/mai/example/step.py`, default values will be detected and added to the documentation automatically. We follow the [numpy docstring](https://numpydoc.readthedocs.io/en/latest/format.html) standard for readability reasons. Docs are built using [sphinx](https://www.sphinx-doc.org/en/master/) in the `docs` folder: | ||
|
||
```shell | ||
make html | ||
``` | ||
|
||
There will be some warnings from `autosummary` that can be ignored. The built docs can then be found in `docs/_build/html`. To preview them locally you can start a local webserver running the following command in the `docs/_build/html` folder: | ||
|
||
```shell | ||
python -m http.server 8000 | ||
``` | ||
|
||
The docs are then available at `http://localhost:8000/index.html`. | ||
|
||
Testing | ||
------- | ||
Tests are written using [pytest](https://docs.pytest.org/en/7.2.x/contents.html), located together with the node, and can be run with: | ||
|
||
```shell | ||
pytest --log-cli-level=DEBUG maize/steps/mai/example/step.py | ||
``` | ||
|
||
Any custom nodes should be covered by suitable tests in a `TestSuite<node-name>` class. To make testing the nodes a bit easier, you can use the `maize.utilities.testing.TestRig` class together with `maize.utilities.testing.MockChannel` if required. | ||
|
||
Coverage can be reported using: | ||
|
||
```shell | ||
pytest tests/ -v --cov maize --cov-report html:coverage | ||
``` | ||
|
||
New versions | ||
------------ | ||
To release a new version of maize, perform the following steps: | ||
|
||
1. Create a new branch titled `release-x.x.x` | ||
2. Add your changes to `CHANGELOG.md` | ||
3. Increment version in `pyproject.toml` | ||
4. Commit your changes | ||
5. Rebuild and update the remote documentation (see above) | ||
6. Create a tag using `git tag vx.x.x` | ||
7. Push your changes with `git push` and `git push --tags` | ||
8. Update `master`: | ||
1. `git checkout master` | ||
2. `git pull origin master` | ||
3. `git merge release-x.x.x` | ||
4. `git push origin master` |
Oops, something went wrong.