1 个不稳定版本
0.1.0 | 2022 年 6 月 26 日 |
---|
#265 in 生物学
47KB
1K SLoC
我的 (Max 的?) 最小化 fasta 工具包
没有复杂的功能。最小化、简单的 fasta 工具。每个程序都包含在 ./src/fasta
目录中,并遵循类似的模板代码,与文件处理相关。
用法
输入 mmft
(显示子命令) 或 mmft <子命令> -h
(显示特定子命令) 将显示相关工具的用法。
仅在需要时添加命令。如果您喜欢您所看到的,请随时贡献您最喜欢的子命令的 PR。
计算
mmft len <fasta(s)>
或cat <fasta(s)> | mmft len
. 计算每个 fasta 记录的长度。mmft gc <fasta()>
或cat <fasta(s)> | mmft gc
. 计算每个 fasta 记录的 GC 含量。mmft n50 <fasta()>
或cat <fasta(s)> | mmft n50
. 计算 fasta 记录的 n50 值(或结合的 fasta 文件流的 n50 值)。mmft num <fasta(s)>
或cat <fasta(s)> | mmft num
. 计算序列数量以及输入 fasta 文件中的总碱基对数。
文件操作
mmft regex -r "<regex>" <fasta(s)>
或cat <fasta> | mmft regex -r "<regex>"
. 从一个或多个fasta文件中提取标题与正则表达式匹配的fasta记录。mmft extract -r 1-100 <fasta()>
或cat <fasta> | mmft extract -r 1-100
. 从每个fasta记录中提取前100个核苷酸。当然,您可以选择任何范围,使用短横线分隔数字。mmft filter -f <file> <fasta(s)>
. 提供一个每行一个ID的文本文件,过滤器将提取相应的fasta记录。mmft merge <fastas>
. 将多个fasta文件合并为相同的记录。mmft sample <fasta(s)> -n <N>
. 从fasta文件(或fasta文件流)中随机抽取指定数量的记录。
当将数据管道传输到 mmft
时请小心,因为fasta文件不会被单独处理,而是被视为fasta记录的连续体。因此,虽然 mmft n50 1.fasta 2.fasta
分别显示了每个fasta文件的n50,但 cat *.fasta | mmft n50
将计算两个文件合并后的n50。此外,mmft sample
将整个STDIN加载到内存中,因此当管道传输大文件时要小心。
所有输出都将打印到STDOUT。
待办事项
我会在有时间或有需要时添加内容。也许
- 简单模式匹配,返回位置。
- 潜在的开放阅读框(ORF)
- 是否有任何kmer相关的内容?
- 测试
- 更好的文档
依赖关系
~18MB
~310K SLoC