将索引的fasta文件集合显示为单个源
multifastadb的Python项目详细描述
multifastadb将索引的fasta文件的集合显示为单个 来源。其目的是简化对 分布在多个文件中的序列。
$pip安装多数据库
$python
>>> from multifastadb import MultiFastaDB
最简单的用法是传递文件或目录列表:
>>> mfdb = MultiFastaDB(['tests/data/ncbi'])
默认情况下,multifastadb查找以.fasta、.fa、.faa结尾的文件, .fna和以.gz结尾的压缩版本。(注:1 必须使用bgzip进行压缩;使用gzip将在读取时失败。)
来自ncbi的fasta文件包含单个 在登录行中编码的序列,例如 (GI 53292629参考NP.1)。或者,multifastadb将 创建ref项的元索引:
>>> mfdb = MultiFastaDB(['tests/data/ncbi'], use_meta_index=True)
序列可以通过fetch()方法检索,可选 序列开始和结束界限(在基于0的坐标或基间坐标中):
>>> seq = mfdb.fetch('NP_001005405.1') >>> seq = mfdb.fetch('NP_001005405.1',0,10)
注意:使用边界获取子序列的效率比:
>>> seq = mfdb.fetch('NP_001005405.1')[0:10] # Don't do this!
如果序列出现多次,则只有第一个版本是 返回(有意)。
还支持基于属性的检索:
>>> seq = mfdb['NP_001005405.1'] >>> seq = mfdb['NP_001005405.1'][0:10]
基于属性的检索不获取任何序列 立刻。相反,它返回一个SequenceProxy对象来获取 顺序缓慢而透明。这对于 访问大序列(如染色体)。
可以使用where_is()方法找到给定加入的位置:
>>> mfdb.where_is('gi|53292629|ref|NP_001005405.1|') # doctest: +ELLIPSIS [('...f1.human.protein.small.faa...', <pysam... object at ...>)]