将索引的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 ...>)]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null