Skip to main content
LongBarcodeQC

LongBarcodeQC

LongBarcodeQC is a command-line tool for analyzing combinatorial barcode libraries sequenced with Oxford Nanopore or other long read platforms. It aligns reads, extracts the multi-cloning site (MCS) region, scores each read against a barcode library, and generates an interactive HTML summary report.

Features

  • Merges and preprocesses FASTQ input (one or multiple files)
  • Aligns reads to a reference plasmid using minimap2
  • Extracts the MCS region from each read using flanking sequence anchors (parasail Smith-Waterman)
  • Scores each read against a barcode library and calls the best-matching barcode per position
  • Detects restriction enzyme cut sites within the MCS
  • Generates a self-contained HTML report with interactive plots (read length distributions, barcode heatmaps, z-score distributions, restriction site summaries)
  • Outputs a compressed summary CSV with per-read barcode calls and QC metrics

Installation

LongBarcodeQC requires Python ≥ 3.10 and several external bioinformatics tools (minimap2, samtools, parasail, cutadapt). Install them with conda, which provides prebuilt binaries for all supported platforms including Apple Silicon and ARM Linux:

conda create -n longbarcodeqc -c conda-forge -c bioconda \
  python=3.12 minimap2 samtools parasail-python cutadapt
conda activate longbarcodeqc
pip install LongBarcodeQC

Or create the environment from the file in the repository:

conda env create -f environment.yml
conda activate longbarcodeqc
pip install LongBarcodeQC

To install the development version instead of the released one:

pip install git+https://github.com/ArpiarSaundersLab/LongBarcodeQC.git

After installation, the lbqc command will be available in your environment.

Usage

lbqc -i <fastq_pass_dir> -o <output_dir> -b <barcodes>

Required arguments

Argument Description
-i, --input Path to Nanopore fastq_pass directory (or a single FASTQ file)
-o, --output Output directory (created if it does not exist; must be empty)
-b, --barcodes Barcode FASTA file — use a preset keyword or a path to a custom FASTA (see below)

Barcode presets

Three built-in barcode libraries are included:

Keyword Description
EV Expression Vector — 3 sites x 256 barcodes (768 total)
AP Assembly Plasmid — 3 sites x 256 barcodes (768 total)
TS TritSeq — 4 sites x 4 positions x 3 barcodes (48 total)
lbqc -i fastq_pass/ -o results/ -b EV

To use a custom barcode library, provide a path to a FASTA file where each entry is one barcode sequence and all headers are unique:

lbqc -i fastq_pass/ -o results/ -b /path/to/barcodes.fa

Optional arguments

Argument Description
-p, --plasmid Path to a custom plasmid FASTA. Default: built-in Assembly Plasmid
-l, --insert_length Expected insert size in bp. Default: 300
-f, --flanks FASTA with upstream and downstream MCS flanking sequences (required for custom plasmids)
-r, --enzymes Text file listing desired restriction enzyme names and sequences (one per line, comma-separated)
-a, --AP Flag Assembly Plasmid reads as contamination (useful after transfer to Expression Vector)
-T, --trim Trim the ONT Rapid (RAP) adapter and its leader sequence with cutadapt before alignment
-S, --SBARRO Use SBARRO mode (rabies genome; inserts NNN sequence into MCS for alignment)
-z, --zscore Manually set z-score threshold for barcode calling (recommended - check html report after initial run)
-N, --expected_insertions Expected number of insertions per library member (used in read length histogram)
--full-output Write full per-barcode alignment score table as a Parquet file
-v, --version Print the LongBarcodeQC version and exit

Example

lbqc \
  -i /data/run01/fastq_pass/ \
  -o /results/run01_EV/ \
  -b EV \
  -r enzymes.txt \
  -S \
  -a

Output

File Description
<name>_summary.csv.gz Per-read barcode calls, MCS metrics, and QC flags
<name>_summary_report.html Self-contained interactive HTML report
<name>.aligned.fa.gz Reads that aligned to the reference plasmid
<name>.unaligned.fa.gz Reads that did not align
<name>.parquet Full barcode alignment scores per read (only with --full-output)
<name>.cutadapt.txt cutadapt adapter trimming report (only with -T)

Requirements

  • Python ≥ 3.10
  • minimap2 and samtools (external tools, installed with conda — see above)
  • parasail and cutadapt ≥ 5.2 (compiled dependencies; installed with conda — see above)
  • pandas, matplotlib, seaborn, jinja2, pyarrow, tqdm (pure-Python; installed automatically with pip)

cutadapt is only needed for the -T/--trim option, but it is installed as a dependency so trimming works out of the box.

Test data

Four small test datasets (3,000 reads each) are included in the GitHub repository under longbarcodeqc/test/data/ to verify an installation. They are not shipped in the PyPI package to keep the download small — clone the repository to use them:

git clone https://github.com/ArpiarSaundersLab/LongBarcodeQC.git
cd LongBarcodeQC

lbqc -i longbarcodeqc/test/data/PadlockSeq_AP/ -o /tmp/test_AP -b AP -l 300
lbqc -i longbarcodeqc/test/data/PadlockSeq_EV/ -o /tmp/test_EV -b EV -S -a -l 300
lbqc -i longbarcodeqc/test/data/TritSeq_AP/   -o /tmp/test_TS_AP -b TS -l 300
lbqc -i longbarcodeqc/test/data/TritSeq_EV/   -o /tmp/test_TS_EV -b TS -S -a -l 300

Each run writes a *_summary_report.html file that can be opened in a browser. Note that the output directory must be empty.

Citation

If you use LongBarcodeQC in your work, please cite:

Goode Z, et al. LongBarcodeQC. (manuscript in preparation)

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

longbarcodeqc-1.0.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

longbarcodeqc-1.0.0-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

Details for the file longbarcodeqc-1.0.0.tar.gz.

File metadata

  • Download URL: longbarcodeqc-1.0.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for longbarcodeqc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8a47344eb776add4da2079b2a772de42064cf957bed4ae668498b5f20071bb1f
MD5 87655c16da9246bc1f1e5d3f2def0f92
BLAKE2b-256 221f978195f2727c21cd03b3f9c72bc5737f8dea608f49b525f3dc265720ce3d

See more details on using hashes here.

File details

Details for the file longbarcodeqc-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: longbarcodeqc-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for longbarcodeqc-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fcabbce338244fc4cc602be7541eaf49841dc42b6074613765d6ea87e03bcba7
MD5 aa89358775787010c7c4db2d904bc61b
BLAKE2b-256 0f4a817611c384914db8991cc1941420d1e0fee802d0cb3abca597db4b9d440d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page