首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将补充SNP呼叫替换为原始参考/备用SNP呼叫?

如何将补充SNP呼叫替换为原始参考/备用SNP呼叫?
EN

Stack Overflow用户
提问于 2019-03-26 04:17:35
回答 3查看 48关注 0票数 2

我对两种基因型进行了测序,并提取了相应的SNP芯片SNPs,将我们的基因型与完全相同基因型的公开数据进行了比较。我注意到一些SNP必须是相反的链极性,需要翻转。如何使用R检查样本调用是否与参考或备用SNP调用匹配,如果不匹配,则将样本调用替换为互补核苷酸?

我尝试将ifelsechartr结合起来,但失败了。

示例数据

代码语言:javascript
复制
test <- data.frame("pos" = 1:5, "ref" = c("A", "T", "C", "C","G"), "alt" = c("G","C", "A", "T", "A"), "sample" = c("A", "A", "C", "G", "G"))
View(test)

+---------+------+-------+----------+
|   pos   | ref  |  alt  | sample1  |
+---------+------+-------+----------+
| 1       | A    | G     | A        |
| 2       | T    | C     | A        |
| 3       | C    | A     | C        |
| 4       | C    | T     | G        |
| 5       | G    | A     | G        |
+---------+------+-------+----------+

期望输出

代码语言:javascript
复制
+---------+------+-------+----------+
|   pos   | ref  |  alt  | sample1  |
+---------+------+-------+----------+
| 1       | A    | G     | A        |
| 2       | T    | C     | T        |
| 3       | C    | A     | C        |
| 4       | C    | T     | C        |
| 5       | G    | A     | G        |
+---------+------+-------+----------+
EN

回答 3

Stack Overflow用户

发布于 2019-03-26 04:32:24

您可以使用库dplyr来操作您的数据集。例如,使用mutate(),您可以检查示例调用是否与引用匹配。然后,您可以使用ifelse()进行一些更改。

代码语言:javascript
复制
library(dplyr)


test %>% 
  mutate(TEST1 = (ref == sample)) %>%
  mutate(sample2 = ifelse(TEST1 == TRUE, ref, sample))

#   pos ref alt sample TEST1
# 1   1   A   G      A  TRUE
# 2   2   T   C      A FALSE
# 3   3   C   A      C  TRUE
# 4   4   C   T      G FALSE
# 5   5   G   A      G  TRUE
票数 0
EN

Stack Overflow用户

发布于 2019-03-26 15:18:12

使用ifelse和chartr

代码语言:javascript
复制
ifelse(test$sample == test$ref, test$sample, chartr("ATCG", "TAGC", test$sample))
# [1] "A" "T" "C" "C" "G"
票数 0
EN

Stack Overflow用户

发布于 2019-03-26 21:28:51

虽然你在R中寻求解决方案,但你仍然可能想要考虑其他工具来翻转链,特别是如果你需要在更大的规模上这样做的话。您可以使用Plink和许多其他工具来完成此任务。此外,我可能会从它们的记录/方法描述中确认公共数据中的链对齐。如果公共数据集中只有一些SNP被翻转/看起来是翻转的,这是可疑的(人们会认为来自同一来源的数据内的对齐是一致的)。此外,如果您使用位置参数,您应该在您的vs公共数据中确认基因组构建/版本,因为不同的版本也可能是混淆的来源。最后,我可能还想确保问题中的SNP不是多等位的,因为它也可能是分歧的来源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55345770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档