Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a18f996
Address 'command' referenced before assignment error in tests
woodsh17 Oct 10, 2025
2d15730
Adjusting command format for design_macrocyclic_binder.sh and design_…
woodsh17 Oct 10, 2025
a45c3f9
Fail tests when example scripts exit non-zero
woodsh17 Oct 10, 2025
f43a81d
Changing number of designs for examples from 10 to 2 to speed up tests
woodsh17 Oct 10, 2025
778f8d4
Fix input_pdb path in design_macrocyclic_binder and fix incorrect cal…
woodsh17 Oct 10, 2025
a9b748b
Add print statement to list failed examples
woodsh17 Oct 14, 2025
5dff3eb
These changes split the examples up in chunks and runs the different …
woodsh17 Oct 17, 2025
e2378c7
Change num_designs in examples back to 10, since this is reset in tes…
woodsh17 Oct 17, 2025
6d0036b
Fix typo in main.yml in test_diffusion options
woodsh17 Oct 17, 2025
a629d43
Add step to cd into tests directory in main.yml
woodsh17 Oct 17, 2025
17f315b
Add index of chunk to test directory name
woodsh17 Oct 17, 2025
260692d
Edits to test_diffusion to make change setUp to setUpClass to make th…
woodsh17 Oct 20, 2025
a570b2b
Edit main.yml workflow so if an example fails, the test doesn't pass
woodsh17 Oct 21, 2025
4dd3a5f
Remove -o option from pipefail
woodsh17 Oct 21, 2025
56feb3b
Remove set pipefail
woodsh17 Oct 21, 2025
dc1867d
Edit main.yml so workflow runs
woodsh17 Oct 21, 2025
4d870c0
In setUpClass check that directory doesn't already exists, so tests d…
woodsh17 Oct 22, 2025
be5b7b6
Preseed DGL so avoid examples that are ran at the same time failing
woodsh17 Oct 22, 2025
681874e
Reduce length for design_tetrahedral_oligos to 600 to reduce run time
woodsh17 Oct 22, 2025
4aea4fd
Change design_nickel.sh num_designs back to 15
woodsh17 Oct 23, 2025
ead721f
Remove try block with except FileExistsError that isn't needed
woodsh17 Oct 24, 2025
dd7643d
Revert "Remove try block with except FileExistsError that isn't needed"
woodsh17 Nov 12, 2025
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
30 changes: 29 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,13 @@ jobs:
uv pip install --no-cache-dir -e . --no-deps
rm -rf ~/.cache # /app/RFdiffusion/tests

- name: Preseed DGL backend
shell: bash
run: |
mkdir -p "$HOME/.dgl"
printf '{"backend": "pytorch"}' > "$HOME/.dgl/config.conf"
echo "DGLBACKEND=pytorch" >> "$GITHUB_ENV"

- name: Download weights
run: |
mkdir models
Expand All @@ -87,8 +94,29 @@ jobs:
- name: Setup and Run ppi_scaffolds tests
run: |
tar -xvf examples/ppi_scaffolds_subset.tar.gz -C examples
cd tests && uv run python test_diffusion.py
total_chunks=$(nproc)
cd tests

#launch all chunks in background and record PIDs + labels
pids=""
for chunk_index in $(seq 1 $total_chunks); do
echo "Running chunk $chunk_index of $total_chunks"
uv run python test_diffusion.py --total_chunks $total_chunks --chunk_index $chunk_index &
pids="$pids $!"
done

# wait for each and track failures
fail=0
for pid in $pids; do
if ! wait "$pid"; then
echo "A chunk (PID $pid) failed"
fail=1
else
echo "A chunk (PID $pid) passed"
fi
done
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I would personally would start to consider moving this logic into Python/shell script that live inside repository so it could be run/tested without the need to trigger the GH action. But for simple cases (like above) current approach is also works. 👍


exit "$fail"

# - name: Test with pytest
# run: |
Expand Down
19 changes: 8 additions & 11 deletions examples/design_macrocyclic_binder.sh
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
#!/bin/bash

prefix=./outputs/diffused_binder_cyclic2
# Note that in the example below the indices in the
# input_pdbs/7zkr_GABARAP.pdb file have been shifted
# by +2 in chain A relative to pdbID 7zkr.

# Note that the indices in this pdb file have been
# shifted by +2 in chain A relative to pdbID 7zkr.
pdb='./input_pdbs/7zkr_GABARAP.pdb'

num_designs=10
script="../scripts/run_inference.py"
$script --config-name base \
inference.output_prefix=$prefix \
inference.num_designs=$num_designs \
../scripts/run_inference.py \
--config-name base \
inference.output_prefix=example_outputs/diffused_binder_cyclic2 \
inference.num_designs=10 \
'contigmap.contigs=[12-18 A3-117/0]' \
inference.input_pdb=$pdb \
inference.input_pdb=./input_pdbs/7zkr_GABARAP.pdb \
inference.cyclic=True \
diffuser.T=50 \
inference.cyc_chains='a' \
Expand Down
18 changes: 8 additions & 10 deletions examples/design_macrocyclic_monomer.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
#!/bin/bash

prefix=./outputs/uncond_cycpep
# Note that the indices in this pdb file have been
# shifted by +2 in chain A relative to pdbID 7zkr.
pdb='./input_pdbs/7zkr_GABARAP.pdb'
# Note that in the example below the indices in the
# input_pdbs/7zkr_GABARAP.pdb file have been shifted
# by +2 in chain A relative to pdbID 7zkr.

num_designs=10
script="../scripts/run_inference.py"
$script --config-name base \
inference.output_prefix=$prefix \
inference.num_designs=$num_designs \
../scripts/run_inference.py \
--config-name base \
inference.output_prefix=example_outputs/uncond_cycpep \
inference.num_designs=10 \
'contigmap.contigs=[12-18]' \
inference.input_pdb=$pdb \
inference.input_pdb=input_pdbs/7zkr_GABARAP.pdb \
inference.cyclic=True \
diffuser.T=50 \
inference.cyc_chains='a'
4 changes: 2 additions & 2 deletions examples/design_tetrahedral_oligos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
# This external potential promotes contacts both within (with a relative weight of 1) and between chains (relative weight 0.1)
# We specify that we want to apply these potentials to all chains, with a guide scale of 2.0 (a sensible starting point)
# We decay this potential with quadratic form, so that it is applied more strongly initially
# We specify a total length of 1200aa, so each chain is 100 residues long
# We specify a total length of 1200aa, so each chain is 100 residues long - length updated to 600aa, so each chain is 50 residues long for testing to run faster

python ../scripts/run_inference.py --config-name=symmetry inference.symmetry="tetrahedral" inference.num_designs=10 inference.output_prefix="example_outputs/tetrahedral_oligo" 'potentials.guiding_potentials=["type:olig_contacts,weight_intra:1,weight_inter:0.1"]' potentials.olig_intra_all=True potentials.olig_inter_all=True potentials.guide_scale=2.0 potentials.guide_decay="quadratic" 'contigmap.contigs=[1200-1200]'
python ../scripts/run_inference.py --config-name=symmetry inference.symmetry="tetrahedral" inference.num_designs=10 inference.output_prefix="example_outputs/tetrahedral_oligo" 'potentials.guiding_potentials=["type:olig_contacts,weight_intra:1,weight_inter:0.1"]' potentials.olig_intra_all=True potentials.olig_inter_all=True potentials.guide_scale=2.0 potentials.guide_decay="quadratic" 'contigmap.contigs=[600-600]'
Loading
Loading