Skip to content

Commit

Permalink
Major rewrite (#2)
Browse files Browse the repository at this point in the history
* Add framework

* Start making environment

* Run make format

* Add dependencies

* Update some typing

* Ignore .orig files

* Run make validate

* Starting contexts

* Move utils into subpex dir

* Remove *.orig

* Update locks

* Move restart_subpex to sp_restart

* Update lock files

* Update ignores

* LFS for sim files

* Add prmtop to LFS

* Fix pre-commit

* Add m7g test

* Move wizard

* Add contexts module

* Cleanup westpa checks

* chore: fix subpex validator class name

* feat: add more subpex

* remove unnecessary scripts

* Add restart option for subpex context

* Reorganize wizard

* chore: remove unnecessary files

* Move some scripts

* refactor: create base context manager and validators

* chore: switch to ruff for linting

* feat: separate pocket and fop modules

* Add ruff check to make formatting

* remove ruff from pre-commit

* Start splitting pcoord.py

* chore: add jaccard function

* chore: update some data keys

* feat: add function to read FOP files

* chore: rename pocket radius of gyration function

* refactor: split subpex contexts

* fix: add missing pocket context manager

* chore: add composite sigma to data context

* chore: start reworking progress coords

* refactor: write_fop takes data_dir now

* feat: add data writer

* refactor: cleanup compute progress coords

* chore: remove unnecessary scripts

* Remove subpex from west.cfg

* tests: add simple FOP generation test

* Add black

* feat: put back calculate_distance_two_points

* tests: add pocket tests

* chore: fix gitignore

* chore: enable lfs for codecov.yml

* ci: Add CODECOV_TOKEN

* ci: fix build.yml

* ci: fix lfs with build

* chore: update README

* chore: cleanup some code

* feat: start templater

* feat: overhaul westpa context manager

* feat: render west.cfg file

* chore: cleanup some context

* build: bump minimum mkdocstrings versions

* chore: cleanup cli

* chore: update styling

* chore: update mkdocstrings

* chore: start updating westpa docs

* build: Add pydantic

* chore: add --unsafe-fixes to rust

* Start westpa context

* build: add pydantic-settings

* refactor: rename base -> main

* feat: change to pydantic

* refactor: start transition to pydantic

* fix: westpa config

* fix: improve westpa config implementation

* chore: remove duplicate scripts

* chore: rename spx_config -> subpex_config

* feat: start westpa init script

* chore: cleanup configs

* chore: update docstrings in FOP module

* refactor: get_fop_pocket and test

* feat: Provide get_rmsd function in utils

* feat: add function to compute backbone rmsd

* refactor: Do not remove directory during westpa setup when overwriting

* feat: add convenience functions for computing fop

* refactor: unify pocket computations

* refactor: revamp AuxData

* refactor: reorganize some config settings

* chore: small updates to render

* refactor: change pcoord -> data

* refactor: change m7g to path dict

* chore: add tmp for tests

* feat: compute traj data

* feat: improve interaction with aux data

* tests: write actual tests for computing traj data

* tests: add docstrings to tests

* chore: remove old get_rmsd function

* docs: improve data IO docstrings

* docs: improve FoP compute docstrings

* chore: ignore some mypy types

* fix: the c_alphas for get_fop_pocket

* refactor: add docstrings and clarify distance constraint

* chore: cleanup r"""

* chore: start lfs cleanup

* chore: move lfs files to git

* refactor: fix selection_dist -> water_dist

* tests: fix test path names
  • Loading branch information
aalexmmaldonado authored May 20, 2024
1 parent d119e26 commit 5ca57b6
Show file tree
Hide file tree
Showing 118 changed files with 106,949 additions and 5,406 deletions.
36 changes: 36 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Check http://editorconfig.org for more information

root = true

[*]
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true
charset = utf-8
end_of_line = lf

[*.{py, pyi}]
indent_style = space
indent_size = 4

[*.bat]
indent_style = tab
end_of_line = crlf

[Makefile]
indent_style = tab

[*.{yml, yaml}]
indent_size = 2
trim_trailing_whitespace = true

[*.md]
indent_size = 4
trim_trailing_whitespace = true

[LICENSE]
insert_final_newline = false

[*.{diff,patch}]
trim_trailing_whitespace = false
11 changes: 11 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.md text
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.nc binary
*.rst binary

42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: 🐛 Bug report
about: If something isn't working 🔧
title: ''
labels: bug
assignees:
---

## Bug Report

<!-- A clear and concise description of what the bug is. -->

## How To Reproduce

Steps to reproduce the behavior:

1. ...

### Code sample

<!-- If applicable, attach a minimal code sample to reproduce the decried issue. -->

### Environment

- OS: [e.g. Linux / Windows / macOS]
- Python version, get it with:

```bash
python --version
```

### Screenshots

<!-- If applicable, add screenshots to help explain your problem. -->

## Expected behavior

<!-- A clear and concise description of what you expected to happen. -->

## Additional context

<!-- Add any other context about the problem here. -->
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Configuration: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository

blank_issues_enabled: false
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: 🚀 Feature request
about: Suggest an idea for this project 🏖
title: ''
labels: enhancement
assignees:
---

## Feature Request

<!-- A clear and concise description of the feature proposal. -->

## Motivation

<!-- Please describe the motivation for this proposal. -->

## Alternatives

<!-- A clear and concise description of any alternative solutions or features you've considered. -->

## Additional context

<!-- Add any other context or screenshots about the feature request here. -->
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: ❓ Question
about: Ask a question about this project 🎓
title: ''
labels: question
assignees:
---

## Checklist

<!-- Mark with an `x` all the checkboxes that apply (like `[x]`) -->

- [ ] I've searched the project's [`issues`](https://github.com/durrantlab/subpex/issues?q=is%3Aissue).

## Question

<!-- What is your question? -->

How can I [...]?

Is it possible to [...]?

## Additional context

<!-- Add any other context or screenshots about the feature request here. -->
29 changes: 29 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Description

<!-- Add a more detailed description of the changes if needed. -->

## Related Issue

<!-- If your PR refers to a related issue, link it here. -->

## Type of Change

<!-- Mark with an `x` all the checkboxes that apply (like `[x]`) -->

- [ ] 📚 Examples / docs / tutorials / dependencies update
- [ ] 🔧 Bug fix (non-breaking change which fixes an issue)
- [ ] 🥂 Improvement (non-breaking change which improves an existing feature)
- [ ] 🚀 New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to change)
- [ ] 🔐 Security fix

## Checklist

<!-- Mark with an `x` all the checkboxes that apply (like `[x]`) -->

- [ ] I have updated the code style using `make codestyle`.
- [ ] I have performed a self-review of my code.
- [ ] I have written tests for all new methods and classes that I created.
- [ ] New and existing unit tests pass locally with my changes.
- [ ] I have written the docstring in `NumPy` format for all the methods and classes that I used.
- [ ] I have made corresponding changes to the documentation.
28 changes: 28 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Release drafter configuration https://github.com/release-drafter/release-drafter#configuration
# Emojis were chosen to match the https://gitmoji.carloscuesta.me/

name-template: "v$NEXT_PATCH_VERSION"
tag-template: "v$NEXT_PATCH_VERSION"

categories:
- title: ":rocket: Features"
labels: [enhancement, feature]
- title: ":wrench: Fixes & Refactoring"
labels: [bug, refactoring, bugfix, fix]
- title: ":package: Build System & CI/CD"
labels: [build, ci, testing]
- title: ":boom: Breaking Changes"
labels: [breaking]
- title: ":pencil: Documentation"
labels: [documentation]
- title: ":arrow_up: Dependencies updates"
labels: [dependencies]

template: |
## What's Changed
$CHANGES
## :busts_in_silhouette: List of contributors
$CONTRIBUTORS
43 changes: 43 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

name: build

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9"]

steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Install miniconda
uses: conda-incubator/setup-miniconda@v2
with:
miniconda-version: "latest"
auto-update-conda: true
python-version: ${{ matrix.python-version }}

- name: Initialize conda environment
run: make conda-create

- name: Setup conda
run: make conda-setup

- name: Install conda dependencies
run: make from-conda-lock

- name: Poetry install
run: make install

- name: Run tests
run: make test
50 changes: 50 additions & 0 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@

name: Codecov workflow

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
run:
name: codecov
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install miniconda
uses: conda-incubator/setup-miniconda@v2
with:
miniconda-version: "latest"
auto-update-conda: true
# Set to the same as `PYTHON_VERSION` in `Makefile`
python-version: "3.12"

- name: Initialize conda environment
run: make conda-create

- name: Setup conda
run: make conda-setup

- name: Install conda dependencies
run: make from-conda-lock

- name: Poetry install
run: make install

- name: Run tests and coverage
run: make test

- name: Upload to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
env_vars: OS,PYTHON
fail_ci_if_error: true
verbose: true
71 changes: 71 additions & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@

# Simple workflow for deploying static content to GitHub Pages
name: Deploy content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true

jobs:
deploy:
name: docs
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0

- name: Install miniconda
uses: conda-incubator/setup-miniconda@v2
with:
miniconda-version: "latest"
auto-update-conda: true
python-version: "3.12"

- name: Initialize conda environment
run: make conda-create

- name: Setup conda
run: make conda-setup

- name: Install conda dependencies
run: make from-conda-lock

- name: Poetry install
run: make install

- name: Build documentation
run: make docs-versioned

- name: Setup Pages
uses: actions/configure-pages@v3

- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
# Upload entire repository
path: './docs/html/'

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
Loading

0 comments on commit 5ca57b6

Please sign in to comment.