从ncbi分类数据库中获取ete3的分类信息。

taxonomy-ranks的Python项目详细描述


分类等级

1简介

使用ete3 python3模块(http://etetoolkit.org/)获取分类等级信息

2安装

确保您的pip来自python3

$ which pip
/Users/mengguanliang/soft/miniconda3/bin/pip

然后键入

$ pip install taxonomy_ranks

将在pip命令所在的同一目录下创建命令taxaranks

如果您想进一步了解Python3和pip,请参阅https://www.python.org/https://docs.python.org/3/tutorial/venv.html?highlight=pip

3用法

$ taxaranks

taxaranks <taxonomy_list> <outfile>

The 'taxonomy_list' file can be a list of ncbi taxa id or species names (or higher ranks, e.g. Family, Order), or a mixture of them.

ete3 package will automatically download the NCBI Taxonomy database during the first time using of this program.

一旦安装了ncbi分类数据库,就不需要再连接到网络,除非您想在一段时间后更新数据库,对于这种情况,请转到http://etetoolkit.org/docs/latest/tutorial/tutorial_ncbitaxonomy.html了解更多详细信息。

用作模块

一个分类名称可能有不止一个潜在的紫杉类。

	>>>from taxonomy_ranks import TaxonomyRanks
    >>>rank_taxon = TaxonomyRanks(taxa_name)
    >>>rank_taxon.get_lineage_taxids_and_taxanames()
    >>>ranks = ('user_taxa', 'taxa_searched', 'superkingdom', 'kingdom', 'superphylum', 'phylum', 'subphylum', 'superclass', 'class', 'subclass', 'superorder', 'order', 'suborder', 'superfamily', 'family', 'subfamily', 'genus', 'subgenus', 'species')
    >>>for rank in ranks:
    >>>    print(rank, rank_taxon.lineages[potential_taxid][rank])

4示例

跑步

$ taxaranks test.taxa test.taxa.out

输入文件test.taxa内容:

Spodoptera litura
Pieris rapae
Locusta migratoria
Frankliniella occidentalis
Marsupenaeus japonicus
Penaeus monodon

结果文件test.taxa.out内容:

superkingdom	kingdom	superphylum	phylum	subphylum	superclass	class	subclass	superorder	ordersuborder	superfamily	family	subfamily	genus	subgenus	species
Eukaryota	Metazoa	NA	Arthropoda	Hexapoda	NA	NA	Pterygota	NA	Lepidoptera	Glossata	Noctuoidea	Noctuidae	Amphipyrinae	Spodoptera	NA	Spodoptera litura
Eukaryota	Metazoa	NA	Arthropoda	Hexapoda	NA	NA	Pterygota	NA	Lepidoptera	Glossata	Papilionoidea	Pieridae	Pierinae	Pieris	NA	Pieris rapae
Eukaryota	Metazoa	NA	Arthropoda	Hexapoda	NA	NA	Pterygota	NA	Orthoptera	Caelifera	Acridoidea	Acrididae	Oedipodinae	Locusta	NA	Locusta migratoria
Eukaryota	Metazoa	NA	Arthropoda	Hexapoda	NA	NA	Pterygota	NA	Thysanoptera	Terebrantia	Thripoidea	Thripidae	Thripinae	Frankliniella	NA	Frankliniella occidentalis
Eukaryota	Metazoa	NA	Arthropoda	Crustacea	Multicrustacea	NA	Eumalacostraca	Eucarida	Decapoda	Dendrobranchiata	Penaeoidea	Penaeidae	NA	Marsupenaeus	NA	Marsupenaeus japonicus
Eukaryota	Metazoa	NA	Arthropoda	Crustacea	Multicrustacea	NA	Eumalacostraca	Eucarida	Decapoda	Dendrobranchiata	Penaeoidea	Penaeidae	NA	Penaeus	NA	Penaeus monodon

5个问题

首次使用此程序下载和安装NCBI分类数据库时,主目录空间不足。

错误消息可以是:

sqlite3.OperationalEoor: disk I/O error

这是由ete3引起的,它将创建一个目录~/.etetoolkit来存储数据库(大约500米),但是您的主目录没有足够的空间

解决方案:
解决办法是显而易见的。

  1. 在其他有足够空间的地方创建目录:

     $ mkdir /other/place/myetetoolkit
    
  2. 删除由ete3

    创建的目录~/.etetoolkit
     $ rm -rf ~/.etetoolkit
    
  3. 将新目录链接到主目录:

     $ ln -s /other/place/myetetoolkit ~/.etetoolkit
    
  4. 再次运行程序:

     $ taxaranks my_taxonomy_list outfile
    

这样,ete3就可以按预期工作了。

更新ncbi分类数据库

有关详细信息,请参阅http://etetoolkit.org/docs/latest/tutorial/tutorial_ncbitaxonomy.html

  1. 打开控制台,然后键入

     $ python3
    

    您将进入python3命令行状态。

  2. 在python3中执行以下命令

     >from ete3 import NCBITaxa
     >ncbi = NCBITaxa()
     >ncbi.update_taxonomy_database()
    

6条引文

目前,我没有计划发布taxonomy-ranks

但是,由于taxonomy-ranks使用了ete3工具包,如果在出版物中使用taxonomy-ranks,则应该引用它。

ETE 3: Reconstruction, analysis and visualization of phylogenomic data.
Jaime Huerta-Cepas, Francois Serra and Peer Bork. 
Mol Biol Evol 2016; doi: 10.1093/molbev/msw046

有关详细信息,请转到http://etetoolkit.org/

7作者

孟冠良

Linzhi2012在gmail.com上

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

推荐PyPI第三方库


热门话题
orm如何在Java中实现规范化映射?   java以编程方式修改Xtext生成的Mwe2工作流   java正在覆盖外部文件中的现有数据,如何停止?   java在ANTLR BNF语法符号中epsilon的等价物是什么?   java如何使用Hibernate@Anyrelated注释?   代码生成生成java类并在运行时加载它   java Maven无法在本地jar文件中收集依赖项   java NetBeans IDE 8.2不显示错误消息   java Selenium web驱动程序找不到元素   java如何修复“拒绝访问属性”invoke“”的权限?   JavaApacheJClouds,从比日期更早的blob中删除blob的最佳方法   java如何比较和排序树集中的项目?   使用JavaSpring和无头/解耦CMS   java使用swagercodegen在不同的类中生成端点   Java外部Keylistener没有响应