2016-10-27 23 views
-2

我正在做snp基因定位,並且在用50kb的snp進行定位後,我有以下文件。例如(snp,gene,pvalue)snp以最低p值進行基因定位

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值的標記?整個過程有沒有其他簡單的方法。

回答

0

這應該這樣做。

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

或者,如果你想更廣泛的格式:

tapply(df$pvalue, INDEX=list(df$gene, df$snp), min) 
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))