Added `--sortBy coverage` option to `bin/sam-reference-read-counts.py` and moved much of its code into `dark/sam.py`.
4.0.78
Fix tiny bug in `bowtie2.py` so that BAM is not accidentally created when removing duplicates.
4.0.77
Prevent an `IndexError` in `bin/sam-reference-read-counts.py` when there are no matching reads.
4.0.76
Fixed (hopefully!) a bug in `bin/fasta-identity-table.py` that could cause a `KeyError` when producing a non-square table, [as described here](https://github.com/acorg/dark-matter/issues/780).
4.0.75
Moved `getNoCoverageCounts` from `bin/fasta-identity-table.py` into `dark/reads.py`. Made it handle an empty set of no-coverage chars. Added tests.
4.0.74
Added `allowedTaxonomicRanks` argument to the `SqliteIndexWriter` class for building a protein database, and corresponding command line argument to `bin/make-protein-database.py`.