Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
dde3327
Adding new entries in gitignore which needs to be mmodified before re…
siddharth7113 Nov 20, 2025
9e3f882
Changes in maws2023.py to reduce the number of pdb files created duri…
siddharth7113 Nov 20, 2025
461ba53
Minor correction
siddharth7113 Dec 11, 2025
134ed83
Added docstirngs for tools
siddharth7113 Jan 8, 2026
e7304ff
Removed kernels.py since only CenterofMass was being used from this s…
siddharth7113 Jan 8, 2026
41d0a08
Reduce verbose dostrings and added simplified explanation
siddharth7113 Jan 8, 2026
ab7f9e5
Adding docstrings to all shape attributes and minor correction in num…
siddharth7113 Jan 8, 2026
706eef4
Removing unused routines and adding docstrings in functions and makin…
siddharth7113 Jan 8, 2026
c6d754e
Removing incorrect doctest for tools.py
siddharth7113 Jan 8, 2026
58cde1e
Adding doctests and moving the center of mass function in helpers.py …
siddharth7113 Jan 8, 2026
c40de63
Added docstrings and removed the delegated rotate_global and translat…
siddharth7113 Jan 8, 2026
f528c4c
Added intial docs to explain the repository structure
siddharth7113 Jan 8, 2026
58e0b46
Reduce convoluted docstrings from complex.py added wrapper functions …
siddharth7113 Jan 8, 2026
4f85c5a
Calling modified wrapper function from complex.py to increase code re…
siddharth7113 Jan 8, 2026
1b7e53e
This is the first version of public facing API and how the user would…
siddharth7113 Jan 8, 2026
bfcdee0
Modification in init related to run.py
siddharth7113 Jan 8, 2026
488a43c
Adding 110 test, 1 test requires GPU to run, and these tests were AI …
siddharth7113 Jan 8, 2026
f806871
Adding a basic ci.yml file
siddharth7113 Jan 8, 2026
2234e65
Updating environment.yml
siddharth7113 Jan 8, 2026
4b725c0
Need to be modified and verified for correct information
siddharth7113 Jan 8, 2026
4dc7f74
Added gpu workflow
siddharth7113 Jan 8, 2026
c217b2a
Remove LIG.lib
siddharth7113 Jan 8, 2026
4c78dcf
putting correct notebook
siddharth7113 Jan 8, 2026
cff635d
latest code in maws2023
siddharth7113 Jan 8, 2026
20f6a44
correction in maws2023 function calls
siddharth7113 Jan 8, 2026
b6123f1
Update ci.yml
fkiraly Jan 15, 2026
61e5134
modification in ci.yaml
siddharth7113 Jan 15, 2026
185b98b
Modifications in ci.yml
siddharth7113 Jan 22, 2026
d19c044
ruff corrections
siddharth7113 Jan 22, 2026
0fbc946
adding 1BRQ.pdb to data and removing old pdbs not being used and remv…
siddharth7113 Jan 22, 2026
b5ef8df
Remove default channels from conda and introduces dev-dependencies (#34)
siddharth7113 Feb 2, 2026
c9a7b39
Adding new entries in gitignore which needs to be mmodified before re…
siddharth7113 Nov 20, 2025
fda0a37
Changes in maws2023.py to reduce the number of pdb files created duri…
siddharth7113 Nov 20, 2025
f47aca2
Minor correction
siddharth7113 Dec 11, 2025
c73af38
Added docstirngs for tools
siddharth7113 Jan 8, 2026
574b49b
Removed kernels.py since only CenterofMass was being used from this s…
siddharth7113 Jan 8, 2026
41d39ba
Reduce verbose dostrings and added simplified explanation
siddharth7113 Jan 8, 2026
241dbd3
Adding docstrings to all shape attributes and minor correction in num…
siddharth7113 Jan 8, 2026
a1e54b7
Removing unused routines and adding docstrings in functions and makin…
siddharth7113 Jan 8, 2026
b2bae9b
Removing incorrect doctest for tools.py
siddharth7113 Jan 8, 2026
ecc08d4
Adding doctests and moving the center of mass function in helpers.py …
siddharth7113 Jan 8, 2026
c51a5f9
Added docstrings and removed the delegated rotate_global and translat…
siddharth7113 Jan 8, 2026
ad7e8dd
Added intial docs to explain the repository structure
siddharth7113 Jan 8, 2026
58da1a6
Reduce convoluted docstrings from complex.py added wrapper functions …
siddharth7113 Jan 8, 2026
a9fbe7c
Calling modified wrapper function from complex.py to increase code re…
siddharth7113 Jan 8, 2026
63e7a10
This is the first version of public facing API and how the user would…
siddharth7113 Jan 8, 2026
57f569f
Modification in init related to run.py
siddharth7113 Jan 8, 2026
e044a2e
Adding 110 test, 1 test requires GPU to run, and these tests were AI …
siddharth7113 Jan 8, 2026
d663f72
Adding a basic ci.yml file
siddharth7113 Jan 8, 2026
ea0f6ef
Updating environment.yml
siddharth7113 Jan 8, 2026
1d7a1e0
Need to be modified and verified for correct information
siddharth7113 Jan 8, 2026
d9ff671
Added gpu workflow
siddharth7113 Jan 8, 2026
5c6ef4f
Remove LIG.lib
siddharth7113 Jan 8, 2026
8233277
putting correct notebook
siddharth7113 Jan 8, 2026
18d5492
latest code in maws2023
siddharth7113 Jan 8, 2026
ff27fec
correction in maws2023 function calls
siddharth7113 Jan 8, 2026
14299e9
Update ci.yml
fkiraly Jan 15, 2026
534e16b
modification in ci.yaml
siddharth7113 Jan 15, 2026
d7a1ef2
Modifications in ci.yml
siddharth7113 Jan 22, 2026
821eea5
ruff corrections
siddharth7113 Jan 22, 2026
c32878e
adding 1BRQ.pdb to data and removing old pdbs not being used and remv…
siddharth7113 Jan 22, 2026
b0cecce
Merge branch 'siddharth/pr-clean' of github.com:gc-os-ai/MAWS_2025 in…
siddharth7113 Feb 2, 2026
e86a051
Correction in environments.yaml
siddharth7113 Feb 2, 2026
23d8fa5
python api interface for maws
siddharth7113 Feb 6, 2026
4f2b548
moving pdb_cleaner fucntion to the utility script instead of maws2023.py
siddharth7113 Feb 6, 2026
e939cf1
updating typo in docstrings
siddharth7113 Feb 6, 2026
0ad38c3
resolve frcmod bug which is only required for parameterized=True but …
siddharth7113 Feb 6, 2026
200acc0
corrected test and base api to be compatible with latest run.py
siddharth7113 Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
208 changes: 208 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
# MAWS CI/CD Workflow
# Runs tests on Linux with AmberTools and OpenMM across Python 3.10-3.13
# Includes optional GPU testing when self-hosted runners with GPU are available

name: CI

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch: # Allow manual trigger

jobs:
# ============================================================================
# Full integration tests with AmberTools (CPU)
# ============================================================================
test:
name: Test Python ${{ matrix.python-version }}
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]

defaults:
run:
shell: bash -el {0} # Required for conda activate

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

- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
python-version: ${{ matrix.python-version }}
channels: conda-forge,bioconda,defaults
channel-priority: strict
activate-environment: maws
auto-activate-base: false

- name: Install dependencies via conda
run: |
conda activate maws
conda install -y openmm ambertools mpmath numba pandas numpy

- name: Install package and dev dependencies
run: |
conda activate maws
pip install -e ".[dev]"

- name: Verify AmberTools installation
run: |
conda activate maws
which tleap
tleap -h || echo "tleap help displayed"

- name: Run tests
run: |
conda activate maws
pytest tests/ -v --tb=short

- name: Run tests with coverage
if: matrix.python-version == '3.10'
run: |
conda activate maws
pytest tests/ --cov=maws --cov-report=term-missing --cov-report=xml

- name: Upload coverage to Codecov
if: matrix.python-version == '3.10'
uses: codecov/codecov-action@v4
with:
files: ./coverage.xml
fail_ci_if_error: false
verbose: true

# ============================================================================
# Fast unit tests (no AmberTools needed)
# ============================================================================
unit-tests:
name: Unit Tests Python ${{ matrix.python-version }}
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]

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

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip

- name: Install minimal dependencies
run: |
pip install numpy openmm mpmath pandas pytest pytest-cov

- name: Install package
run: pip install -e .

- name: Run unit tests only
run: |
pytest tests/ -v --tb=short \
--ignore=tests/test_chain_complex.py \
--ignore=tests/test_run.py

# ============================================================================
# GPU tests (only runs on self-hosted runners with NVIDIA GPU)
# To enable: add a self-hosted runner with GPU and label 'gpu'
# ============================================================================
gpu-test:
name: GPU Test
runs-on: [self-hosted, gpu]
if: github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[gpu]')
continue-on-error: true # Don't fail the whole workflow if GPU tests fail

defaults:
run:
shell: bash -el {0}

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

- name: Check NVIDIA GPU
run: |
nvidia-smi
echo "CUDA devices found:"
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv

- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
python-version: "3.10"
channels: conda-forge,bioconda,defaults
channel-priority: strict
activate-environment: maws-gpu
auto-activate-base: false

- name: Install dependencies with CUDA support
run: |
conda activate maws-gpu
# Install OpenMM with CUDA support
conda install -y openmm cudatoolkit ambertools mpmath numba pandas numpy

- name: Install package
run: |
conda activate maws-gpu
pip install -e ".[dev]"

- name: Verify CUDA platform
run: |
conda activate maws-gpu
python -c "
import openmm as mm
print('Available platforms:')
for i in range(mm.Platform.getNumPlatforms()):
p = mm.Platform.getPlatform(i)
print(f' {p.getName()}')
try:
cuda = mm.Platform.getPlatformByName('CUDA')
print(f'CUDA platform found!')
except Exception as e:
print(f'CUDA not available: {e}')
"

- name: Run all tests including GPU
env:
MAWS_OPENMM_PLATFORM: CUDA
run: |
conda activate maws-gpu
pytest tests/ -v --tb=short -m "not slow"

# ============================================================================
# Linting
# ============================================================================
lint:
name: Lint
runs-on: ubuntu-latest

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

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Install ruff
run: pip install ruff

- name: Run ruff check
run: ruff check maws/

- name: Run ruff format check
run: ruff format --check maws/
18 changes: 4 additions & 14 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,6 @@ htmlcov/
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/
Expand Down Expand Up @@ -104,7 +92,9 @@ dmypy.json
cython_debug/

#MAWS pdf files
maws_*.pdb
.maws_cache/
*.in
*.mdp
*.mdp
*.log
*.lib
# We have to correct all this before release
Loading
Loading