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
相關文章
相關標籤/搜索