R语言中计算FST值的z分数、根据z分数计算P、进行P值的FDR矫正筛选阈值线
001、生成fst值得z分数
即:(观测值-平均值)/标准差
dat <- read.table("fst.fst", header = T) head(dat, 3) dat$z_score <- (dat$FST - mean(dat$FST))/sd(dat$FST) ## 在原来数据上新增一列,并赋值为z_score head(dat, 3)

。
002、根据z分数计算P值
dat <- read.table("fst.fst", header = T) head(dat, 3) dat$z_score <- (dat$FST - mean(dat$FST))/sd(dat$FST) head(dat, 3) dat$p <- pnorm(q=dat$z_score, lower.tail=F) ## 是否大于某个值,使用右侧检验 head(dat, 3)

。
003、对P值进行FDR矫正
dat <- read.table("fst.fst", header = T) head(dat, 3) dat$z_score <- (dat$FST - mean(dat$FST))/sd(dat$FST) head(dat, 3) dat$p <- pnorm(q=dat$z_score, lower.tail=F) head(dat, 3) dat$p_adjust <- p.adjust(dat$p,method="fdr") ## 对p值进行FDR矫正 head(dat, 3)

。
004、查看显著性位点得数目
sum(dat$p_adjust < 0.05) ## 查看显著性位点的数目

。

浙公网安备 33010602011771号