实验设计中,一般会做三个生物学重复来确保结果的准确性,尤其在下游分析中。但有时会遇到没有生物学重复,而又需要进行差异分析的情况,这时一般建议考虑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. 解决wordpress 5.3更新后Uncaught Typeerror: $ is not a function

    本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:解决wordpress 5.3更新后Uncaught Typeerror: $ is not a function: 本文通过插件的办法解 ...

  2. linux拆分文件

    1.先看下文件总的行数: wc -l filename 我们现在来看看它具体的参数该怎么用: split支持自定义输出文件大小和输出文件行数两种模式,此外还可以定义每一行最大的值. -l 按输出文件行 ...

  3. webpack 4.0尝鲜

    发布不久得webpack 4.0据说速度快了68% - 98%,然后还支持没配置文件,所以看起来很牛逼得样子 所以尝试一发 webpack和webpack-cli分离 现在执行webpack命令 必须 ...

  4. js 设置缓存

    长期存储    localStorage.getItem("key");       //获取键的值    localStorage.setItem("key" ...

  5. 转:LPC2214的PLL与定时器设置

    原地址:http://blog.sina.com.cn/s/blog_4419d72d0100mu7h.html LPC2214的PLL与定时器设置 http://www.dpj365.cn/bbs/ ...

  6. 观察者模式(Observer、Subject、ConcreteSubject、ConcreteObserver)(监护、订阅)

    建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应的作出反应. 在此发生改变的对象称之为观察目标(被观察者),而被通知的对象称为观察者,一个观察者目标可以对应多个观 ...

  7. SQL 查询--日期条件(今日、昨日、本周、本月。。。) (转)

    主要用到sql 函数 DATEDIFF(datepart,startdate,enddate) sql 语句,设 有 数据库表 tableA(日期字段ddate) ——查询 今日 select * f ...

  8. HBase入门实例: Table中Family和Qualifier的关系与区别

    Table中Family和Qualifier的关系与区别 就像用MySQL一样,我们要做的是表设计,MySQL中的表,行,列的在HBase已经有所区别了,在HBase中主要是Table和Family和 ...

  9. C/C++ - 类中成员变量是引用

    C++引用 引用在定义时必须初始化,否则编译时便会报错.如果类(自定义类型)的成员是引用类型,需要注意一些问题. 引用成员变量 并不为这个变量新辟空间:类对象做成员变量则是要对其新辟一段空间的 不能有 ...

  10. Vuejs实战项目步骤一

    1.使用vue初始化项目 vue create msm-demo #创建项目 npm run serve #部署 2.更改public文件夹下面的index文件,只留下 <div id=&quo ...