Quickly get coverage statistics given reads and an assembly.
While there are tools that will calculate read-coverage statistics, they do not scale particularly well for large datasets, large sample numbers, or large reference FASTAs. Koverage is designed to place minimal burden on I/O and RAM to allow for maximum scalability.
Koverage is available on PyPI and Bioconda.
Recommend create environment for installation:
conda create -n koverage python=3.11
conda activate koverageOption 1: install with PyPI
pip install koverageOption 2: install with Bioconda
conda install -c conda-forge -c bioconda koverageTest the installation:
koverage testDeveloper install:
git clone https://github.com/beardymcjohnface/Koverage.git
cd Koverage
pip install -e .Get coverage statistics from mapped reads (default method).
koverage run --reads readDir --ref assembly.fastaGet coverage statistics using kmers (scales much better for very large reference FASTAs).
koverage run --reads readDir --ref assembly.fasta kmerAny unrecognised commands are passed onto Snakemake. Run Koverage on a HPC using a Snakemake profile.
koverage run --reads readDir --ref assembly.fasta --profile mySlurmProfileYou can pass either a directory of reads or a TSV file to --reads.
Note that Koverage expects your read file names to include R1 or R2 e.g. Tynes-BDA-rw-1_S14_L001_R1_001.fastq.gz or SRR7141305_R2.fastq.gz.
- Directory: Koverage will infer sample names and _R1/_R2 pairs from the filenames.
- TSV file: Koverage expects 2 or 3 columns, with column 1 being the sample name and columns 2 and 3 the reads files.
More information and examples are available here
You can test the methods with the inbuilt dataset like so.
# test default method
koverage test
# test all methods
koverage test map kmer covermkoverage run ...
# or
koverage run ... mapThis method will map reads using minimap2 and use the mapping coordinates to calculate coverage. This method is suitable for most applications.
koverage run ... kmerThis method calculates Jellyfish databases of the sequencing reads. It samples kmers from all reference contigs and queries them from the Jellyfish DBs to calculate coverage statistics. This method is exceptionally fast for very large reference genomes.
koverage run ... covermWe've included a wrapper for CoverM which you may find useful. The wrapper manually runs minimap2 and then invokes CoverM on the sorted BAM file. It then combines the output from all samples like the other methods. If you have a large tempfs/ you'll probably find it faster to run CoverM directly on your reads. CoverM is not currently available for MacOS.
Default output files using fast estimations for mean, median, hitrate, and variance.
sample_coverage.tsv
Per sample and per contig counts.| Column | description |
|---|---|
| Sample | Sample name derived from read file name |
| Contig | Contig ID from assembly FASTA |
| Count | Raw mapped read count |
| RPM | Reads per million |
| RPKM | Reads per kilobase million |
| RPK | Reads per kilobase |
| TPM | Transcripts per million |
| Mean | Estimated mean read depth |
| Median | Estimated median read depth |
| Hitrate | Estimated fraction of contig with depth > 0 |
| Variance | Estimated read depth variance |
all_coverage.tsv
Per contig counts (all samples).| Column | description |
|---|---|
| Contig | Contig ID from assembly FASTA |
| Count | Raw mapped read count |
| RPM | Reads per million |
| RPKM | Reads per kilobase million |
| RPK | Reads per kilobase |
| TPM | Transcripts per million |
Outputs for kmer-based coverage metrics. Kmer outputs are gzipped as it is anticipated that this method will be used with very large reference FASTA files.
sample_kmer_coverage.NNmer.tsv.gz
Per sample and contig kmer coverage.| Column | description |
|---|---|
| Sample | Sample name derived from read file name |
| Contig | Contig ID from assembly FASTA |
| Sum | Sum of sampled kmer depths |
| Mean | Mean sampled kmer depth |
| Median | Median sampled kmer depth |
| Hitrate | Fraction of kmers with depth > 0 |
| Variance | Variance of lowest 95 % of sampled kmer depths |
all_kmer_coverage.NNmer.tsv.gz
Contig kmer coverage (all samples).| Column | description |
|---|---|
| Contig | Contig ID from assembly FASTA |
| Sum | Sum of sampled kmer depths |
| Mean | Mean sampled kmer depth |
| Median | Median sampled kmer depth |
