跳转到主要内容

一个快速的FASTQ过滤器程序。

项目描述

fastq-filter

一个快速的FASTQ过滤器程序。

Fastq-filter在计算平均值时正确地考虑了质量得分是日志得分。它还提供了一个选项,可以直接根据平均错误率进行过滤。

FASTQ Q=30表示平均错误率为0.001,Q=20为0.01,Q=10为0.1。这并不直观。尽管Q=20的错误率比Q=30高10倍,但数字(20和30)对传达这种差异作用甚微。使用0.01和0.001可以正确传达这些错误率相差一个数量级。这也意味着不能简单地平均phred得分。Q=10和Q=30不会平均Q=20。实际的平均错误率为(0.001 + 0.1)/ 2 = 0.0505。大约每20个中有一个。Q=20表示0.01:每100个中有一个。简单平均会导致质量被高估5倍!这意味着任何简单平均的工具在实际情况中都是不可用的。

不幸的是,许多工具都是这样做的。fastq-filter被编写为提供一个非常快速的过滤解决方案,以便以非常低的成本应用正确的过滤。

安装

  • 使用pip: pip install fastq-filter

  • 对于最新开发版本: pip install git+https://github.com/LUMC/fastq-filter

  • 使用conda conda install -c conda-forge -c bioconda fastq-filter

用法

单个fastq文件可以通过以下方式进行过滤:

fastq-filter -e 0.001 -o output.fastq input.fastq

多个fastq文件可以通过以下方式进行过滤:

fastq-filter -e 0.001 -o r1_filtered.fastq.gz -o r2_filtered.fastq.gz r1.fastq.gz r2.fastq.gz

Fastq-filter确保输出保持同步。它不仅限于两个输入,因此也可以一起过滤R1.fqR2.fqR3.fq

在下文中,“对”用于指出当评估2个或更多FASTQ记录时。当提供多个FASTQ文件时,过滤器的行为如下

  • 平均错误率:使用组合phred分数的平均值。

  • 中值质量:使用组合phred分数的中值。

  • 最小长度:对中的记录之一必须满足最小长度。

  • 最大长度:对中的记录不得超过最大长度。

长度过滤器的理由是R1和R2都序列相同的分子,而标准长度是两者的最长者。

usage: fastq-filter [-h] [-o OUTPUT] [-l MIN_LENGTH] [-L MAX_LENGTH]
                    [-e AVERAGE_ERROR_RATE] [-q MEAN_QUALITY]
                    [-Q MEDIAN_QUALITY] [-c COMPRESSION_LEVEL] [--verbose]
                    [--quiet]
                    input [input ...]

Filter FASTQ files on various metrics.

positional arguments:
  input                 Input FASTQ files. Compression format automatically
                        detected. Use - for stdin.

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        Output FASTQ files. Compression format automatically
                        determined by file extension. Flag can be used
                        multiple times. An output must be given for each
                        input. Default: stdout.
  -l MIN_LENGTH, --min-length MIN_LENGTH
                        The minimum length for a read.
  -L MAX_LENGTH, --max-length MAX_LENGTH
                        The maximum length for a read.
  -e AVERAGE_ERROR_RATE, --average-error-rate AVERAGE_ERROR_RATE
                        The minimum average per base error rate.
  -q MEAN_QUALITY, --mean-quality MEAN_QUALITY
                        Average quality. Same as the '--average-error-rate'
                        option but specified with a phred score. I.e '-q 30'
                        is equivalent to '-e 0.001'.
  -Q MEDIAN_QUALITY, --median-quality MEDIAN_QUALITY
                        The minimum median phred score.
  -c COMPRESSION_LEVEL, --compression-level COMPRESSION_LEVEL
                        Compression level for the output files. Relevant when
                        output files have a .gz extension. Default: 2
  --verbose             Report stats on individual filters.
  --quiet               Turn of logging output.

优化

fastq-filter使用了以下优化以实现快速:

  • 可以同时应用多个过滤器以最小化IO。

  • fastq-filter可以用于管道中以最小化IO

  • 使用了Python过滤器函数。这是一个简写的Python代码,否则需要解释。

  • 平均质量和中值质量算法是用C实现的,并具有与Python的绑定。

  • 平均质量算法使用查找表,因为FASTQ中只有93种可能的phred分数编码。这节省了大量计算概率的计算。

  • 中值质量算法实现了一个计数排序,这非常快,但不适用于通用数据。由于FASTQ质量非常适合计数排序,因此中值计算可以非常快速地执行。

  • dnaio被用作FASTQ解析器。该解析器使用Cython编写的解析器来解析FASTQ文件。

  • xopen用于读取和写入文件。这允许支持gzip压缩文件,使用python-isal打开,它读取gzip文件的速度是python gzip模块实现的2倍,写入gzip文件的速度是5倍。

项目详情


下载文件

下载适用于您平台的自定义文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

fastq-filter-0.3.0.tar.gz (15.3 kB 查看哈希值)

上传时间

构建分布

fastq_filter-0.3.0-cp310-cp310-win_amd64.whl (25.6 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

fastq_filter-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl (44.5 kB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ x86-64

fastq_filter-0.3.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.1 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

fastq_filter-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (23.1 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

fastq_filter-0.3.0-cp39-cp39-win_amd64.whl (25.6 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

fastq_filter-0.3.0-cp39-cp39-musllinux_1_1_x86_64.whl (44.2 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ x86-64

fastq_filter-0.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39.9 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

fastq_filter-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl (23.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

fastq_filter-0.3.0-cp38-cp38-win_amd64.whl (25.6 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

fastq_filter-0.3.0-cp38-cp38-musllinux_1_1_x86_64.whl (44.6 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ x86-64

fastq_filter-0.3.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.5 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

fastq_filter-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl (23.1 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86-64

fastq_filter-0.3.0-cp37-cp37m-win_amd64.whl (25.6 kB 查看哈希值)

上传时间 CPython 3.7m Windows x86-64

fastq_filter-0.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl (45.0 kB 查看哈希值)

上传时间 CPython 3.7m musllinux: musl 1.1+ x86-64

fastq_filter-0.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39.9 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

fastq_filter-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl (23.0 kB 查看哈希值)

上传时间 CPython 3.7m macOS 10.9+ x86-64

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面