Skip to content

feat: keep AlphaPulldown's own files in alphapulldown/ and debug/ - #664

Merged
DimaMolod merged 1 commit into
mainfrom
feat/alphapulldown-output-dir
Oct 14, 2026
Merged

DimaMolod merged 1 commit into
mainfrom
feat/alphapulldown-output-dir

Conversation

@DimaMolod

Copy link
Copy Markdown
Collaborator

A fold's output directory had grown a scatter of AlphaPulldown's own JSON files next to AlphaFold's outputs. They now go in two subdirectories, and AlphaFold's own files stay where AlphaFold, AlphaJudge and users expect them.

<fold>/
  …AlphaFold outputs, unchanged…
  completed_fold.txt              (the workflow's sentinel, unchanged)
  alphapulldown/
    prediction.json               fold record (was alphapulldown_prediction.json)
    inference_kernels.json        which kernels ran (was at the top)
    feature_metadata/             copied feature metadata (was at the top)
  debug/                          only with --debug_msas / --debug_templates
    templates/                    (AF2's was templates_debug/)
  • Bug fix along the way: AF3 wrote its --debug_templates mmCIFs, and a note on any template that failed to convert, into the current working directory. They now go to the fold's debug/templates/.
  • One kernel-record writer for AF2 and AF3 (prediction/inference_kernels.py). It writes atomically and never fails a finished prediction; AF2's used to write in place and could raise.
  • Older folds keep working.
    • A 2.10-era top-level inference_kernels.json is moved into alphapulldown/ on its next entry.
    • ModelCIF conversion and AF3 ModelCIF metadata still read feature metadata copied to the top.
    • alphapulldown_prediction.json was never released, so it needs no compatibility.
  • Nothing downstream reads the moved files. Checked AlphaJudge and AlphaPulldownSnakemake: neither reads the kernel record, the fold record or the metadata copies.

Verification

  • CPU equivalence harness, the 15 AF3 inputs with debug MSAs and templates on: all 107 files main writes are byte-identical at their new locations (76 moved). The only new files are the 3,317 AF3 template debug mmCIFs that used to land in the working directory.
  • Unit + integration, both release images, branch wrappers on both sides: identical to main, plus 5 new tests (layout, kernel-record migration, metadata lookup in both places). AF2 image: 979 passed. AF3 image: 1049 passed.
  • GPU: the cluster checks are updated to the new layout. The AF3 resume check now simulates 2.10's layout, so the compatibility path runs on GPU too. Full AF2 and AF3 suites run on main once this round is merged.

🤖 Generated with Claude Code

A fold's directory now holds AlphaFold's outputs at the top, and what
AlphaPulldown adds for itself in two subdirectories:

- alphapulldown/: the fold record (prediction.json, was
  alphapulldown_prediction.json), the inference-kernel record
  (inference_kernels.json), and the copied feature metadata
  (feature_metadata/).
- debug/: what --debug_msas and --debug_templates write; templates in
  debug/templates/ (AF2's was templates_debug/). AF3 wrote its template debug
  files, and a note on any template that failed to convert, into the current
  working directory; they now go beside the fold.

AF2 and AF3 share one kernel-record writer (atomic, never failing a finished
prediction). Folds from 2.10 keep working: a top-level inference_kernels.json is
moved into alphapulldown/ on its next entry, and ModelCIF conversion and AF3
ModelCIF metadata still read feature metadata copied to the top. AlphaFold's own
files, completed_fold.txt (the workflow's) and what AlphaJudge reads stay where
they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@DimaMolod
DimaMolod merged commit 228c5ee into main Oct 14, 2026
6 checks passed
@DimaMolod
DimaMolod deleted the feat/alphapulldown-output-dir branch October 14, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant