BD Rhapsody and Seven Bridges
TL;DR: BD Rhapsody uses microwell-based single-cell capture, offering higher efficiency for fragile cells than droplet methods. Analyze data via the cloud-based Seven Bridges platform (easy, paid) or the local Rhapsody Sequence Analysis Pipeline (flexible, free).
What is BD Rhapsody?
While 10x Genomics uses microfluidic droplets, BD Rhapsody uses a microwell plate + magnetic bead strategy.
How it Works
- Capture: Cells settle into ~200,000 microwells by gravity.
- Beads: Barcoded magnetic beads capture mRNA.
- Lysis: Cells are lysed, and mRNA hybridizes to beads.
- Retrieval: Beads are magnetically retrieved for sequencing.
BD Rhapsody vs. 10x Genomics
| Feature | BD Rhapsody (Microwell) | 10x Genomics (Droplet) |
|---|---|---|
| Capture Efficiency | High (>80%) | Moderate (~50-65%) |
| Cell Stress | Low (gravity settling) | Medium (microfluidic pressure) |
| Input Cells | 100 - 40,000+ | 500 - 20,000 |
| Fragile Cells | ✅ Excellent (neutrophils) | ⚠️ Challenging |
| Multi-omics | AbSeq (Antibodies) | CITE-seq (Antibodies) |
| Cost | Higher per sample | Moderate |

Option 1: Seven Bridges (Cloud Platform)
Seven Bridges is BD's official cloud partner. Recommended for beginners or those without high-performance computing (HPC) access.
Workflow
- Create Account: Sign up at Seven Bridges Genomics.
- Upload Data: Upload your FASTQ files (R1, R2).
- Select Pipeline: Choose "BD Rhapsody™ Sequence Analysis Pipeline".
- Configure:
- Reference: Select Human/Mouse.
- AbSeq: Toggle on if you used antibody tags.
- Putative Cell Count: Enter expected cell number.
- Run: Submit the job.
Pros:
- No hardware required
- GUI interface
- Guaranteed reproducible environment
Cons:
- Paid service (compute credits)
- Upload/download time for large files
Option 2: Local Pipeline (Command Line)
For advanced users, run the pipeline locally using Docker or Singularity. This is free (minus hardware costs).
Prerequisites
- RAM: 32GB (min) to 128GB (recommended)
- CPU: 8+ cores
- Docker or Singularity installed
1. Get the Pipeline Image
BD distributes the pipeline as a Docker image.
docker pull bdbiosciences/rhapsody
2. Download Reference Genome
You need the specific BD-formatted references.
# Example: Download Human Reference
wget https://bd-rhapsody-public.s3.amazonaws.com/reference_genomes/human_reference.tar.gz
tar -xvf human_reference.tar.gz
3. Run the Pipeline
The pipeline requires a configuration YAML file (or extensive CLI flags).
# Create a config.yml
Reads:
- Read1: sample_R1.fastq.gz
Read2: sample_R2.fastq.gz
Reference:
- /path/to/human_reference
AbSeq: false
PutativeCellCount: 5000
Run with Docker:
docker run -v $PWD:$PWD \
bdbiosciences/rhapsody \
rhapsody pipeline \
--config config.yml \
--out-dir ./output
Key Parameters
| Parameter | Description |
|---|---|
--exact-cell-count |
Force a specific number of cells (e.g., 5000) |
--putative-cell-call |
Algorithms: mRNA (default) or Basic |
--subsample |
Downsample reads for testing (0.0-1.0) |
--generate-bam |
Output BAM file (useful for RNA velocity) |
Output Files
After the run finishes, look for:
| File | Description |
|---|---|
_RSEC_MolsPerCell.csv |
Main Count Matrix (Corrected counts) |
_DBEC_MolsPerCell.csv |
Raw counts (Distribution-based error correction) |
_Metrics_Summary.csv |
QC metrics (reads mapped, cells detected) |
_Pipeline_Report.html |
Visual QC report |
Note on RSEC vs DBEC:
- RSEC (Recursive Substitution Error Correction): More aggressive, collapses similar UMIs. Use this for differential expression.
- DBEC (Distribution-Based Error Correction): Less aggressive.
Loading Data into Seurat/Scanpy
BD outputs are CSVs (unlike 10x's mtx/tsv).
Seurat (R):
library(Seurat)
# Read CSV
counts <- read.csv("Sample_RSEC_MolsPerCell.csv", row.names = 1, comment.char = "#")
# Transpose (Seurat expects Genes x Cells)
counts <- t(counts)
# Create Object
obj <- CreateSeuratObject(counts, project = "BD_Rhapsody")
Scanpy (Python):
import scanpy as sc
import pandas as pd
# Read CSV
adata = sc.read_csv("Sample_RSEC_MolsPerCell.csv")
# BD files usually have genes as columns, Scanpy expects genes as columns (so no transpose needed if CSV is Cells x Genes)
# Check shape!
print(adata.shape)
Troubleshooting
"Too few cells detected"
Cause: PutativeCellCount too high or cell damage.
Fix:
- Check the "Knee Plot" in the HTML report.
- Lower the
--putative-cell-callthreshold.
"Low Mapping Rate"
Cause: Wrong reference or poor library quality.
Fix:
- Ensure reference matches the organism (and AbSeq tags if used).
- Check FASTQ quality with FastQC.
"AbSeq signal missing"
Cause: Incorrect AbSeq reference CSV.
Fix:
- AbSeq requires a separate FASTA/CSV file defining the antibody barcodes. Ensure this matches your panel exactly.
See also:
Originally posted on WeChat Official Account: bioinfo_studyroom