A Julia package for computing diversity and clonality metrics for B cell repertoire sequencing data from MIAIRR-formatted files.
- Flexible lineage definition: Use
lineage_id, V-J-CDR3 combinations (LineageCollapse.jl compatible), or custom strategies - Comprehensive metrics: Shannon, Simpson, Gini, Hill numbers, Chao1, D50, and more
- Composable metric selection: Choose which metrics to compute with
+operator - Type-stable design: Proper Julia abstractions for performance
- Multi-donor support: Process single files or entire directories
using Pkg
Pkg.add("RepertoireMetrics")using RepertoireMetrics
# Read a repertoire file (supports .tsv and .tsv.gz)
rep = read_repertoire("sample-001.tsv.gz", VJCdr3Definition();
length_column=:cdr3)Repertoire{Int64}:
Donor: sample-001
Lineages: 15420
Total count: 198350
Top 5 lineages:
IGHV3-23*01|IGHJ4*02|GCGAGAGATCTTGACTACTGGGGCCAGGGAACC: 856 (0.43%)
IGHV4-39*01|IGHJ5*02|TGTGCGAGAGTCGATTACTATGATAGTAGTGGT: 724 (0.37%)
IGHV1-69*01|IGHJ3*02|GCGAGAGATAGTGGCTACGATTTTGACTACTGG: 512 (0.26%)
IGHV5-51*01|IGHJ4*02|TGTGCGAGACATATTGTGGTGGTAACTGCCCC: 398 (0.2%)
IGHV3-48*01|IGHJ6*02|GCGAGAGGGGATAGCAGCAGCTGGTACTTTGAC: 287 (0.14%)
... and 15415 more
# Compute selected metrics using the composable + operator
metrics = compute_metrics(rep, Depth() + SimpsonDiversity() + Clonality() + GiniCoefficient())Metrics (4 computed):
depth: 198350.0
simpson_diversity: 0.9997
clonality: 0.0612
gini_coefficient: 0.548
# Or compute all available metrics (default)
metrics = compute_metrics(rep)