limma:RNA-Seq Data

生成计数矩阵
标准化和过滤
  1. 第一步先创建DGEList对象。
    dge = DGEList(counts = counts)
  2. 移除0和低计数值得行。
keep = filterByExpr(dge,design)
dge = dge[keep,,keep.lib.sizes = FALSE]
  1. 标准化。
    dge = calcNormFactors(dge)
差异表达:limma-trend

适用: 测序深度在RNA样本是一致的,最大文库和最小文库的大小比率不超过3倍。

  1. 将计数转换为cpm值。使用prior.count参数降低计数对数的方差。
    logCPM = cpm(dge,log = TRUE,prior.count = 3)
  2. 运行eBayes或treat时使用trend=TRUE参数。
fit = lmFit(logCPM,design)
fit = eBayes(fit,trend = TRUE)
topTable(fit,coef = ncol(design))
  1. 如果想让gene ranking的fold changes更明显。
fit = lmFit(logCPM,design)
fit = treat(fit,lfc = log2(1.2))
topTreat(fit,coef = ncol(design))
差异表达:limma-voom

适用: 样品间文库变化很大的时候。

  1. voom()应用于标准化和过滤后的DGEList
    v = voom(dge,design,plot = TRUE)
    也可以直接对计数矩阵进行voom转换。
    v = voom(counts,design,plot = TRUE)
    如果数据噪音很多:
    v = voom(counts,design,plot = TRUE,normalize = "quantile")

  2. 常规limma pipeline

fit = lmFit(v,design)
fit = eBayes(fit)
topTable(fit,coef = ncol(design))
  1. 样本质量加权
    plotMDS
差异剪切

limma检测数基因在不同条件下剪切的区别。

  1. 这个情况下,计数矩阵必须是外显子单位计数,每行一个外显子。
    DGEList的genes矩阵中的GeneID标示每个外显子属于哪个基因。
dge = DGEList(counts = counts)
dge$genes$GeneID = GeneID
  1. 过滤,标准化。
A  = rowSums(dge$counts)
dge = dge[A>10,,keep.lib.sizes = FALSE]
dge = calcNormFactors(dge)
  1. voom转换,拟合线性模型。
v = voom(dge,design,plot = TRUE)
fit = lmFit(v,design)
  1. 测试不同剪切和线性模型系数之间的联系。运行diffSplice()
ex = diffSplice(fit,geneid = "GeneID")
topSplice(ex, coef=2, test="simes") #指定与线性模型第二个系数的关系
  1. 展示单个外显子相对于同一个基因中其他外显子富集情况。
    plotSplice(ex)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值