实验设计中,一般会做三个生物学重复来确保结果的准确性,尤其在下游分析中。但有时会遇到没有生物学重复,而又需要进行差异分析的情况,这时一般建议考虑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

Significance A and B for protein ratios的更多相关文章

  1. USACO 3.2 ratios 高斯消元

    题目原意很简单,就是解一个三元一次方程组 直接高斯消元解方程组,枚举最后一列的倍数(k) 注意double的精度,有很多细节需要处理 /* PROB:ratios LANG:C++ */ #inclu ...

  2. 洛谷P2729 饲料调配 Feed Ratios

    P2729 饲料调配 Feed Ratios 36通过 103提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目背景 农夫约翰从来只用调 ...

  3. USACO Section 3.2: Feed Ratios

    直接暴力搜 /* ID: yingzho1 LANG: C++ TASK: ratios */ #include <iostream> #include <fstream> # ...

  4. USACO3.24Feed Ratios

    直接枚举到100水过 /* ID: shangca2 LANG: C++ TASK: ratios */ #include <iostream> #include<cstdio> ...

  5. (转)protein 数据库

    最早关注蛋白质互作网络,是在来GDMC第一年的时候,中间停了半年看互作-各种算法,网络分析停滞不前,没想到搞到最后,还是和网络碰到了一起,我总是会潜意识走近给自己第一印象不错的object,包括人.用 ...

  6. ggplot的boxplot添加显著性 | Add P-values and Significance Levels to ggplots | 方差分析

    参考:Add P-values and Significance Levels toggplots 多组比较,挑选感兴趣的显示显著性. data("ToothGrowth") he ...

  7. Amber TUTORIAL B5: Simulating the Green Fluorescent Protein

    Section 1: Preparing the PDB file 1EMA是本次教程所用的pdb,可以在PDB数据库下载. pdb4amber -i 1EMA.pdb -o gfp.pdb --dr ...

  8. 3.The significance of Books 书本的意义

    3.The significance of Books 书本的意义 (1)A bookless life is an imcomplete life.Books influence the depth ...

  9. Alpha Level (Significance Level)

    1.Alpha Level (Significance Level,显著水平): What is it? 显著性水平α是指当零假设是正确的,但做出了错误决策的概率(即一类错误的概率).Alpha水平( ...

随机推荐

  1. C# Predicate委托

    Predicate在集合搜索和WPF数据绑定中用途广泛,其调用形式: 调用形式:Predicate<object>(Method)/Predicate<参数类型>(方法) 1. ...

  2. const 有什么用途

    可以定义const 常量:const可以修饰函数的参数.返回值,甚至函数的定义体.被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性

  3. 2019Python学习路线图

  4. 取消 ios 上下滑动

  5. Cesium 1.51新功能评测

    前言 之前介绍Cesium1.50版本的新功能时,很多人把1.50写成1.5.这两个版本可不一样,之间差了45个小版本号,1.5版本大概是Cesium三年前的版本了. Cesium每月月初的第一个工作 ...

  6. Python的格式化输出--制作名片

    效果图 代码如下: name = input("Your name:")age = int(input("Your age:"))job = input(&qu ...

  7. chown权限命令

    chown 命令用途更改与文件关联的所有者或组. 语法chown[  -f ] [ -h] [  -R ] Owner [ :Group ] { File ... | Directory ... } ...

  8. Docker(六)安装Red5进行rtmp推流

    1.pull镜像 docker pull mondain/red5 2.启动原版red5 docker run --name red5 -d -p 5080:5080 -p 1935:1935 mon ...

  9. Luogu P1963 [NOI2009]变换序列(二分图匹配)

    P1963 [NOI2009]变换序列 题意 题目描述 对于\(N\)个整数\(0,1, \cdots ,N-1\),一个变换序列\(T\)可以将\(i\)变成\(T_i\),其中\(T_i \in ...

  10. golang的flag包源码解析与使用

    当我们 import  package时,package内的全局常量和全局变量会进行初始化,并且紧接着init函数会执行.因此我们先看一下flag包的全局常量和全局变量. 一.flag包的全局常量.全 ...