vdjdb-format
Normalise the controlled-vocabulary fields of a raw VDJdb chunk TSV to the form the database records - IMGT V/D/J gene and allele names including Adaptive ImmunoSEQ and Arden conversions, IPD-IMGT/HLA
SKILL.mdskills/vdjdb-format/SKILL.md
GitHubValidate submission formatting
Read AUTHORITIES.md. Use the current chunk specification and a shipping header rather than positional column numbers or copied column lists.
Run vdjdb qc <file> first. Resolve malformed headers, wrong separators and shifted fields from
the original source. An invalid layout cannot be repaired by renaming values in the shifted cells.
Name the publication
Use a verified PMID_<id>.tsv, including for PubMed-indexed preprints. Without a PMID, use
DOI_<doi>.tsv with / replaced by _. Extract the DOI from its URL first; exclude hostnames,
content, v1 and .full. Verify the reference against PubMed or the publisher rather than
inferring it from a filename.
Before a rename, check for a target collision. Preserve the source bytes, update the identity registry on the data-issue branch and verify all record IDs and content hashes. Record the old and new paths on the issue. A rename can amend provenance keys without changing observations.
Inspect assembly before editing
Preserve supplied sequence and segment cells when the build already resolves them. Inspect the harmonisation, nomenclature, junction and submitted-call reports. Do not manually repeat allele selection, old-name conversion or terminal-flank repair at import.
| Field | Review |
|---|---|
| Species | Declared vocabulary, including BosTaurus; no borrowed germline model |
| V/D/J | IMGT membership and locus; Arden/Adaptive conversions from reviewed tables |
| Multiple segment calls | Preserve the reported alternatives; check each call |
| Human MHC | IPD-IMGT/HLA membership, reported resolution and expression suffix |
| Nonhuman MHC | proofreading/mhc_nonhuman.tsv and declared patches/mhc.dict corrections |
| Method tokens | Declared vocabulary and actual experimental evidence |
| Reference | Verified publication/submission identifier and reviewed aliases |
Check suspicious allele-number runs against IMGT and the source. A numeric cutoff is not evidence that an allele is wrong. Nonfunctional calls are advisory; do not substitute a functional allele without sequence or source support.
Use H2- murine names where the authority maps them. A chain name and a haplotype molecule name
are different levels of reporting. Low-resolution human calls remain low resolution unless the
source provides more detail.
Class I requires mhc.b=B2M. Class II cannot use B2M; a reported class-II chain may have its
unreported partner blank. Resolve supported names and inspect partner inference where available;
never infer restriction from peptide length or a peptide-binding prediction.
Preserve frequency and assay meaning
A percentage for a clonotype is not automatically a subset frequency. Keep method.frequency,
its count/total and meta.subset.frequency separate. Do not fill one from another.
A platform name is not sequencing evidence by itself. A sorting term does not become verification
unless the paper reports the reconstructed receptor being tested.
Record every proposed cell change with file/row, old/new value and authority. A missing authority entry requires a reviewed addition, not a guessed nearest spelling. Apply data changes on the chunk or data-issue branch, separately from build code. Re-run QC and proofread.