BOTAS
An Integrated Bacterial RNA-seq Analysis Framework with Circular-Aware Alignment and Operon Inference
Clabe Simiyu Wekesa, Kelvin Kiprotich, John Muoma, Axel Mithöfer
BOTAS (Bacterial Operon-Aware Transcriptome Alignment System) is an integrated framework for bacterial RNA-seq analysis that combines native reference indexing, read alignment, gene quantification, and operon inference within a single command-line application.
Unlike conventional RNA-seq workflows that require multiple independent software packages, BOTAS provides an end-to-end bacterial transcriptomics workflow specifically designed for prokaryotic genomes. The framework natively supports circular chromosomes and plasmids, paired-end sequencing, strand-specific expression analysis, and operon-aware transcriptome analysis while maintaining compatibility with standard genomic file formats.
BOTAS is implemented entirely in Python and is designed for reproducible, modular and high-throughput bacterial transcriptomic analyses.
Features
Native Reference Indexing
- Native minimizer-based reference indexing
- Reusable BOTAS index format (
*.botas.idx) - Configurable k-mer and minimizer window sizes
- Support for linear and circular bacterial genomes
- Circular overhang indexing for origin-spanning reads
RNA-seq Alignment
- Native bacterial read alignment engine
- Single-end and paired-end read alignment
- Automatic handling of circular genome boundary crossings
- Edit-distance alignment using Edlib
- Mapping quality estimation
- Coordinate-sorted BAM output
- Multi-threaded execution
Gene Quantification
- Gene-level read and fragment counting
- Accurate paired-end fragment reconstruction
- Strand-specific quantification
- TPM and RPKM normalization
- Multi-sample quantification
- Assignment statistics for mapped, ambiguous, unmapped and unassigned fragments
- Gene counts compatible with featureCounts
Operon Inference
- RNA-seq-guided operon prediction
- Integration of genomic organization and transcriptional evidence
- Strand consistency analysis
- Intergenic distance evaluation
- Expression continuity assessment
- Paired-end connectivity analysis
- Consensus operon prediction across multiple samples
- TSV and GFF outputs
General
- Pure Python implementation
- Minimal external dependencies
- Reproducible command-line workflow
- Modular architecture
- Easily integrated into automated pipelines
Installation
Install from PyPI
pip install botas-rnaseq
Install the latest development version
pip install git+https://github.com/clabe-wekesa/botas.git
Install from source
git clone https://github.com/clabe-wekesa/botas.git
cd botas
pip install .
Development installation
pip install -e ".[dev]"
Workflow
A typical BOTAS analysis consists of four steps.
Reference FASTA
│
▼
botas index
│
▼
BOTAS index (.botas.idx)
│
▼
botas align
│
▼
Coordinate-sorted BAM
│
├──────────────┐
▼ ▼
botas quantify botas getOperons
│ │
▼ ▼
Gene counts Operon predictions
Quick Start
1. Build a reference index
botas index -r reference.fasta -o reference.botas.idx
For circular bacterial genomes:
botas index -r reference.fasta -o reference.botas.idx --circular
2. Align sequencing reads
Paired-end
botas align -x reference.botas.idx -1 reads_R1.fastq.gz -2 reads_R2.fastq.gz --sort-bam
Single-end
botas align -x reference.botas.idx -U reads.fastq.gz --sort-bam
BOTAS automatically creates a project directory containing intermediate files, logs and final alignment results.
3. Quantify gene expression
botas quantify -b alignment.bam -g annotation.gff --feature-type gene --gff-gene-attribute locus_tag
BOTAS reports
- raw gene counts
- TPM
- RPKM
- fragment assignment statistics
- summary reports
4. Infer operons
botas getOperons -b alignment.bam -g annotation.gff
Predicted operons are exported as
- TSV tables
- GFF annotations
for downstream visualization and comparative genomics analyses.
Output Structure
Each BOTAS analysis creates a dedicated working directory.
sample.botas/
│
├── logs/
├── temp/
├── results/
│ ├── alignment.bam
│ ├── alignment.bam.bai
│ ├── gene_counts.tsv
│ ├── summary.tsv
│ ├── operons.tsv
│ └── operons.gff
│
└── config.json
Command Overview
botas index Build a BOTAS reference index
botas align Align RNA-seq reads
botas quantify Quantify gene expression
botas getOperons Predict bacterial operons
Detailed help is available for every command.
botas --help
botas index --help
botas align --help
botas quantify --help
botas getOperons --help
Supported Input Formats
| Analysis | Input |
|---|---|
| Indexing | FASTA |
| Alignment | FASTQ, FASTQ.GZ |
| Quantification | BAM, GFF3 |
| Operon inference | BAM, GFF3 |
Supported Output Formats
| Analysis | Output |
|---|---|
| Indexing | BOTAS index (*.botas.idx) |
| Alignment | BAM |
| Quantification | TSV |
| Operon inference | TSV, GFF |
Requirements
- Python 3.10 or later
- pysam
- edlib
- Biopython
Optional
- tqdm
Citation
If you use BOTAS in published research, please cite:
Wekesa CS, Kiprotich K, Muoma J, Mithöfer A. BOTAS: An Integrated Bacterial RNA-seq Analysis Framework with Circular-Aware Alignment and Operon Inference. (Manuscript under review.)
Citation information will be updated following publication.
License
BOTAS is distributed under the MIT License.
Author
Clabe Simiyu Wekesa
GitHub: https://github.com/clabe-wekesa
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 botas_rnaseq-0.1.4.tar.gz.
File metadata
- Download URL: botas_rnaseq-0.1.4.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0900f10edea4872fdaa5f8e72d61e4a927f54e0bab5689a7a6ace30320bcc547
|
|
| MD5 |
8b5b789df3a29dc427be6aa3d75ed395
|
|
| BLAKE2b-256 |
8023d41e0c088541e55b3c1957acde5cd3ddb0cf3ebee6b078cd081ed96ccada
|
File details
Details for the file botas_rnaseq-0.1.4-py3-none-any.whl.
File metadata
- Download URL: botas_rnaseq-0.1.4-py3-none-any.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3932c645d0799f7aed026d36fea3553848e30df5c7fdd8ec6fce96577e48a1f7
|
|
| MD5 |
3510b8c15db4307465996a822bbbe463
|
|
| BLAKE2b-256 |
28fdcb1e9c3345f2f1ea011301836e81b57dbb3efa0eaa88b171bdd34563c934
|