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)   ## 查看显著性位点的数目

 。

 

posted @ 2024-04-22 18:19  小鲨鱼2018  阅读(311)  评论(0)    收藏  举报