Skip to main content

Crate immunum

Crate immunum 

Source
Expand description

High-performance antibody and TCR sequence numbering.

immunum numbers antibody and T-cell receptor (TCR) variable domain sequences using Needleman-Wunsch semi-global alignment against position-specific scoring matrices (PSSM) built from consensus sequences with BLOSUM62 substitution scores. Chain type is detected automatically by aligning against all requested chains and selecting the best match.

§Supported chains and schemes

ChainTypeSchemes
IGHAntibody heavyIMGT, Kabat
IGKAntibody kappaIMGT, Kabat
IGLAntibody lambdaIMGT, Kabat
TRATCR alphaIMGT
TRBTCR betaIMGT
TRGTCR gammaIMGT
TRDTCR deltaIMGT

§Quick start

use immunum::{Annotator, Chain, Scheme};

// Create an annotator for all antibody chains with IMGT numbering
let annotator = Annotator::new(&[Chain::IGH, Chain::IGK, Chain::IGL], Scheme::IMGT, None).unwrap();

let sequence = "QVQLVQSGAEVKRPGSSVTVSCKASGGSFSTYALSWVRQAPGRGLEWMGGVIPLLTITNYAPRFQGRITITADRSTSTAYLELNSLRPEDTAVYYCAREGTTGKPIGAFAHWGQGTLVTVSS";
let result = annotator.number(sequence).unwrap();

println!("Chain:      {}", result.chain);       // IGH
println!("Confidence: {:.2}", result.confidence);

// Iterate over (amino acid, IMGT position) pairs
for (aa, pos) in sequence.chars().zip(result.positions.iter()) {
    println!("{aa} -> {pos}");
}

§Key types

  • Annotator — main entry point; holds loaded scoring matrices and numbers sequences
  • NumberingResult — the output of Annotator::number: positions, chain, confidence
  • Position — an IMGT/Kabat position such as 111 or 111A
  • Chain — chain type (IGH, IGK, IGL, TRA, TRB, TRG, TRD)
  • Scheme — numbering scheme (IMGT or Kabat)

§Modules

  • annotator — high-level annotation API
  • alignment — Needleman-Wunsch semi-global alignment
  • numbering — IMGT and Kabat numbering rules
  • scoring — position-specific scoring matrices
  • io — FASTA parsing and TSV/JSON/JSONL output
  • types — core domain types
  • error — error types

Re-exports§

pub use numbering::imgt;
pub use numbering::kabat;
pub use alignment::align;
pub use alignment::Alignment;
pub use annotator::Annotator;
pub use annotator::NumberingResult;
pub use annotator::SegmentResult;
pub use annotator::DEFAULT_MIN_CONFIDENCE;
pub use error::Error;
pub use error::Result;
pub use scoring::ScoringMatrix;
pub use types::Chain;
pub use types::Insertion;
pub use types::NumberingRule;
pub use types::Position;
pub use types::Region;
pub use types::Scheme;
pub use io::read_fasta;
pub use io::read_input;
pub use io::NumberedRecord;
pub use io::OutputFormat;
pub use io::Record;
pub use validation::load_validation_csv;
pub use validation::validate_entry;
pub use validation::ValidationEntry;
pub use validation::ValidationResult;

Modules§

alignment
Sequence alignment using Needleman-Wunsch algorithm
annotator
High-level API for sequence annotation and chain detection
error
Error types for immunum
io
Input parsing and output formatting for sequence records
numbering
scoring
Scoring matrices for sequence alignment
types
Core types for sequence numbering
validation
Validation against numbered test data