scBCR-seq
An scBCR-seq analysis takes single-cell RNA-seq where the same cells also had their B-cell receptor sequenced. The receptor rides along with the cells, so every single-cell step runs as it does elsewhere, and the B-cell steps read each cell's clone, isotype and mutations.
Start an scBCR-seq analysis
In a project, click New session and choose scBCR-seq as the kind of analysis. The sidebar marks scBCR-seq with a cell beside a Y-shaped antibody.
What to upload
Each sample's gene expression, and beside it the same cells' receptor:
- gene expression: anything the single-cell upload reads — Cell Ranger's
filtered_feature_bc_matrixfolder or its.h5file,.h5ad, loom, a Seurat or SingleCellExperiment.rds, or a count table, alone or in a.zipor.tar.gz; - the receptor: 10x Genomics' V(D)J output
(
filtered_contig_annotations.csvorairr_rearrangement.tsv), or any AIRR rearrangement table with acell_idcolumn — IgBLAST through Change-O, nf-core/airrflow, Dandelion or MiXCR.
A receptor table is paired with its expression sample by the barcodes they share, not by its
name: GEO sends the two libraries with matching prefixes, but the names cannot be trusted and the barcodes can. The
suffix a pipeline adds to a barcode (-1, a sample prefix) does not matter, because both sides are
compared on the 10x barcode inside the name. A table whose barcodes match no sample is reported and left out.
An upload with no receptor table is refused, and says where the data belongs instead: gene expression alone is a single-cell RNA-seq session, receptors without the cells a BCR repertoire one.
Give each sample its condition in the metadata dialog. Mutation frequency, isotypes, selection and diversity are all compared between conditions.
Cells, not samples
A BCR repertoire analysis measures a sample: its clone table is samples by clones, and every figure compares samples. It reads single-cell files too, but it counts the cells away. What the cells add is the pairing of a transcriptome with a receptor, so the questions change: which cell states hold the expanded clones, how somatic hypermutation rises along a differentiation path, which clones span two states or two time points, which isotype each cell carries, and the light chain, which only single-cell data pairs with its heavy chain.
So the data object is the single-cell one. Each cell keeps a column for everything a step groups or colours by
(clone, clone_size, isotype, mu_freq, v_gene,
cdr3_aa, light_chain and the rest), and the sequences, the clones and each cell's chains
are kept beside them. A cell with no receptor is not dropped: a B-cell sample holds T cells and
myeloid cells too, and the clustering needs them. The B-cell steps work on the cells that have a receptor and say
how many they left out.
The workflow
The single-cell steps run as they do in a single-cell RNA-seq analysis: quality control, doublets, normalisation, variable genes, PCA, integration, clustering, annotation, markers, pseudobulk, trajectories and pathways. Three of them differ, because an antibody is expression as well as a receptor:
- Remove Outliers judges a cell on the counts it has outside its own antibody. A plasma cell is an antibody factory: its heavy and light chain can be most of its transcriptome, so a filter on total counts calls it a doublet and throws it away. The totals as they were are kept beside the corrected ones.
- Highly Variable Genes leaves out the receptor's own V, D and J segments and the antibody's constant genes. A plasma cell's own antibody is its largest transcript by far, so with them in, the cells of a clone cluster together by their receptor instead of by their state. Nothing is lost: the isotype is read from the receptor's own constant gene.
- Explore UMAP embeddings also colours the UMAP by the receptor: the clone's size, the isotype, the mutation frequency and the chains the cell carries.
The B-cell steps sit after them. Receptor QC and Clone Definition come first, since everything later reads the clones; Clones and Cell States, Somatic Hypermutation and Lineage Trees need the cell types to be annotated to be worth reading.
Mutations need a germline alignment
Somatic hypermutation is counted by comparing each sequence with the germline it started from, so the uploaded
table has to carry that alignment. Cell Ranger writes none: its
filtered_contig_annotations.csv has no germline at all, and its airr_rearrangement.tsv
writes the whole contig against the whole reference, which is not an alignment. A plain 10x upload therefore gets no
mutation frequencies, and Somatic Hypermutation and Selection Pressure say so in the figure and name what to run.
Lineage Trees still work, rooted at each clone's own consensus instead of its germline.
Re-annotating the contigs gives them the alignment. With Immcantation:
AssignGenes.py igblast, then MakeDb.py igblast --10x, which writes the IMGT-gapped
alignment that mutations by region and selection need. nf-core/airrflow and Dandelion write it too, and MiXCR
carries its own alignments. Upload the re-annotated table in place of Cell Ranger's.
Clones: Gupta et al. 2015, Bioinformatics 31:3356 (Change-O); Nouri & Kleinstein 2018, Bioinformatics 34:i341 (SCOPer); the threshold: Yaari et al. 2013, Front Immunol 4:358 (SHazaM, findThreshold). Light chains split a clone as in Zhou & Kleinstein 2019, J Immunol 203:1687. Mutations: Yaari et al. 2012, Nucleic Acids Res 40:e134 (observedMutations); selection is the expected-frequency half of BASELINe (Yaari et al. 2012, Front Immunol 3:276) without its mutability model, so read the direction and the comparison between groups rather than the number. Paired trees: Jensen et al. 2024, J Immunol 212:1843. The clones two cell states share: Zhang et al. 2018, Nature 564:268 (STARTRAC). The ambient and cross-sample filters follow 10x Genomics' enclone (NUMI and NCROSS).
Step reference
| Step | Stage | What it does | You get | Key inputs |
|---|---|---|---|---|
| Initial Plot | Setup | Reads each sample's gene expression and the same cells' receptor tables, pairs each table with the sample whose barcodes it shares, keeps each cell's best heavy and light chain, measures the mutations where the files allow it, and groups the heavy chains into clones. | Cells per sample and how many carry a receptor, the chains each cell has, the isotypes, how many cells sit in a clone of each size, and tables of the samples and the clones. | None. |
| Receptor QC | QC | What each droplet's receptor says about the cell in it. One heavy and one light chain is a B cell; two heavy chains is almost always two cells in one droplet; a heavy chain with two light chains is allelic inclusion, which is real; a light chain alone cannot define a clone, because clones are heavy-chain. Two checks that matter most in plasma-cell-rich tissue, both of which 10x Genomics' own enclone applies: a cell whose receptor has far fewer UMIs than its sample's typical cell while its clone is one of the largest is carrying ambient antibody mRNA from a plasma cell that lysed, and a clone whose cells sit in two people's samples is index hopping, not biology. A receptor in a cell that is not a B cell by its expression is reported, not removed. | The chains each cell has, the receptor's UMIs per cell, what was removed and why, and the clones two samples share. | Which cells to remove (two heavy chains or more, a light chain only, an ambient receptor, or the cells with no receptor); the ambient distance (2, 3 or 4 median absolute deviations); the donor column. |
| Clone Definition | QC | Groups the heavy chains into clones as Change-O's DefineClones and SCOPer do: the same V gene, J gene and junction length, and junctions no more than a threshold apart. The threshold is read from the data, as SHazaM's findThreshold does it: each junction's distance to its nearest neighbour is bimodal, relatives near 0 and unrelated junctions further out, and the valley between them is where a clone ends. The light chain then splits a clone whose cells carry unrelated light-chain rearrangements; a cell with no light chain joins the largest part. | The distance-to-nearest distribution with the threshold on it, the clone sizes, how many clones the light chain split, and the cells in the largest clones. | The junction distance (Automatic, 0, 0.10, 0.15 or 0.20); whether the light chain splits a clone; the donor column. |
| Repertoire Overview | Analysis | The measures a repertoire is described by, on cells rather than on reads: Hill numbers (richness at order 0, Shannon at 1, Simpson at 2, the largest clone's share at infinity), the space the largest clones take, and a rarefaction curve. Clone sizes are cells, so nothing has to be corrected for sequencing depth. | A diversity profile per group, the clonal space, the rarefaction curves and the largest clones. | What to group by (Sample by default); clustering resolution. |
| Clones and Cell States | Analysis | The step only paired data can run. A clone is a lineage, and its cells can be in different states: the memory B cell and the plasma cell that came from it carry the same receptor. Per clone, how evenly its cells sit across the states it occupies (a Shannon index over them, normalised; STARTRAC's transition index), and a state-by-state matrix of the clones two states share. | Clone size on the UMAP, the expansion per cell type, the clones two states share, and the transition index per clone. | What to group by; clustering resolution. |
| Somatic Hypermutation | Analysis | How far each cell's receptor has mutated from the germline V gene it started with. Under about 1% of its positions is a naive cell; 4-8% is a memory cell or a matured plasma cell. Mutations are counted as SHazaM's observedMutations counts them, by IMGT region and told replacement from silent. | The mutation frequency per group, on the UMAP, by isotype, and the heavy chain against its own light chain, which mutates more slowly. | What to group by; clustering resolution. |
| Selection Pressure | Analysis | Whether the mutations were selected for a changed antibody. A mutation either changes the amino acid (replacement) or does not (silent), and which it is depends on the germline codon it happened in, so the share of replacement mutations an unselected cell would show can be computed from the germline itself. Above it in the CDRs, which touch antigen, means selection; below it in the framework regions, which hold the antibody's shape, means a change there was not survivable. | The observed share of replacement mutations against the expected one, per region and group, with a binomial test. | What to group by; clustering resolution. |
| Isotypes and Class Switching | Analysis | Which antibody each cell makes. A B cell starts with IgM and IgD and can swap its heavy chain's constant region for IgG, IgA or IgE while keeping the variable region that binds antigen. The switch is irreversible and only ever runs downstream along the constant genes, so a clone holding both IgM and IgG1 descends from a cell that switched, and the direction is known. | The isotypes per group and sample, on the UMAP, and the clones that span two isotypes as arcs in the direction switching goes. | What to group by; clustering resolution. |
| Lineage Trees | Analysis | How the largest clones evolved. Each distinct receptor sequence is a tip, as large as the cells carrying it; branch lengths are mutations; the root is the germline, or the clone's own consensus where the files have none. The tree is built on the heavy and light chain concatenated into one alignment, which makes B-cell trees more accurate than the heavy chain alone (Jensen et al. 2024). A clone is drawn paired only when most of its cells have both chains. | One tree per clone, its tips coloured by what you choose, and the heavy-to-light mutation ratio measured in each clone. | Clones to draw (3, 6, 9 or 12); what to colour the tips by (cell type, isotype, sample, cluster or any metadata column); clustering resolution. |
| Gene Usage | Analysis | Which V and J genes the cells rearranged. The usual frequencies are set by the genome and by how well each rearrangement folds, so a gene used far more often in one group is a sign those cells were selected for something. Each cell counts once, which bulk data cannot do: there, one large plasma-cell clone can make its V gene look like the repertoire's favourite. | The heavy V and J genes per group, the light V genes, and which heavy V gene pairs with which light V gene. | What to group by; whether to count cells or clones; genes shown (10, 20 or 30); clustering resolution. |
| CDR3 Properties | Analysis | The heavy chain's CDR3 is the most variable part of an antibody and does most of the binding. Its IMGT CDR3 is measured for length, mean hydropathy (Kyte-Doolittle), net charge at pH 7.4, and the share of aromatic and of tyrosine residues, which line most paratopes. The light chain's CDR3 is shown beside it. | The length and chemistry per group, heavy and light, and the largest clones' CDR3s residue by residue, coloured by chemistry. | What to group by; whether to count cells or clones; clustering resolution. |
| Convergent Clones | Analysis | Antibodies different people arrived at against the same antigen: the same V gene, the same J gene, a CDR3 of the same length and almost the same amino acids. Clones are grouped by V gene, J gene and CDR3 length, then clustered on their CDR3 amino acids at the chosen identity. Without a donor column each sample stands for a person, and a group then needs two different lineages, so one donor's clone followed over time is not mistaken for convergence. | The convergent groups, the people and lineages in each, and their CDR3s. | The donor column; how alike the CDR3s must be (identical, 90%, 80% or 70%); found in at least 2 or 3 people. |