Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 6 additions & 4 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
Expand All @@ -31,9 +31,11 @@ jobs:
python -m pip install .
- name: Run pre-commit hooks
run: |
git fetch origin main
BASE_REF="$(git merge-base HEAD origin/main)"
pre-commit run --from-ref "$BASE_REF" --to-ref HEAD
if [ "${{ github.event_name }}" = "pull_request" ]; then
pre-commit run --from-ref origin/${{ github.base_ref }} --to-ref HEAD
else
pre-commit run --from-ref HEAD~1 --to-ref HEAD
fi
- name: Test with coverage
run: |
coverage run --source=abcfold --module pytest --verbose tests && coverage report --show-missing
Expand Down
61 changes: 61 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,67 @@ Below are scripts for adding MMseqs2 MSAs and custom templates to AlphaFold3 inp
> [!WARNING]
> These scripts will only modify the input JSON files, I.E. they will NOT run AlphaFold3, Boltz, Chai-1, OpenFold3 and Protenix.

### Scoring existing Boltz complexes and poses

ABCFold also includes a Boltz2 utility for scoring existing complex coordinates
or fixed-receptor ligand poses without running Boltz diffusion sampling. See
[Boltz Existing-Structure Scoring](docs/boltz_existing_scoring.md) for
confidence scoring, affinity scoring, and `--reuse_trunk` examples.

After installation, use `boltz-score-existing` directly:

```bash
boltz-score-existing poses.sdf --receptor receptor.pdb --affinity
```

For a checkout managed with `uv`, either run through `uv`:

```bash
uv run boltz-score-existing poses.sdf --receptor receptor.pdb --affinity
```

or activate the project environment first:

```bash
source .venv/bin/activate
boltz-score-existing poses.sdf --receptor receptor.pdb --affinity
```

The module form
`python -m abcfold.boltz.score_existing` remains available for development
checkouts.

### Docking ligand SMILES into a crystal pocket with Boltz

ABCFold also includes a Boltz-native docking wrapper for the case where a
crystal receptor and pocket are known, but the ligand pose should be generated
from SMILES by Boltz. See
[Boltz Crystal-Pocket Docking](docs/boltz_crystal_docking.md) for crystal
template, pocket constraint, reference-ligand, and affinity examples.

After installation, use `boltz-dock-crystal` directly:

```bash
boltz-dock-crystal receptor.pdb "CCO" --pocket_residue A:145 --affinity
```

For a checkout managed with `uv`, either run through `uv`:

```bash
uv run boltz-dock-crystal receptor.pdb "CCO" --pocket_residue A:145 --affinity
```

or activate the project environment first:

```bash
source .venv/bin/activate
boltz-dock-crystal receptor.pdb "CCO" --pocket_residue A:145 --affinity
```

The module form
`python -m abcfold.boltz.dock_crystal` remains available for development
checkouts.

### Adding MMseqs2 MSAs and templates

To add MMseqs2 MSAs and templates to the AlphaFold3 input JSON, you can use the `mmseqs2msa`:
Expand Down
1 change: 1 addition & 0 deletions abcfold/boltz/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Boltz utility entrypoints for ABCFold."""
Loading
Loading