一个Python包,用于从一组分类标识符中获取完整的血统和最低共同祖先(LCA)。

taxop的Python项目详细描述


分类学

一个Python包,用于从一组分类标识符中获取完整的血统和最低共同祖先(LCA)。在

安装

有两种安装taxopy的方法:

  • 使用pip:
pip install taxopy
  • 使用conda:
^{pr2}$

使用

importtaxopy

首先,您需要从NCBI的服务器下载分类信息,并将这些数据放入TaxDb对象中:

taxdb=taxopy.TaxDb()# You can also use your own set of taxonomy files:taxdb=taxopy.TaxDb(nodes_dmp="taxdb/nodes.dmp",names_dmp="taxdb/names.dmp",keep_files=True)

TaxDb对象存储每个分类标识符的名称、等级和父子关系:

print(taxdb.taxid2name['2'])print(taxdb.taxid2parent['2'])print(taxdb.taxid2rank['2'])
Bacteria
131567
superkingdom

要获取给定分类单元的信息,可以使用其分类标识符创建Taxon对象:

saccharomyces=taxopy.Taxon('4930',taxdb)human=taxopy.Taxon('9606',taxdb)gorilla=taxopy.Taxon('9593',taxdb)lagomorpha=taxopy.Taxon('9975',taxdb)

每个Taxon对象存储各种信息,例如输入分类单元的等级、标识符和名称,以及所有父分类单元的标识符和名称:

print(lagomorpha.rank)print(lagomorpha.name)print(lagomorpha.name_lineage)print(lagomorpha.rank_name_dictionary)
order
Lagomorpha
['Lagomorpha', 'Glires', 'Euarchontoglires', 'Boreoeutheria', 'Eutheria', 'Theria', 'Mammalia', 'Amniota', 'Tetrapoda', 'Dipnotetrapodomorpha', 'Sarcopterygii', 'Euteleostomi', 'Teleostomi', 'Gnathostomata', 'Vertebrata', 'Craniata', 'Chordata', 'Deuterostomia', 'Bilateria', 'Eumetazoa', 'Metazoa', 'Opisthokonta', 'Eukaryota', 'cellular organisms', 'root']
{'order': 'Lagomorpha', 'clade': 'Opisthokonta', 'superorder': 'Euarchontoglires', 'class': 'Mammalia', 'superclass': 'Sarcopterygii', 'subphylum': 'Craniata', 'phylum': 'Chordata', 'kingdom': 'Metazoa', 'superkingdom': 'Eukaryota'}

LCA和多数票

您可以使用find_lca函数获得分类群列表的最低共同祖先:

human_lagomorpha_lca=taxopy.find_lca([human,lagomorpha],taxdb)print(human_lagomorpha_lca.name)
Euarchontoglires

您还可以使用find_majority_vote来发现一个分类群列表中超过一半血统共享的最具体的分类单元:

majority_vote=taxopy.find_majority_vote([human,gorilla,lagomorpha],taxdb)print(majority_vote.name)
Homininae

find_majority_vote函数允许您通过fraction参数来控制其严格性。例如,如果您将fraction设置为0.75,则结果分类单元将由超过75%的输入谱系共享。{cd8>默认为^ cd5。在

majority_vote=taxopy.find_majority_vote([human,gorilla,lagomorpha],taxdb,fraction=0.75)print(majority_vote.name)
Euarchontoglires

也可以为每个输入沿袭指定权重:

majority_vote=taxopy.find_majority_vote([saccharomyces,human,gorilla,lagomorpha],taxdb)weighted_majority_vote=taxopy.find_majority_vote([saccharomyces,human,gorilla,lagomorpha],taxdb,weights=[3,1,1,1])print(majority_vote.name)print(weighted_majority_vote.name)
Euarchontoglires
Opisthokonta

从名称

如果您只有一个分类单元的名称,则可以使用taxid_from_name函数获取其对应的taxid:

taxid=taxopy.taxid_from_name('Homininae',taxdb)print(taxid)
['207598']

此函数返回与输入名称关联的所有分类标识符的列表。对于同音异义词,列表将包含多个分类标识符:

taxid=taxopy.taxid_from_name('Aotus',taxdb)print(taxid)
^{pr21}$

致谢

税务局使用的一些代码来自CAT/BAT tool for taxonomic classification of contigs and metagenome-assembled genomes。在

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

推荐PyPI第三方库


热门话题
java有没有办法使多个对象初始化更紧凑?   java确保BUnit包和测试包不包含在生产代码中   java如何使JTextField更小,而不是填满整个空间?   javaawt的矩形交点   用户连续登录应用程序的java条纹(Android)   maven如何在服务器上运行java项目,并将其作为jar添加到EAR项目中   java如何在jar/war的资源文件夹中创建png?   swing在Java中未选择列表项时禁用按钮   java GridView x BaseAdapter并在onItemClick中重新加载   java Apache POI未应用某些颜色索引   java创建URL使用uri有什么区别。解析/uri。生成器/连接字符串?   java JavaFX jfoenix运行时错误(JFXDatePicker)   右旋转二叉搜索树   在Java标准版中运行Java移动应用程序   java为什么要为每个实例创建静态hashmap?   java如何使用RTC唤醒和报警意图   java获取对象中的JSON表达式   (Java)服务器不接受多个连接   java为什么我的目的地为null?   java使用多个参数执行存储过程,并使用spring数据jpa将结果集映射到非实体类