差异表达分析

作者: 嗒嘀嗒嗒嘀嗒嘀嘀 | 来源:发表于2020-07-16 23:55 被阅读0次

基因课FTP地址:ftp://http://gsx.genek.tv/2020-3-10%E7%9B%B4%E6%92%AD%E4%B8%80%E4%B8%AA%E5%AE%8C%E6%95%B4%E7%9A%84%E8%BD%AC%E5%BD%95%E7%BB%84%E9%A1%B9%E7%9B%AE/
听张旭东老师的课

准备

  • 在linux下就能做
  • 差异表达分析是在组之间做的,即一个基因在组间的差异大于其在组内的差异,则此基因为差异表达基因
  • conda安装很多时候不稳定
  • 软件
    DESeq2
    • 安装:
      R脚本运行 BiocManager::install('DESeq2')
      或 conda安装 conda install bioconductor-deseq2

edgeR

  • 安装:
    R脚本运行 BiocManager::install('edgeR')
    或 conda安装 conda install bioconductor-edger
  • edgeR可以做无生物学重复的测序数据的差异表达分析(只做组间差异表达分析),需要用--dispersion参数指定组内差异值,方法是查阅文献看别人类似领域组内差异大概是多少,或者盲猜是0.1,不行就再调整

voom

ROTS

  • 差异表达分析perl脚本
    run_DE_analysis.pl

输入文件

  • gene.counts.matrix文件
  • 样本信息表
    sample.txt
    内容(分隔符为‘\t’):
    • 单末端数据:第一列-分组名称,第二列-样本名称,第三列-序列绝对路径
    • PE数据:除前三列外,加第四列,为PE第二条序列的绝对路径

只用得上前两列

  • 比对设计文件,用于指定分组,默认是所有的两两之间的比
    contrasts.txt文件
    内容(分隔符\t):
    • KID_S1 BLO_S1
      KID_S4 BLO_S4
      每行指定要差异表达分析的两组数据

分析

  • run_DE_analysis.pl的perl脚本在软件包trinity的目录下
    目录为miniconda3下(或anaconda) opt/trinity-2.1.1/Analysis/DifferentialExpression/run_DE_analysis.pl
    trinty是一个用于无参转录组组装的软件,可以用conda安装
  • commands
    perl run_DE_analysis.pl
    --matrix gene.counts.matrix \ # 指定counts矩阵
    --method DESeq2 \ # 指定差异表达软件
    --samples_file sample.txt \ # 指定样本信息表
    --contrasts contrasts.txt # 如果需要,指定本次需要比较的样本

输出结果

  • 生成一个.dir新目录存放结果
  • .Rscript为perl生成的差异表达分析的R语言脚本
  • .DE_results为差异表达分析结果文件,表格,内容有id(基因ID), baseMean & A & B(平均值,不用管), log2FoldChange(差异的倍数,基础条件为>1), lfcSE, stat, pvalue, padj(矫正后Pvalue,基础条件为<0.05)

结果筛选

  • sed去除文件第一行
    sed '1d' xxx.DE_results
    sed '1,10d' xxx.DE_results # 删除前十行
  • AWK搞定筛选
    • |log2FC| > 1
      awk中无绝对值写法,可以用 awk 'sqrt($5*$5) > 1' 实现
    • padj < 0.05
      awk 'sqrt($5*$5) > 1 && $9<0.05 {print $1 "\t" $5 "\t" $9}'
  • sort排序
    sort -k 2 # 按照第二列排序,按照字母顺序
    sort -k 2n # 按照第二列排序,按数字大小排序

之后建议做的是富集分析

题外话

  • Pvalue矫正有FDR和qvalue方法,矫正结果记为FDR或qvalue或padj;矫正后的pvalue一般会比原来的大
  • 成组的配对样品,只能用R语言做,比较复杂
  • R语言处理数据可以用dplyr和data.table软件包提高大数据处理速度(结构化数据处理)
  • Perl语言文本处理最强大,即非结构化数据。正则表达式perl语言中最常用

相关文章

网友评论

    本文标题:差异表达分析

    本文链接:https://www.haomeiwen.com/subject/ggzrhktx.html