ete3: Как получить названия таксономических рангов из идентификатора таксономии?

Я хочу использовать это для преобразования множества идентификаторов, но мне нужно точно знать, какой таксономический ранг присвоен каждому коду таксономии. Ниже показан пример преобразования, который имеет смысл, но я не знаю, как обозначить некоторые из вызовов таксономии. Основные таксономические ранги: (домен, царство, тип, класс, порядок, семейство, род и вид) https://en.wikipedia.org/wiki/Taxonomic_rank.

В большинстве случаев это будет легко, но в случае наличия подвидов и штаммов бактерий это может сбить с толку.

Как мне заставить ete3 указать, какому рангу соответствуют идентификаторы родословной в таксономическом ранге?

import ete3
import pandas as pd

ncbi = ete3.NCBITaxa()
taxon_id = 505
lineage = ncbi.get_lineage(taxon_id)
Se_lineage = pd.Series(ncbi.get_taxid_translator(lineage), name=taxon_id)
Se_lineage[lineage]


1                       root
131567    cellular organisms
2                   Bacteria
1224          Proteobacteria
28216     Betaproteobacteria
206351          Neisseriales
481            Neisseriaceae
32257               Kingella
505          Kingella oralis
Name: 505, dtype: object

person O.rka    schedule 10.09.2017    source источник
comment
вам следует спросить biostars.org   -  person Pierre    schedule 11.09.2017
comment
Есть ли способ перенести такой вопрос?   -  person O.rka    schedule 11.09.2017


Ответы (1)


Используйте ncbi.get_rank(), чтобы получить словарь {id:name}, затем выполните некоторые базовые преобразования, чтобы получить {name:taxonomy}

person O.rka    schedule 11.09.2017