#fastq #bioinformatics #streaming #stdio

bin+lib fasten

一组用于对 fastq 文件进行基本分析的脚本

9 个不稳定版本 (4 个重大更改)

使用旧的 Rust 2015

0.8.3 2024年2月22日
0.8.1 2024年2月12日
0.7.2 2023年10月28日
0.4.4 2022年3月17日
0.1.12 2018年4月30日

#15 in 生物学

Download history 4/week @ 2024-03-07 2/week @ 2024-03-14 44/week @ 2024-03-28 36/week @ 2024-04-04

每月下载量 119

MIT 许可证

165KB
2.5K SLoC

Fasten

Crates.io CI DOI

一个强大的交错 fastq 文件操作套件。可执行文件可以读取/写入 stdinstdout,并且与交错 fastq 格式兼容。这使得使用 Unix 管道执行流操作变得容易得多。

概要

读取度量

$ cat testdata/R1.fastq testdata/R2.fastq | \
    fasten_shuffle | fasten_metrics | column -t
totalLength  numReads  avgReadLength  avgQual
800          8         100            19.53875

读取清理

$ cat testdata/R1.fastq testdata/R2.fastq | \
    fasten_shuffle | \
    fasten_clean --paired-end --min-length 2 | \
    gzip -c > cleaned.shuffled.fastq.gz

$ zcat cleaned.shuffled.fastq.gz | fasten_metrics | column -t
totalLength  numReads  avgReadLength  avgQual
800          8         100            19.53875
# No reads were actually filtered with cleaning, with --min-length=2

安装

从源安装

Fasten 使用 Rust 编程语言编写。有关 Rust 的更多信息,包括安装和可执行文件 cargo,请访问 rust-lang.org

下载后,使用 Rust 可执行文件 cargo 如下所示

cd fasten
cargo build --release
export PATH=$PATH:$(pwd)/target/release

所有可执行文件都将位于目录 fasten/target/release 中。

注意:有一些 Makefile 方法可以帮助包括

  • make all 以创建以下内容
    • make release 安装快速可执行文件
    • make debug 快速安装可执行文件(尽管可执行文件将不会被优化)
    • make fasten/doc 编译最新文档
  • make clean 卸载本地二进制文件

不使用 git 的安装

您还可以使用以下命令直接从 https://crates.io 安装 Fasten

cargo install fasten

关于如何工作的详细信息可以在货物手册中找到,手册地址为 https://doc.rust-lang.net.cn/cargo/commands/cargo-install.html

通用用法

所有脚本都接受参数,从stdin读取未压缩的fastq格式,并将未压缩的fastq格式打印到stdout。所有配对端fastq文件必须为交错格式,除非使用fasten_shuffle进行去交错。

  • --帮助
  • --numcpus并非所有脚本都会利用numcpus。(目前尚未实现)
  • --paired-end输入读取为交错配对端
  • --verbose打印更多状态消息

文档

请参阅 https://lskatz.github.io/fasten/fasten 中的内联文档。

本文档是用以下命令构建的:cargo doc --no-deps

其他文档

  • 一些包装脚本在 scripts 页面中注明。

贡献

有关如何贡献的说明可以在 CONTRIBUTING.md 中找到。

Fasten 脚本描述

所有可执行文件都读取和写入fastq格式,除了fasten_convert

可执行文件 描述
fasten_clean 修剪并清理fastq文件。
fasten_convert 在fastq、sam、fasta等不同序列格式之间进行转换。
fasten_straighten 将任何fastq文件转换为每条条目四行标准的格式。
fasten_metrics 打印基本读取度量。
fasten_pe 根据读取ID确定配对端。
fasten_randomize 随机化输入中的读取。
fasten_combine 合并相同读取并更新质量分数。
fasten_kmer 计数kmer。
fasten_normalize 使用kmer计数来归一化读取深度。
fasten_sample 下采样读取。
fasten_shuffle 随机化或去交错配对端读取。
fasten_validate 验证您的读取(已被fasten_inspectfasten_repair取代)
fasten_inspect 向读取ID添加信息,例如seqlength
fasten_repair 修复损坏的读取
fasten_quality_filter 如果质量低,则将核苷酸转换为"N"。
fasten_trim 平端修剪读取
fasten_replace 使用正则表达式查找和替换
fasten_mutate 引入随机突变
fasten_regex 使用正则表达式过滤读取
fasten_progress 向管道中的任何位置添加进度
fasten_sort 对fastq条目进行排序

词源

许多脚本都受到fastx工具集的启发,我想制作一个名为fasty的程序,但这个名字已经是生物信息学程序的名字了。因此,我遍历了字母表的其余部分,发现了"N"。因此,这个项目可以发音为"Fast-N"或以表明您通过"fasten"(无声的"T")来确保您分析的方式。

引用

DOI

要引用,请参阅Katz等人,(2024)。Fasten:对fastq文件进行流操作的工具包。开源软件杂志,9(94),6030,https://doi.org/10.21105/joss.06030

依赖关系

~10MB
~166K SLoC