首页 > 解决方案 > 使用 FASTA 标头查询 UniProt 和 RefSeq 数据库

问题描述

这是我在 StackOverflow 上的第一篇文章。我已经解决这个问题一个多星期了,我还没有找到使用搜索功能或我有限的计算能力的解决方案。我有一个由 FASTA 标题、序列和计数列组成的数据集。FASTA 标头在技术上包含我需要的所有信息,但这就是我遇到问题的地方......

不同的格式

一些条目来自 UniProt:
tr|V5RFN6|V5RFN6_EBVG_Epstein-Barr_nuclear_antigen_2_(Fragment)_OS=Epstein-Barr_virus_(strain_GD1)_GN=EBNA2_PE=4_SV=1

一些条目来自 RefSeq:
gi|139424477|ref|YP_001129441.1| EBNA-2 [Human_herpesvirus_4_type_2]

同义词

我想使用计数与病毒或基因制作图表,我认为拆分标题并从那里开始很容易。然而,我发现病毒名称和基因名称似乎有无穷无尽的排列方式。在上面的示例中,EBV 有不少于 4 个名称,每个单独的基因都有几种不同的格式。

我使用了一个冗长的 ifelse 语句来为病毒家族名称创建一个列。我将以下内容缩短为仅包括 EBV,但您可以想象它适用于所有常见病毒。

EBV <- c("EBVG", "Human_herpesvirus_4", "Epstein", "Human_gammaherpesvirus_4")


joint.virus <- joint.virus %>% mutate(Virus_Family = 
ifelse(grepl(paste(EBV, collapse = "|"), x = joint.virome$name), "EBV", NA))

这还不错,但我必须对所有 EBV 的约 85 个基因做类似的事情。这不仅乏味,而且对我想要查看的所有病毒都这样做是不可行的。

我查看了使用 UniProt.ws 包查询数据库以提取生物名称和基因名称,但您需要从 taxID(不包含在 UniProt 标头中)开始。我觉得应该有一些方法可以使用 FASTA 标头来获取有机体名称和基因名称。

我目前正在使用 R。我将不胜感激任何未来的建议。有我忽略的包裹吗?我应该使用其他工具来执行此操作吗?

谢谢!

标签: rbioinformaticsbioconductor

解决方案


推荐阅读