Demultiplex and cluster RNA barcodes from 96-well-plate sequencing reads.
Project description
AutoBarcoder
Demultiplex and cluster RNA barcodes from 96-well-plate sequencing reads — in your browser or terminal.
AutoBarcoder takes a pile of sequencing reads, sorts them back into 96 wells using your row/column barcodes, clusters the variable RNA barcode between two flanking sequences, and produces a per-well summary (TXT + PDF) of the top barcode variants. It handles single plates and multi-plate runs.
What it does
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Sequencing reads │ → │ Row+Column tag │ → │ Extract between │ → │ Per-well TXT + │
│ (FASTQ / TXT) │ │ demultiplex │ │ flanks; cluster │ │ PDF + JSON │
└──────────────────┘ └──────────────────┘ │ by Levenshtein │ └──────────────────┘
└──────────────────┘
Inputs you provide:
- Sequencing data (FASTQ or plain-text — every line containing both row & column tags is scanned).
- Row barcodes + column barcodes (one per line).
- 5′ and 3′ flanking sequences that bracket the variable RNA barcode.
- Expected barcode length and a Levenshtein edit-distance tolerance for clustering.
Outputs you get:
summary.txt— per-well top-3 barcodes and percentages.results.pdf— one bar chart per well.- JSON results via the web API (programmatic access).
- Optional GraphPad-Prism-friendly CSVs for selected wells.
Quick start (web UI — recommended)
The fastest way to try AutoBarcoder is the new browser UI.
git clone https://github.com/abachu2005/AutoBarcoder-OS-.git
cd AutoBarcoder-OS-
python3 bin/autobarcoder-setup # interactive wizard: venv + deps + smoke test
bash webapp/run.sh # serve at http://127.0.0.1:8000
Then open http://127.0.0.1:8000 and click “Try with sample data” to see a working analysis on a synthetic 4×4 plate.
Quick start (desktop GUI)
pip install -r requirements.txt
python main.py
The Tkinter app provides the same controls as the web UI in a single window, useful when you can't run a local server.
Quick start (Python API)
from barcodes.processing import process_single_plate_for_reads
with open("reads.fastq") as f:
results = process_single_plate_for_reads(
"summary.txt", "results.pdf", f.readlines(),
start_text="CAGCTG", end_text="GGATCC",
length_threshold=25, distance_threshold=2,
rows=["AAACGT", "AATTGG"], columns=["CCGTAA", "CCGGTT"],
expected_len=20,
)
Repository layout
.
├── barcodes/ # core analysis library (reading, clustering, analysis, processing)
├── gui/ # Tkinter desktop GUI
├── webapp/ # FastAPI + HTML/JS web UI
│ ├── backend/main.py
│ └── frontend/index.html
├── bin/autobarcoder-setup# interactive setup wizard
├── sample_data/ # tiny synthetic dataset for the demo button
├── viz.py # publication-style clustering web renderer (standalone)
├── diagnostics.py # diagnostic motif-counting GUI
├── main.py # Tkinter launcher
└── requirements.txt
Configuration reference
| Field | Meaning |
|---|---|
| Sequencing data | FASTQ or text file. Every line is scanned independently. |
| Row / Column barcodes | One per line. A read must contain both a row and a column tag to be assigned to a well. |
| 5′ / 3′ flank | The constant sequences bracketing the variable barcode. |
| Expected barcode length | Used internally as length+5 to allow short insertions during clustering. |
| Edit tolerance | Levenshtein distance threshold for grouping similar barcodes into one cluster. |
| 20-nt offset | If your library has filler between the 5′ flank and the real barcode, enable this to take the last N nt between the flanks. |
| Plate IDs | Multi-plate mode. Each provided string is treated as a plate-identifier substring; reads are split per plate. |
Output catalogue
summary.txt— one line per well:R{row}C{col}: G<seq> (xx.xx%), G<seq> (xx.xx%), …orCONTAMINATED (no barcodes).results.pdf— bar chart per well, top 3 clusters.prism_ready/(ifprism_export_wellsis set in the API) — Wide- and long-format CSVs.- Web jobs additionally expose JSON at
/api/jobs/{id}/resultsand downloadable artifacts.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autobarcoder-1.0.2.tar.gz.
File metadata
- Download URL: autobarcoder-1.0.2.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecd5c4aa10746cddf2c374ba2f6fc6846893d80e7db5ca935925245d180b52b8
|
|
| MD5 |
de32f0a4157545f78bb2adcfea86390b
|
|
| BLAKE2b-256 |
6e1d48c2614200ec006744f923ac0c9e2e284d74cb43dd233d67d99c1ccaeb05
|
File details
Details for the file autobarcoder-1.0.2-py3-none-any.whl.
File metadata
- Download URL: autobarcoder-1.0.2-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3567dcbc250caa9ba8828b24279f9dd42908efa63582c5d9e3825604562142c5
|
|
| MD5 |
a88c7637053ad42a538180d21d4219de
|
|
| BLAKE2b-256 |
c57b9097de3bece53de32efa2ac0ca59ac59d56dde4add35a470275190045e5a
|