Repository navigation
Package ABCFold as a cofolding backend: pinned engines, MSA subsystem, batch mode - #9
Open
SergeiNikolenko wants to merge 1 commit into
Open
SergeiNikolenko wants to merge 1 commit into
SergeiNikolenko wants to merge 1 commit into
Conversation
…and batch mode - src/ layout, pyproject only; read-only backends.toml pins (Boltz 2.2.1, Chai-1 0.6.1, Protenix 2.0.0, OpenFold3 0.5.0, RF3) in new abcfold2-* envs - settings from data/defaults.toml + CLI/env, no writable config.ini - `abcfold run|msa|batch|envs` CLI; cofolding report v2 JSON - MSA subsystem: ColabFold server client with sha256 cache, custom A3M, AF3 data JSON reuse, per-engine export, guard that fails on lost MSAs - AF3 adapter (docker/apptainer) and batch runner - GPU selection maps --gpus through the inherited CUDA_VISIBLE_DEVICES - fixes for the defects found on the KRAS G12D fixture (argparse None, Protenix ions/MSA dir/rdkit/CUDA_HOME, PAE files, OpenFold3 template fetch, empty custom A3M, Chai weights cache and pyarrow)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ABCFold could not serve as a platform backend: per-run env creation pulled incompatible torch versions, several engines silently lost the MSA or failed on ions,
--gpus 0escaped the caller's GPU allocation, and results had no structured schema. This PR turns it into a package with pinned backends and a JSON report that the platform can consume.What changes:
src/layout,pyproject.tomlonly. Backend versions are pinned in a read-onlybackends.toml(Boltz-2 2.2.1, Chai-1 0.6.1, Protenix 2.0.0 with the public v1.0.0 checkpoint, OpenFold3 0.5.0, RF3) and installed into newabcfold2-*envs, so existingabcfold-*envs are left alone.data/defaults.tomlplus CLI/env overrides;config.iniis no longer written.abcfold run | msa | batch | envs; every run writesreport.json(cofolding-report-v2: engines, samples, scores, MSA stats).*_data.json, per-engine export, and a guard that fails a run when an engine receives fewer MSA rows than requested.--gpusindices are mapped through the inheritedCUDA_VISIBLE_DEVICES; docker gets physical ids.Nonedefaults, Protenix ion entities / temporary MSA dir / duplicate rdkit / missingCUDA_HOME, PAE files rewritten in place, OpenFold3 fetching templates at run time, Chai weights re-downloaded per env, missingpyarrowfor Chai MSAs.Validation:
pytest: 198 passed, 4 skipped (including the network MSA tests).CUDA_VISIBLE_DEVICES=2 abcfold run ... --gpus 0 -b -c -p -o --msa custom), KRAS G12D + GDP + Mg + MRTX1133 against 7RPZ; all engines ran on the allocated GPU and saw the full MSA:Chai-1 and Protenix put the ligand in the wrong pocket with high confidence; this matches earlier runs and is model behaviour.
Not covered: AlphaFold 3 runs only where its weights and databases live (Lobachevsky); the adapter is unit-tested here.
protenix-v2weights are not publicly downloadable (403), so the pin usesprotenix_base_default_v1.0.0.