Fast sequencing quality metrics
Project description
sequali
Sequence quality metrics
Features:
Low memory footprint, small install size and fast execution times.
Informative graphs that allow for judging the quality of a sequence at a quick glance.
Overrepresentation analysis using 21 bp sequence fragments. Overrepresented sequences are checked against the NCBI univec database.
Estimate duplication rate using a fingerprint subsampling technique which is also used in filesystem duplication estimation.
Checks for 6 illumina adapter sequences and 15 nanopore adapter sequences.
Per tile quality plots for illumina reads.
Channel and other plots for nanopore reads.
FASTQ and unaligned BAM are supported. See “Supported formats”.
Supported formats
FASTQ. Only the Sanger variation with a phred offset of 33 and the error rate calculation of 10 ^ (-phred/10) is supported. All sequencers use this format today.
For sequences called by illumina base callers an additional plot with the per tile quality will be provided.
For sequences called by guppy additional plots for nanopore specific data will be provided.
unaligned BAM. Any alignment flags are currently ignored.
For uBAM data as delivered by dorado additional nanopore plots will be provided.
Installation
Installation via pip is available with:
pip install sequali
Sequali is also distributed via bioconda. It can be installed with:
conda install -c conda-forge -c bioconda sequali
Usage
usage: sequali [-h] [--json JSON] [--html HTML] [--outdir OUTDIR]
[--adapter-file ADAPTER_FILE]
[--overrepresentation-threshold-fraction FRACTION]
[--overrepresentation-min-threshold THRESHOLD]
[--overrepresentation-max-threshold THRESHOLD]
[--overrepresentation-max-unique-fragments N]
[--overrepresentation-fragment-length LENGTH]
[--overrepresentation-sample-every DIVISOR]
[--deduplication-estimate-bits BITS] [-t THREADS] [--version]
INPUT
Create a quality metrics report for sequencing data.
positional arguments:
INPUT Input FASTQ or uBAM file. The format is autodetected
and compressed formats are supported.
options:
-h, --help show this help message and exit
--json JSON JSON output file. default: '<input>.json'.
--html HTML HTML output file. default: '<input>.html'.
--outdir OUTDIR, --dir OUTDIR
Output directory for the report files. default:
current working directory.
--adapter-file ADAPTER_FILE
File with adapters to search for. See default file for
formatting. Default: src/sequali/adapters/adapter_list.tsv.
--overrepresentation-threshold-fraction FRACTION
At what fraction a sequence is determined to be
overrepresented. The threshold is calculated as
fraction times the number of sampled sequences.
Default: 0.0001 (1 in 100,000).
--overrepresentation-min-threshold THRESHOLD
The minimum amount of occurrences for a sequence to be
considered overrepresented, regardless of the bound
set by the threshold fraction. Useful for smaller
files. Default: 100.
--overrepresentation-max-threshold THRESHOLD
The amount of occurrences for a sequence to
beconsidered overrepresented, regardless of the bound
set by the threshold fraction. Useful for very large
files. Default: unlimited.
--overrepresentation-max-unique-fragments N
The maximum amount of unique fragments to store.
Larger amounts increase the sensitivity of finding
overrepresented sequences at the cost of increasing
memory usage. Default: 5,000,000.
--overrepresentation-fragment-length LENGTH
The length of the fragments to sample. The maximum is
31. Default: 21.
--overrepresentation-sample-every DIVISOR
How often a read should be sampled. More samples leads
to better precision, lower speed, and also towards
more bias towards the beginning of the file as the
fragment store gets filled up with more sequences from
the beginning. Default: 1 in 8.
--deduplication-estimate-bits BITS
Determines how many sequences are maximally stored to
estimate the deduplication rate. Maximum stored
sequences: 2 ** bits * 7 // 10. Memory required: 2 **
bits * 24. Default: 21.
-t THREADS, --threads THREADS
Number of threads to use. If greater than one sequali
will use an additional thread for gzip decompression.
--version show program's version number and exit
Acknowledgements
FastQC for its excellent selection of relevant metrics. For this reason these metrics are also gathered by sequali.
The matplotlib team for their excellent work on colormaps. Their work was an inspiration for how to present the data and their RdBu colormap is used to represent quality score data. Check their writings on colormaps for a good introduction.
Wouter de Coster for his excellent post on how to correctly average phred scores.
Marcel Martin for providing very extensive feedback.
License
This project is licensed under the GNU Affero General Public License v3. Mainly to avoid commercial parties from using it without notifying the users that they can run it themselves. If you want to include code from sequali in your open source project, but it is not compatible with the AGPL, please contact me and we can discuss a separate license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for sequali-0.4.1-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be9a18b7c255eae802867eefc0399857fb363621e63cac21112fd14f61bc276e |
|
MD5 | 66a95bf8c42587452e72d53d798181df |
|
BLAKE2b-256 | 41603bcc67e08f6cdd36ce2655a1040074dd9d41b9ab13e45cd8a9cb63cbd0bb |
Hashes for sequali-0.4.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 340b3ec88e3fc2349346efc21a7c6f946dd6080389fba6384e6c9c4dc7028de3 |
|
MD5 | 751d17dfe821a4aa2af6cf8f21ccc4e7 |
|
BLAKE2b-256 | e9f508899ba3e66689788d0baf1a22603cfbca9a9872d6a143bd16c78b6ab6e1 |
Hashes for sequali-0.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f44881370a5b363410cb4354ea6389ce9b244fff7b859096923b1115aebc1a5 |
|
MD5 | 1233c2fe007b2e285b1bfa3c7bd36c7d |
|
BLAKE2b-256 | 8763cc25fe26b346b53a8576a7983a2c9310161fef77e207dca08332d8fa618b |
Hashes for sequali-0.4.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16af33f1a63a054fbc1538933c951c8662e5de9ecb7d7bd09a1bed8bbf4e3584 |
|
MD5 | 779d1d7109741df17093515058195334 |
|
BLAKE2b-256 | bccc11b36a36a6c4113ff985d9bf29abe3bf78a557cdd795a091e333944aad8e |
Hashes for sequali-0.4.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31385f133a893f6484ef3dba1ecd62943df63eba21c58eb746ed8806e0a9b1bd |
|
MD5 | c190757ecfb8b52015109252e06144fc |
|
BLAKE2b-256 | 4b9e88568774c909e9cb401415e00b8f4efc655b722d0cf556ff4d4804b0eaf3 |
Hashes for sequali-0.4.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 551916b1bfedc7d392d81802af40115b86a806f9c6144672b224d102cba61441 |
|
MD5 | 0cb42f48fd8b968d2c0dcb057ab3a639 |
|
BLAKE2b-256 | 23855c9c21b7f22d11c0343c6594cc20175e7af23fb92f9bef3c69b16cd6437f |
Hashes for sequali-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0ad826b3632bcdecc7bdab736dfa5f64321b9dbf8c5dc563dd4d38cab53bb86 |
|
MD5 | ac9fe95f37d51e8e519da4461a80c3e0 |
|
BLAKE2b-256 | 34acab2acc99ccd1a89f86a615a9379d96a025882c6305676d127adb72f11955 |
Hashes for sequali-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2cb244040e59efcceff56bf7b12f1f75590d9ce2852a75a4fec50185dfe2d59 |
|
MD5 | e7d4726a697cc1ab93c17c1acb9af463 |
|
BLAKE2b-256 | e3aa5d11d6d8b0452fd716e46e4058e2f837c983134738c25ebd84e166a9097e |
Hashes for sequali-0.4.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 132ec0a363f1364884e0592576dd23af287bce5ba15caab2b3ee9daf65a4ad08 |
|
MD5 | 82798e389e751085cd51d850e38e099c |
|
BLAKE2b-256 | 8510f062d84b3d0f5e34416669abc7cad15f8165cacb2ee66d0b4d8686ab344d |
Hashes for sequali-0.4.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d478b543e921a751951e954f13d4b8d9892bb02f33c590b8db500d774770409 |
|
MD5 | 98c6e7d41e97f620ab4082748a9b6a7f |
|
BLAKE2b-256 | 9d3aba70b2e9d29161680a20828b7f4830442f912c99dfe65a531bafc966b574 |
Hashes for sequali-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed3e6890cc606676e16c9547d01b60f94c5719e3a99d2dd79a4f7853e0b6e824 |
|
MD5 | a4b27fc980e1e060ca639ddbd2f098f7 |
|
BLAKE2b-256 | 6957a56ab2eecd4c8df5ad904d8185f1535cc219a3c32a0e2398c2b17bec103d |
Hashes for sequali-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0654817b177e31afd35997191e3ebe2e2e7b7982ed1ce86c489f159eb224bba |
|
MD5 | 1e291cf1bfe996b84ef044ce11a04cd4 |
|
BLAKE2b-256 | 7a91ae3f1390ec5a392101b24a6a0b9d145f3b07413809d524deb92009d142b7 |
Hashes for sequali-0.4.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a8099a383fc28c0430c2b5facb637e7c400a15160c98749c3dfaea172f038e5 |
|
MD5 | 6429d493c4ba9845b227c6b4f5560eea |
|
BLAKE2b-256 | 43e80457e62875b9df136c11e4c90010fb8232a985d9533dd3b1d89b9cdc470f |
Hashes for sequali-0.4.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15b3d86b420f08ae96e19df11c9019fe8c63c63fdff5be6dd606b22402e17966 |
|
MD5 | 1045d0bc755d9ae5df9b17d0806f442d |
|
BLAKE2b-256 | 200f9b19f61a38473bb1059112ab0a644b31df8002b40e4d9abd1bf095c208b4 |
Hashes for sequali-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d63299c91a497acf5235ad3eed91558669f2230bc7136fd10ab370fdcbe66df |
|
MD5 | c2e923420a2caf3a5ca758433685af2e |
|
BLAKE2b-256 | 8d86ddebdc49b38d90f5971a7116a2084e4a7856bfaf84390477e998988ce5a0 |
Hashes for sequali-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c45dbbd1c3a4199ddf42a34df195f0e49805857746ecec7bdf03f1995cf97032 |
|
MD5 | 43010fb0c380a55b052f6f95fb879a17 |
|
BLAKE2b-256 | e10a430aeda3a4a7be77a316514d74b5a1f34fd86dd37b1d703a2e62289901ba |
Hashes for sequali-0.4.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c9cc84100bc564d9e77b673bfca77fa2e3fbeba8dfe26c2f130837e4e194b1f |
|
MD5 | a311939317876e3d9bdc68b22542bc11 |
|
BLAKE2b-256 | 26490687ec70098bf579c81af803f1dfd3bb3996bd00cd9ffc2804fa380911ec |
Hashes for sequali-0.4.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d44e47b8bee9f0a7dd53c4147695bdd278aa7bc3e5b918127f79843eba523e28 |
|
MD5 | 15b0ae5d86d9bc54eb639f410d23321d |
|
BLAKE2b-256 | 82c56a252fc069fec8a870c21138325ce9151db804bce044086f1e9216e56388 |
Hashes for sequali-0.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b32d29b1e31b442a21fa2f7426e304f87f5f12c5a14e6573a30f94812fd96253 |
|
MD5 | e1de9258b8379579447eef53ee602294 |
|
BLAKE2b-256 | bc1ab385965d11cdd4ac8f105d6451a76f446ed9721d3de90d840163c72bd5a6 |
Hashes for sequali-0.4.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21b207c1d4838d44e8a93c829593bf4871c7296617207e5734e00a6743bab98a |
|
MD5 | 60194342cce4ee0d0ec4c90f5ca4c213 |
|
BLAKE2b-256 | 4f66b504bd8b3533d85e101247335c23929b648ef6f0d93d4e9ccae2a593f9d7 |