DOI: https://doi.org/10.5281/zenodo.20740237
ChromaView is a modern, open-source desktop application for visualizing, editing, and analyzing Sanger DNA sequencing chromatogram files. It provides functionality comparable to Chromas, FinchTV, and SnapGene's trace viewer, built with a clean Python stack.
- File Support: Import
.ab1and.scfchromatogram files - Chromatogram Visualization: Interactive fluorescence traces (A/T/G/C) with zoom, pan, and scroll
- Base Calling Display: Called bases aligned to peaks with quality-score coloring
- Manual Editing: Click-to-edit base calls with undo/redo
- Quality Analysis: Phred score bar chart, signal-to-noise ratio, ambiguous base detection
- Trimming: Automatic and manual trimming of low-quality ends (modified Mott algorithm)
- Sequence Operations: Reverse complement, search by position or motif
- Reference Comparison: Align chromatogram against a reference sequence, highlight mismatches/SNPs
- Batch Processing: Process multiple files for quality reports
- Export: FASTA, CSV, publication-quality PNG/SVG chromatogram images
- Modern UI: Dark/light themes, dockable panels, synchronized sequence viewer
- NCBI BLAST: In-application
blastnsearch against selectable nucleotide database (core_nt), running on a background thread so the UI stays responsive. Results are displayed in a sortable table (accession, description, query coverage, identity, E-value, bit score) with a pairwise alignment view and direct links to NCBI records. A contact email for NCBI can be saved in application settings. - Forward + Reverse Consensus: Quality-weighted consensus from a forward/reverse read pair. The reverse read is automatically reverse-complemented; the overlap is found by local alignment. Each consensus position is called from the higher-quality base, or an IUPAC ambiguity code when quality is equal. Assembly is gated on a minimum overlap identity threshold, and a clear diagnostic message is shown when the reads do not overlap.
chromaview/
├── core/ # Data models and file parsers
│ ├── ab1_parser.py # AB1/ABIF file parser
│ ├── scf_parser.py # SCF file parser
│ ├── models.py # Chromatogram data model
│ └── sequence_ops.py # Reverse complement, alignment, search
├── gui/ # PyQt6 user interface
│ ├── main_window.py # Main application window
│ ├── trace_widget.py # Chromatogram trace canvas
│ ├── sequence_bar.py # Synchronized sequence viewer
│ ├── quality_widget.py # Phred score bar chart
│ ├── file_browser.py # Sidebar file explorer
│ ├── dialogs.py # Trim, compare, batch dialogs
│ ├── blast_dialog.py # NCBI BLAST search dialog
│ ├── consensus_dialog.py # Forward+reverse consensus dialog
│ └── theme.py # Dark/light theme manager
├── analysis/ # Analysis algorithms
│ ├── quality.py # Quality filtering, trimming
│ ├── peaks.py # Peak detection and metrics
│ ├── mutation.py # SNP detection, mismatch calling
│ ├── blast.py # NCBI BLAST integration (background thread)
│ └── consensus.py # Forward+reverse quality-weighted consensus
├── export/ # Output generators
│ ├── fasta.py # FASTA export
│ ├── csv_export.py # CSV export
│ └── image.py # Publication-quality image export
├── utils/ # Shared utilities
├── tests/ # Unit tests
│ ├── test_ab1_parser.py
│ ├── test_models.py
│ ├── test_quality.py
│ ├── test_sequence_ops.py
│ ├── test_blast.py
│ └── test_consensus.py
└── app.py # Application entry point
Windows users: download ChromaView-windows.zip from Releases, unzip it, and double-click ChromaView.exe. No Python installation required.
- Python 3.10+
- System: Windows, macOS, or Linux
git clone https://github.com/ifthikharzaman-eng/chromaview.git
cd chromaview
pip install -e .chromaview
# or
python -m chromaviewpip install -r requirements.txtA self-contained Windows .exe can be built with PyInstaller using the provided helper script:
build_windows.batThe script regenerates the application icon, runs PyInstaller against ChromaView.spec, and writes the output to dist\ChromaView\ChromaView.exe.
- Open a file: File → Open or drag-and-drop an
.ab1file - Navigate: Scroll/zoom the chromatogram; click a base to select it
- Edit: Double-click a base to change its call
- Trim: Analysis → Trim Low-Quality Ends
- Compare: Analysis → Compare to Reference
- Export: File → Export as FASTA / CSV / Image
# Run tests
pytest chromaview/tests/ -v
# Run with debug logging
chromaview --debug| Component | Library |
|---|---|
| GUI Framework | PyQt6 |
| Chromatogram | PyQtGraph |
| AB1 Parsing | Biopython |
| Data handling | NumPy |
| Testing | pytest |
MIT License. See LICENSE.
See CHANGELOG.md.
Table S1. Mapping of study sample identifiers to AB1 file names and embedded ABI instrument sample names. The embedded (internal) names reflect original run-sheet labels and were remapped to sequential study identifiers; raw AB1 files are deposited unmodified. Sample AB1 file name (forward / reverse) Embedded ABI sample name (forward / reverse) 1 Sample_1_27F.ab1 / Sample_1_1492R.ab1 1F_ID_12012017011 / 1R_ID_12012017011 2 Sample_2_27F.ab1 / Sample_2_1492R.ab1 2F_ID_3010002244 / 2R_ID_3010002244 3 Sample_3_27F.ab1 / Sample_3_1492R.ab1 S4F / S4R 4 Sample_4_27F.ab1 / Sample_4_1492R.ab1 S5F / S5R 5 Sample_5_27F.ab1 / Sample_5_1492R.ab1 3F_ID_12010030131 / 3R_12010030131 6 Sample_6_27F.ab1 / Sample_6_1492R.ab1 4F_ID_12010030271 / 4R_12010030271 7 Sample_7_27F.ab1 / Sample_7_1492R.ab1 7F_ID_12205037721 / 7R_ID_12205037721 8 Sample_8_27F.ab1 / Sample_8_1492R.ab1 7701F / 7701R 9 Sample_9_27F.ab1 / Sample_9_1492R.ab1 0821F / 0821R 10 Sample_10_27F.ab1 / Sample_10_1492R.ab1 S3F / S3R 11 Sample 11_F.ab1 / Sample 11_R.ab1 16s_NCL4_F / 16s_NCL4_R 12 Sample 12 F.ab1 / Sample 12 R.ab1 SAMPLE_2_F / SAMPLE_2_R 13 Sample 13 F.ab1 / Sample 13 R.ab1 g-p_BF_F / g-p_BF_R (leading unrendered glyph in file) 14 Sample 14 F.ab1 / Sample 14 R.ab1 12_16S_F / 12_16S_R (leading unrendered glyph in file) 15 Sample 15 F.ab1 / Sample 15 R.ab1 SHIG_F / SHIG_R (leading unrendered glyph in file)
ZAMAN, I. (2026). Sanger 16S rRNA chromatograms (AB1) for ChromaView validation, Samples 1–15 [Dataset]. Zenodo. https://doi.org/10.5281/zenodo.21641194