3 个不稳定版本
0.2.0 | 2023年4月20日 |
---|---|
0.1.1 | 2021年10月12日 |
0.1.0 | 2021年8月27日 |
#170 in 生物学
41KB
646 行
rust-fastleng
fastleng
是一个专门用于从 FASTQ、FASTA 或未对齐的 BAM 文件中收集序列长度信息的工具。
为什么还需要另一个 FASTX 统计工具?
尽管有许多工具可以生成 FASTX 文件的摘要统计信息,但我无法找到一个可以计算 FASTQ 和 FASTA 所需的所有长度指标的工具。 pyfastx 是最接近的一个,但它似乎将某些统计信息(例如 N50)限制为仅适用于一种文件类型。
相比之下,除了初始解析外,fastleng
对文件类型是无关的。然而,(目前)它只专注于生成基于序列长度的指标。对于更全面的指标,可能更好的选择是使用 pyfastx 或 fastp 等工具。
安装
所有安装选项都假定您已经安装了 Rust 以及 Rust 的 cargo
包管理器。
从 Cargo
cargo install fastleng
fastleng -h
从 GitHub
git clone https://github.com/HudsonAlpha/rust-fastleng.git
cd rust-fastleng
#testing optional
cargo test --release
cargo build --release
./target/release/fastleng -h
#for local install
cargo install --path .
用法
典型用法
以下命令将在给定的 FASTQ 文件上调用 fastleng
并将结果重定向到 JSON 文件
fastleng {data.fq.gz} > {output.json}
示例输出
{
"total_bases": 21750112406,
"total_sequences": 1305936,
"mean_length": 16654.807284583625,
"median_length": 16600.0,
"n10": 18849,
"n25": 17833,
"n50": 16739,
"n75": 15842,
"n90": 15209
}
total_bases
- 输入文件中所有序列的总碱基数total_sequences
- 输入文件中包含的总序列数(即字符串)mean_length
- 计数序列的平均长度median_length
- 计数序列的中位数长度n10
、n25
、n50
、n75
、n90
- 分别为 10、25、50、75 和 90 的序列的 N-score;这些应该依次单调递减
可以考虑的选项
-h
- 查看完整选项列表并退出-l
、--length-json
- 启用将原始长度计数保存到指定的 JSON 文件-o
,--out-json
- 启用用于指定写入长度统计信息的文件名(默认:标准输出)
待办事项列表
- 为其他 N-score 值创建一个选项(或者也许为所有整数 N-score 值创建一个选项)
- 如果您有其他基于长度的统计信息,请随时在 GitHub 上提交功能请求。
性能说明
我们尚未进行正式的基准测试。据观察,大部分运行时间都花在了加载 FASTX 文件上,因此程序目前非常依赖于 I/O。
参考文献
Fastleng 目前没有与之相关的预印本或论文。
许可证
根据您的选择,许可如下
- Apache 许可证 2.0(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0》)
- MIT 许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT》)
。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义,您提交的任何有意包含在作品中的贡献,均应如上双许可,而无需任何额外条款或条件。
依赖关系
~12–22MB
~350K SLoC