Significance A and B for protein ratios

实验设计中,通常会作三个生物学重复来确保结果的准确性,尤为在下游分析中。但有时会遇到没有生物学重复,而又须要进行差别分析的状况,这时通常建议考虑foldchange便可,由于根本没法进行T-test等统计学方法嘛。可是若是必需要算一个P值(我的以为没啥必要。。。),那么不一样组学有各自处理的方法(虽然并非靠谱),好比NGS的转录组的一些软件会预估一个离散度作校订,而质谱的蛋白组则是用Significance A/B算法,这篇文章主要讲下Significance A/B是怎么来的算法

通常在网上搜Significance A/B是很难搜到相关信息的,由于这个是特定用于蛋白组学的一种统计学方法,并且如今来讲用的也比较少了;那当初为什么提出这分析方法,我的以为多是由于那时蛋白组学成本太高。之前一直只知道有这一分析方法,可是不知其原理,最近在搜索中无心发现一个帖子What statistical methods for ITRAQ with two biological replication?,其中提到一篇文章中有对Significance A/B的介绍app

Significance A/B最早是发表于2008年Nature Biotechnology期刊上,MaxQuant enables high peptide identification rates, individualized p.p.b.-range mass accuracies and proteome-wide protein quantification,这篇文章主要是介绍Maxquant这款用于蛋白组定量分析软件的,很是有名,而其附录中做者提到了如何经过protein ratio来计算显著性(P值)ide

代码实现

了解了上述的Significance A/B的计算过程,那么咱们就能够用代码将其实现,下面我用R写了个函数来计算Significance A,而Significance B从上述可知,只要对protein分bin后再用Significance A计算便可(这里不重复展现了),输入为ratio向量函数

get_significance <- function(ratio){ ratio <- log2(as.numeric(ratio)) order_ratio <- ratio[order(ratio)] quantiletmp <- quantile(order_ratio, c(0.1587,0.5,0.8413)) rl <- as.numeric(quantiletmp[1]) #对应公式中的r-1 rm <- as.numeric(quantiletmp[2]) #对应公式中的r0 rh <- as.numeric(quantiletmp[3]) #对应公式中的r1 p <- unlist(lapply(ratio, function(x){ if (x > rm){ z <- (x-rm)/(rh-rm) pnorm(z,lower.tail = F) }else{ z <- (rm-x)/(rm-rl) pnorm(z,lower.tail = F) } })) }
p <- get_significance(data)

http://www.bioinfo-scrounger.com
相关文章
相关标签/搜索