Skip to content

Add IMGT, OGRDB, and airrc-imgt germline reference sources - #3

Merged
ssnn-airr merged 1 commit into
devfrom
imgt-ogrdb-sources
Aug 12, 2026
Merged

Add IMGT, OGRDB, and airrc-imgt germline reference sources#3
ssnn-airr merged 1 commit into
devfrom
imgt-ogrdb-sources

Conversation

@ayeletperes

Copy link
Copy Markdown

Contribute germline reference sources that download the germline and emit it in the format nf-core/airrflow consumes: a reference_base of per-chain FASTAs and, with --igblast, an igblast_base of BLAST databases plus the NCBI internal_data / optional_file trees mirrored from NCBI.

Germline sources are a new kind of source. SourceBase and its rearrangement -> AIRR -> samplesheet path are built for repertoire data, so a ReferenceSource base (Sources/Germline.py) reuses the download half of SourceBase but produces its output through buildReference and the Reference module, kept apart from Sources so the two stay free of an import cycle. Cli.handleDownload branches on source.output; the OAS path is untouched.

  • Sources/Imgt.py: GENElect per-chain fetch (V/D/J 7.14, constant 14.1, mouse light constant 7.5, translated V 7.3), second-
     extraction, and the 200-on-error trap the weekly canary relies on.
  • Sources/Ogrdb.py: api_v2 species/set/release resolution and the segment split (V and C gapped, D and J ungapped, delta D vs C by length).
  • Sources/AirrcImgt.py: the airrc-imgt blend, composed from the OGRDB and IMGT sources (immunoglobulin from OGRDB; TR and the remaining constants from IMGT; no amino acid V).
  • Reference.py and sourcerer reference build: validate a germline folder (a nested reference_base or a flat folder of FASTAs) and build the IgBLAST databases; --check validates without makeblastdb. --igblast builds with makeblastdb (fail-fast when absent); no new runtime dependencies.
  • Weekly check-apis workflow probes the live IMGT and OGRDB APIs.
  • Packaged schema snapshots, unit tests with offline fixtures, and docs (README, NEWS, usage/module pages, IMGT/OGRDB citing).

Contribute germline reference sources that download the germline and emit it in
the format nf-core/airrflow consumes: a reference_base of per-chain FASTAs and,
with --igblast, an igblast_base of BLAST databases plus the NCBI internal_data /
optional_file trees mirrored from NCBI.

Germline sources are a new kind of source. SourceBase and its rearrangement ->
AIRR -> samplesheet path are built for repertoire data, so a ReferenceSource base
(Sources/Germline.py) reuses the download half of SourceBase but produces its
output through buildReference and the Reference module, kept apart from Sources so
the two stay free of an import cycle. Cli.handleDownload branches on source.output;
the OAS path is untouched.

- Sources/Imgt.py: GENElect per-chain fetch (V/D/J 7.14, constant 14.1, mouse
  light constant 7.5, translated V 7.3), second-<pre> extraction, and the
  200-on-error trap the weekly canary relies on.
- Sources/Ogrdb.py: api_v2 species/set/release resolution and the segment split
  (V and C gapped, D and J ungapped, delta D vs C by length).
- Sources/AirrcImgt.py: the airrc-imgt blend, composed from the OGRDB and IMGT
  sources (immunoglobulin from OGRDB; TR and the remaining constants from IMGT;
  no amino acid V).
- Reference.py and `sourcerer reference build`: validate a germline folder (a
  nested reference_base or a flat folder of FASTAs) and build the IgBLAST
  databases; --check validates without makeblastdb. --igblast builds with
  makeblastdb (fail-fast when absent); no new runtime dependencies.
- Weekly check-apis workflow probes the live IMGT and OGRDB APIs.
- Packaged schema snapshots, unit tests with offline fixtures, and docs (README,
  NEWS, usage/module pages, IMGT/OGRDB citing).
@ayeletperes
ayeletperes requested a review from ssnn-airr August 10, 2026 21:14
@ssnn-airr
ssnn-airr merged commit 986a73e into dev Aug 12, 2026
8 checks passed
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.

2 participants