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.
Metadata
Release files for autobarcoder 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| autobarcoder-1.0.2.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| autobarcoder-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.7 kB
Release files / autobarcoder-1.0.2.tar.gz
| Download URL | autobarcoder-1.0.2.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ecd5c4aa10746cddf2c374ba2f6fc6846893d80e7db5ca935925245d180b52b8
|
|
BLAKE2b-256 checksum How to use checksums |
6e1d48c2614200ec006744f923ac0c9e2e284d74cb43dd233d67d99c1ccaeb05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / autobarcoder-1.0.2-py3-none-any.whl
| Download URL | autobarcoder-1.0.2-py3-none-any.whl |
|---|---|
| Size | 20.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3567dcbc250caa9ba8828b24279f9dd42908efa63582c5d9e3825604562142c5
|
|
BLAKE2b-256 checksum How to use checksums |
c57b9097de3bece53de32efa2ac0ca59ac59d56dde4add35a470275190045e5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|