snp到具有最低p值的基因映射

时间:2016-10-27 18:42:03

标签: r bioinformatics genetics

我正在做基因映射的snp,在用50 kb的snp映射后,我有以下文件。例如(snp,gene,pvalue)

 1. ars113  ap1 0.1 
 2. ars113  ap1 0.1 
 3. ars113  ap1 0.2 
 4. ars113  ap1 0.2
 5. ars113  ap2 0.1 
 6. ars113  ap2 0.2 
 7. ars114  ap6 0.1 
 8. ars114  ap6 0.3

我如何只为每个基因选择p值最低的标记?整个过程还有其他简单的方法。

2 个答案:

答案 0 :(得分:0)

这应该这样做。

aggregate(pvalue ~ gene + snp, df, min)

或者如果你想要更宽的格式:

tapply(df$pvalue, INDEX=list(df$gene, df$snp), min)

答案 1 :(得分:0)

将文件作为数据框读入,然后按基因对数据帧进行分组并过滤每个基因的最小p值。

library(dplyr)
library(readr)

df <- read_delim("filename.txt", delim = " ", col_names = c("snp", "gene", "pvalue"))
df %>% group_by(gene) %>% filter(pvalue == min(pvalue))