r - 使用 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。我将不胜感激任何未来的建议。有我忽略的包裹吗?我应该使用其他工具来执行此操作吗?
谢谢!
解决方案
推荐阅读
- php - 需要帮助了解使用 PHP 和 SQL 编写多个过滤器的方法
- bash - Bash 依赖变量
- debugging - perf:检查内核的全局变量
- r - 当旋转更宽以导出到 xlsx 时,使用 R 中的属性来保存元数据
- swift - Swift 包中的文件超出范围
- dynamics-crm - 如何强制新用户在首次登录时从 CRM 重置密码?
- c - 在 C 中使用结构和指针创建二叉树
- javascript - 如何在我的 html 文件中添加 onclick 声音?
- simulation - OMNET++、VEINS 和 SUMO - 当我尝试改变颜色时车辆消失
- javascript - 获取动态调用jquery函数的元素宽度