Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
24ee154
Physical atoms must be physical at both end states.
lohedges Jan 22, 2026
3cf6831
Treat remaining terms as a dual junction.
lohedges Jan 22, 2026
5f2b0fc
Remove impropers that bridge the physical and ghost regions.
lohedges Jan 29, 2026
635511c
Fix end-state flag at lambda=0.
lohedges Jan 29, 2026
c613644
Grammar tweak.
lohedges Jan 29, 2026
fec0bd9
Make loop variable name more meaningful.
lohedges Jan 29, 2026
d8fd376
Catch and allow minimisation convergence errors.
lohedges Jan 29, 2026
edeca85
Remove unused variable.
lohedges Jan 29, 2026
98b856a
Break loop after first angle optimisation failure.
lohedges Jan 30, 2026
f18db87
Clarify definition of physical atom.
lohedges Jan 30, 2026
8714964
Add ejm49~ejm31 unit test.
lohedges Feb 4, 2026
d207cf5
Switch to pixi and rattler build.
lohedges Feb 4, 2026
16dc07c
Add auto-generated version file to gitignore.
lohedges Feb 6, 2026
2cad24a
Add modifications to handle ring-break and multi-dummy group edge cases.
lohedges Feb 6, 2026
9a3f360
Add placeholders for rotamer anchor modification.
lohedges Feb 6, 2026
f093393
Fix install path for BioSimSpace. [ci skip]
lohedges Feb 9, 2026
ca19eba
Improve hybridisation check for non-planar triple junctions.
lohedges Feb 9, 2026
bdcf92d
Remove linux-aarch64, since there are no pre-built conda packages.
lohedges Feb 9, 2026
270050a
Remove numpy pin.
lohedges Feb 9, 2026
593090f
Fix shell quoting.
lohedges Feb 9, 2026
8e52cb2
Use relative paths to avoid path mangling.
lohedges Feb 9, 2026
8bdf5da
Add function to score anchor atoms.
lohedges Feb 9, 2026
3684df2
Expose options to stiffen rotamers and soften anchor dihedrals.
lohedges Feb 9, 2026
a49760d
Handle softening for all anchor dihedrals.
lohedges Feb 9, 2026
ad8d09e
Change log level.
lohedges Feb 9, 2026
95c0b82
Add early exit checks.
lohedges Feb 10, 2026
6b17511
Switch old-scheme to SOMD1-scheme. [ci skip]
lohedges Feb 10, 2026
4c0a9f0
Add linting tools to dev environment.
lohedges Feb 11, 2026
393f23b
Add pre-commit.
lohedges Feb 11, 2026
1eccfcc
Autoformat and lint with ruff.
lohedges Feb 11, 2026
9d4f287
Remove source files from tests section.
lohedges Feb 11, 2026
f6b9caf
Update gitignore.
lohedges Feb 11, 2026
da5815a
Add rattler-build to development environment.
lohedges Feb 11, 2026
ac740e9
Use pixi install of rattler-build. [ci skip]
lohedges Feb 11, 2026
495a726
Add modification scoring and adjust stiffening of ring bridges.
lohedges Feb 12, 2026
31f0b9c
Add MANIFEST so that test files are included in sdist.
lohedges Feb 12, 2026
9b5089a
Remove black from test dependencies. [ci skip]
lohedges Feb 13, 2026
3674fa4
Remove hard-coded force constants from tests.
lohedges Feb 13, 2026
422e096
Exclude other bridge atoms from physical neighbours where possible.
lohedges Feb 16, 2026
5963dcc
Python 3.12 macOS builds are now available. [ci skip]
lohedges Feb 17, 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
72 changes: 44 additions & 28 deletions .github/workflows/devel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Release Devel
on:
workflow_dispatch:
push:
branches: [ devel ]
branches: [devel]

jobs:
build:
Expand All @@ -18,11 +18,13 @@ jobs:
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
exclude:
# Exclude all but the latest Python from all
# but Linux
# Exclude all but the latest Python from macOS
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.12" # MacOS can't run 3.12 yet... We want 3.10 and 3.11
python-version: "3.10"
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.11"
environment:
name: ghostly-build
defaults:
Expand All @@ -32,31 +34,45 @@ jobs:
SIRE_DONT_PHONEHOME: 1
SIRE_SILENT_PHONEHOME: 1
steps:
- uses: conda-incubator/setup-miniconda@v3
#
- uses: actions/checkout@v4
with:
fetch-depth: 0
#
- name: Compute version info
shell: bash
run: python actions/update_recipe.py
#
- name: Create sdist
run: pip install build && python -m build --sdist && mv dist/*.tar.gz ghostly-source.tar.gz
working-directory: ${{ github.workspace }}
#
- name: Install pixi
uses: prefix-dev/setup-pixi@v0.9.4
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
activate-environment: ghostly_build
miniforge-version: latest
#
- name: Clone the devel branch
run: git clone -b devel https://github.com/openbiosim/ghostly
#
- name: Setup Conda
run: conda install -y -c conda-forge boa anaconda-client packaging
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/ghostly/actions/update_recipe.py
#
- name: Prepare build location
run: mkdir ${{ github.workspace }}/build
#
- name: Build Conda package using conda build
run: conda build -c conda-forge -c openbiosim/label/dev ${{ github.workspace }}/ghostly/recipes/ghostly
#
- name: Upload Conda package
run: python ${{ github.workspace }}/ghostly/actions/upload_package.py
run-install: false
#
- name: Install rattler-build
shell: bash
run: pixi global install rattler-build
#
- name: Write Python variant config
shell: bash
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/ghostly" -c conda-forge -c openbiosim/label/dev --variant-config "${{ github.workspace }}/python_variant.yaml"
#
- name: Install anaconda-client
shell: bash
run: python -m pip install anaconda-client
if: ${{ matrix.platform.name == 'linux' && matrix.python-version == '3.12' }}
#
- name: Upload package
shell: bash
run: python actions/upload_package.py
env:
ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }}
ANACONDA_LABEL: dev
if: ${{ matrix.platform.name == 'linux' && matrix.python-version == '3.11' }}
if: ${{ matrix.platform.name == 'linux' && matrix.python-version == '3.12' }}
68 changes: 40 additions & 28 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ jobs:
platform:
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
exclude:
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.12" # MacOS can't run 3.12 yet...
# No exclusions - release builds all combinations
environment:
name: ghostly-build
defaults:
Expand All @@ -33,31 +30,46 @@ jobs:
SIRE_DONT_PHONEHOME: 1
SIRE_SILENT_PHONEHOME: 1
steps:
- uses: conda-incubator/setup-miniconda@v3
#
- uses: actions/checkout@v4
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
activate-environment: ghostly_build
miniforge-version: latest
#
- name: Clone the main branch
run: git clone -b main https://github.com/openbiosim/ghostly
#
- name: Setup Conda
run: conda install -y -c conda-forge boa anaconda-client packaging
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/ghostly/actions/update_recipe.py
#
- name: Prepare build location
run: mkdir ${{ github.workspace }}/build
#
- name: Build Conda package using conda build
run: conda build -c conda-forge -c openbiosim/label/main ${{ github.workspace }}/ghostly/recipes/ghostly
#
- name: Upload Conda package
run: python ${{ github.workspace }}/ghostly/actions/upload_package.py
ref: main
fetch-depth: 0
#
- name: Compute version info
shell: bash
run: python actions/update_recipe.py
#
- name: Create sdist
run: pip install build && python -m build --sdist && mv dist/*.tar.gz ghostly-source.tar.gz
working-directory: ${{ github.workspace }}
#
- name: Install pixi
uses: prefix-dev/setup-pixi@v0.9.4
with:
run-install: false
#
- name: Install rattler-build
shell: bash
run: pixi global install rattler-build
#
- name: Write Python variant config
shell: bash
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/ghostly" -c conda-forge -c openbiosim/label/main --variant-config "${{ github.workspace }}/python_variant.yaml"
#
- name: Install anaconda-client
shell: bash
run: python -m pip install anaconda-client
if: github.event.inputs.upload_packages == 'true' && matrix.platform.name == 'linux' && matrix.python-version == '3.12'
#
- name: Upload package
shell: bash
run: python actions/upload_package.py
env:
ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }}
ANACONDA_LABEL: main
if: github.event.inputs.upload_packages == 'true' && matrix.platform.name == 'linux' && matrix.python-version == '3.11'
if: github.event.inputs.upload_packages == 'true' && matrix.platform.name == 'linux' && matrix.python-version == '3.12'
60 changes: 34 additions & 26 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@ jobs:
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
exclude:
# Exclude all but the latest Python from all
# but Linux
# Exclude all but the latest Python from macOS
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.10"
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.12" # MacOS can't run 3.12 yet...
python-version: "3.11"
environment:
name: ghostly-build
defaults:
Expand All @@ -35,29 +34,38 @@ jobs:
SIRE_SILENT_PHONEHOME: 1
REPO: "${{ github.event.pull_request.head.repo.full_name || github.repository }}"
steps:
- uses: conda-incubator/setup-miniconda@v3
#
- uses: actions/checkout@v4
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
activate-environment: ghostly_build
miniforge-version: latest
#
- name: Clone the feature branch
run: git clone -b ${{ github.head_ref }} --single-branch https://github.com/${{ env.REPO }} ghostly
#
- name: Setup Conda
run: conda install -y -c conda-forge boa anaconda-client packaging
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/ghostly/actions/update_recipe.py
#
- name: Prepare build location
run: mkdir ${{ github.workspace }}/build
#
- name: Build Conda package using conda build using main channel
fetch-depth: 0
#
- name: Compute version info
shell: bash
run: python actions/update_recipe.py
#
- name: Create sdist
run: pip install build && python -m build --sdist && mv dist/*.tar.gz ghostly-source.tar.gz
working-directory: ${{ github.workspace }}
#
- name: Install pixi
uses: prefix-dev/setup-pixi@v0.9.4
with:
run-install: false
#
- name: Install rattler-build
shell: bash
run: pixi global install rattler-build
#
- name: Write Python variant config
shell: bash
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build (main channel)
if: ${{ github.base_ref == 'main' }}
run: conda build -c conda-forge -c openbiosim/label/main ${{ github.workspace }}/ghostly/recipes/ghostly
#
- name: Build Conda package using conda build using dev channel
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/ghostly" -c conda-forge -c openbiosim/label/main --variant-config "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build (dev channel)
if: ${{ github.base_ref != 'main' }}
run: conda build -c conda-forge -c openbiosim/label/dev ${{ github.workspace }}/ghostly/recipes/ghostly
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/ghostly" -c conda-forge -c openbiosim/label/dev --variant-config "${{ github.workspace }}/python_variant.yaml"
7 changes: 3 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ setup.err
dist/
build/
ghostly.egg-info
src/ghostly/_version.py

# Test output.
output.yaml
Expand All @@ -35,8 +34,8 @@ output.yaml
# VSCode config
.vscode/

# Conda recipe (it is auto-generated)
recipes/ghostly/meta.yaml

# Sire cache files.
cache/

# Auto-generated version file.
src/ghostly/_version.py
23 changes: 23 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
files: ^(src|tests)/
exclude: ^tests/(input|output)/

repos:
# General file quality checks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
args: [--maxkb=1000] # Prevent files larger than 1MB
- id: check-merge-conflict

# Python formatting and linting
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.8.4
hooks:
# Run the formatter
- id: ruff-format
# Run the linter (optional - remove if too strict)
- id: ruff
args: [--fix, --exit-zero] # Auto-fix but don't block commits
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
graft tests
Loading