zoukankan      html  css  js  c++  java
  • 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的介绍

    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值)

    代码实现

    了解了上述的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
  • 相关阅读:
    TWaver HTML5 (2D)--基本概念
    浏览器编码的函数简介escape(),encodeURI(),encodeURIComponent()
    pom.xml
    注解式控制器简介
    Controller接口
    WebContentGenerator
    Controller简介
    DispatcherServlet中使用的特殊的Bean
    DispatcherServlet默认配置
    DispatcherServlet
  • 原文地址:https://www.cnblogs.com/yanzhi123/p/10810041.html
Copyright © 2011-2022 走看看