使用 skbio 从压缩的 FASTA bz2 文件中读取

Posted

技术标签:

【中文标题】使用 skbio 从压缩的 FASTA bz2 文件中读取【英文标题】:Reading from compressed FASTA bz2 file using skbio 【发布时间】:2016-06-23 15:40:42 【问题描述】:

是否可以从压缩文件(例如 FASTA bz2)中读取?我通常使用skbio.sequence.Sequence.read,但在那里看不到这个选项。

谢谢!

【问题讨论】:

我正在寻找 SeqIO.parse 的 skbio 替代品(例如,使用 bz2.BZ2File(fna_bz2,"r") as in_f: for s in SeqIO.parse(in_f,"fasta") :) 谢谢! 【参考方案1】:

可以这样做:

import skbio
seq = skbio.io.read("seqs.fna.bz2", format='fasta', compression='bz2', into=skbio.DNA)

我使用的是 scikit-bio 0.5.0,但早期版本也应该可以。虽然我明确定义了压缩类型,但这通常不是必需的。

相关文档为here和here。

【讨论】:

需要注意的几点: 1) 上面的示例使用了过程 API。您可以等效地使用面向对象的 API 来执行此操作,例如skbio.Sequence.read("seqs.fna.bz2")。 2) scikit-bio 将尝试猜测压缩类型和文件格式,而不管使用的文件扩展名。 如果文件中有多个条目,你如何让它工作?

以上是关于使用 skbio 从压缩的 FASTA bz2 文件中读取的主要内容,如果未能解决你的问题,请参考以下文章

Linux压缩及解压

Linux bzip2命令:压缩文件(.bz2格式)

在 Python 中解压缩 .bz2 文件

怎么把多个FASTA格式的合成一个,急求

ubuntu安装 tar.gz格式程序

python读写压缩文件使用gzip和bz2