arda#

arda workflow overview: inputs, processing and outputs. arda workflow overview: inputs, processing and outputs.

ANTIGEN RECEPTOR DOMAIN ANNOTATION

arda annotates T and B cell receptor sequences. Give it sequencing reads — bulk RNA-seq, targeted amplicon or single cell — and it returns AIRR Rearrangement records with V/D/J/C gene calls, FR1–FR4 and CDR1–CDR3 coordinates and the junction, plus a clonotype table. One command, no workflow engine, no container.

pip install arda-mapper
arda amplicon --r1 R1.fq.gz --r2 R2.fq.gz -p SAMPLE -d out/

What it does#

Annotation. A sequence in, an AIRR Rearrangement record out: v_call, d_call, j_call, c_call, the four framework regions, the three CDRs, the junction and its translation, all in 1-based closed query coordinates. Nucleotide or amino acid input, FASTA or FASTQ, all loci searched at once.

Repertoires. arda rnaseq, arda amplicon and arda cells take raw reads to a clonotype table in one call, running mapping, contig assembly and error correction for you.

Records with no read behind them. A CDR3 amino acid plus a V and a J call — a VDJdb row — can be marked up and its junction repaired against the germline anchors. For D inference from an amino-acid junction, use vdjtools.model.annotate_junctions.

Why arda#

IgBLAST-quality regions, without IgBLAST at runtime

Region concordance with IgBLAST is 98–99.7 % on ~7,300 real GenBank mRNA records across five organisms. IgBLAST itself is needed only to rebuild the reference, never to annotate.

Cheap enough to run per sample on a shared node

Mapping holds a flat 300–650 MB of RAM at any read depth. On a 100,000-read TRA amplicon arda uses 3.2× less peak memory than MiXCR and 1.4× less CPU.

Precise on bulk RNA-seq

Across 16 bulk datasets and 5,273 real fragments, recall 0.986 [.982–.989] and a precision lower bound of 0.889 [.881–.897] — a precision bound above every compared tool's upper bound.

It declines rather than guessing

A D call carries the E-value it was accepted on. A junction whose Cys104 anchor is not in the read is not emitted. A germline with no derivable anchor is flagged, not invented.

Runs where your data already is

A plain CLI over named files: the same sample sheet drives the CLI, a SLURM array, the Nextflow module and the Snakemake workflow. A sharded run is byte-identical to a single-node one.

Embeddable

import arda; arda.annotate_sequences(...) returns AIRR record dicts. Search subprocesses and temporary files are managed internally.

Every performance and accuracy figure quoted in these pages is measured, and the method behind each one is recorded on the Benchmarks page.

Where to go next#

If you want to…

Read

run a library end to end for the first time

Quickstart

decide which mode your library needs

Usage

understand a column in the output

Output files and columns

look up a command or a flag

Command reference

analyse a clonotype table

Recipes

scale to a cohort or a cluster

Running on a cluster (SLURM), Pipeline integration

know how the annotation is computed

How arda works

Indices#