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
1 ответ
Использование ncbi.get_rank()
чтобы получить словарь {id:name}
затем сделать некоторые основные преобразования, чтобы получить {name:taxonomy}