Skip to main content

RBCeq2: blood group allele inference

Lifeblood Logo

Version v2.4.4

RBCeq2 infers blood-group genotypes and phenotypes from supplied variant calls using the curated ISBT allele definitions distributed with the package. Deterministic rules select and exclude candidate alleles and pairs; --debug records the evidence and named exclusions behind the result.

Install and run

Python 3.12 or newer is required.

python -m pip install rbceq2==2.4.4
rbceq2 --version
rbceq2 --vcf sample.vcf.gz --out result --reference_genome GRCh38 --debug

Supply GRCh37 or GRCh38 to match the input coordinates. A single-sample VCF, multi-sample VCF, or directory of separate .vcf/.vcf.gz files can be supplied. Both ordinary gzip and uncompressed VCF input are read. For a directory:

rbceq2 --vcf samples/ --out cohort --reference_genome GRCh38 --processes 4 --debug

Use rbceq2 --help for all current options. Useful switches include:

Option Purpose
--phased Use genotype phasing and phase-set information where available.
--RH Include RHD/RHCE for the supported inputs described below.
--HPAs Include human platelet antigen results.
--no_filter Disable FILTER-based allele exclusion; inference checks still apply.
--validate Run additional VCF format checks. Basic input checks always run.
--PDFs Generate per-sample PDF reports.
--min_size Minimum indel/SV size for fuzzy structural matching; default 10.
--processes Worker processes; default 1. Large input loading also uses memory.

Input contract

Provide genotyped VCF calls from an upstream caller, with its calling and coverage QC completed. Native gVCFs are not supported in v2.4.4: unspecified ALT placeholders such as <NON_REF>/<*> and reference blocks require additional handling. A gVCF can be read as text and still produce incomplete or misleading inference; use the caller's final genotyped VCF.

GT must be the first FORMAT key when the row is used for inference. Called indices must refer to REF (0) or an ALT declared by that row. Missing alleles use .. Supported GT spellings use / or | between canonical integer indices; initial phasing separators and leading-zero indices are explicitly unsupported.

Small-variant multiallelic records are processed into per-ALT calls internally. Some reference-containing multiallelic configurations can remain partially unresolved. Inspect Undetermined results and normalize such sites upstream where appropriate. Mixed symbolic structural/small-variant records need caller-specific assessment and are not a general supported input route.

Chromosome copies and gene copies

These are different statements and lead to different output shapes:

  • A valid called haploid GT outside PAR on X/Y supplies per-sample evidence for one chromosome in that region.
  • Gene copy number can be read from GT ploidy only when the upstream caller explicitly uses that convention.

Called structural deletions are evaluated against the curated database and can constrain which chromosome carries an overlapping allele. The deletion's presence and the gene-copy interpretation inferred from GT are kept distinct.

RHD and RHCE

Use --RH for long-read VCFs with structural-variant information, or for callers that explicitly encode RH gene copy number as GT ploidy. Ordinary short-read variant calls without either source of information are unsupported for RH inference because of the similarity between RHD and RHCE.

Compatibility depends on the caller's stated encoding convention. Synthetic examples establish the software's behavior; they do not establish compatibility with every caller.

Structural-variant selection

Structural variants are fuzzy matched against allele definitions for the selected --reference_genome.

FILTER and missing data

By default, PASS and absent filtering (. or empty) do not exclude an allele. Other FILTER values are classified: recognized values unrelated to call correctness can be retained; call-correctness failures and unrecognized values can exclude. Unrecognized values are named in warnings. --no_filter bypasses this FILTER-based exclusion, while genotype validity and inference rules remain active.

A no-call such as ., ./., or a partial missing GT becomes NO_DATA and alleles requiring that uncalled variant are excluded by name. All nonmissing indices must still be valid for the row.

A reference output does not establish sequencing coverage. Missing records can lead to reference defaults, and a no-call can still reach a reference fallback when no candidate remains. Inspect the debug evidence and exclusions; a fallback is not a measured homozygous-reference call.

Outputs and interpretation

With --out result, the main outputs are:

  • result_geno.tsv
  • result_pheno_numeric.tsv
  • result_pheno_alphanumeric.tsv
  • result_<run UUID>_log.txt

The first TSV column identifies the sample; its heading contains the run UUID. Cohort input uses the VCF sample names. Single-file and directory input uses the filename with its final suffix removed, so sample.vcf.gz is named sample.vcf.

Slot value Meaning
A named allele The selected database allele.
- No second chromosome slot in the inferred single-copy region.
An absent-gene subtype, e.g. RHAG*01N The database's designation for a missing gene copy without naming a specific breakpoint-defined allele.
Novel_gene_deletion A missing gene copy for which no applicable database absence subtype is available. GT-based use depends on the caller convention above.
Undetermined An allele slot that could not be named. Both slots can be undetermined when the blood group cannot be interpreted.

allele/Undetermined retains one resolved slot. Undetermined/Undetermined can represent a whole-group refusal; it does not establish the physical copy count. Neither is a database allele.

Genotype alternatives are comma-separated. Phenotype alternatives are listed independently and can be deduplicated, so entries must not be joined by position between files. A slash can be part of a phenotype name.

Malformed retained GTs fail the affected sample and are reported with a named error; the other samples in a cohort or directory can continue. Shared header/FORMAT problems can prevent loading an input file. A nonzero process exit and the log must be reviewed even when some result files were written.

PDF reports

--PDFs writes reports to <output prefix>_PDFs/. Each report preserves the exact sample identity used in the TSVs, including suffixes and letter case.

Database v2.5.1

The packaged db.tsv is the source of allele definitions used by inference. It is curated against ISBT definitions and includes explicit modelling and nomenclature choices. Package and database versions are reported separately by --version.

Documentation and reporting issues

This README describes the v2.4.4 input and output contract. Longer PDF worked examples attached to earlier releases are historical and may describe earlier behavior; use the version-matched contract here when interpreting current output.

When reporting an issue, include the package/database versions, genome build, command, and the complete affected sample/blood-group debug block where shareable. State the caller and its genotype/copy-number convention. Expected answers can require biological adjudication; a successful run or agreement with stored gold does not establish clinical validity.

Metadata

Release files for rbceq2 2.4.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rbceq2 2.4.4
File Size Uploaded Provenance Actions
rbceq2-2.4.4.tar.gz 479.0 kB Without provenance Details for rbceq2-2.4.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for rbceq2 2.4.4
File Interpreter ABI Platform Actions
rbceq2-2.4.4-py3-none-any.whl Python 3 none any Details for rbceq2-2.4.4-py3-none-any.whl

Total release size: 799.1 kB

Release files / rbceq2-2.4.4.tar.gz

Download URL rbceq2-2.4.4.tar.gz
Size 479.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fbc0864d7c1365aace98900d6b86b51b700a6f63a63b5769b7fe28e5e55bea56
BLAKE2b-256 checksum
How to use checksums
e907ed87f3e876e389b27dfeed314ed76ef01ea69210f56b0603667eb2acd8bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / rbceq2-2.4.4-py3-none-any.whl

Download URL rbceq2-2.4.4-py3-none-any.whl
Size 320.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9091276c8d954081d673e6fd254936f26e7d4ff59edb581e3d8c1a089ded576c
BLAKE2b-256 checksum
How to use checksums
47f2b894fedcfe01ac3ec381516f0651d7affd73b02f4fc407ca5586d5a03d1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Security for rbceq2 2.4.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page