基因课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
每行指定要差异表达分析的两组数据
- KID_S1 BLO_S1
分析
- 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}'
- |log2FC| > 1
- sort排序
sort -k 2 # 按照第二列排序,按照字母顺序
sort -k 2n # 按照第二列排序,按数字大小排序
之后建议做的是富集分析
题外话
- Pvalue矫正有FDR和qvalue方法,矫正结果记为FDR或qvalue或padj;矫正后的pvalue一般会比原来的大
- 成组的配对样品,只能用R语言做,比较复杂
- R语言处理数据可以用dplyr和data.table软件包提高大数据处理速度(结构化数据处理)
- Perl语言文本处理最强大,即非结构化数据。正则表达式perl语言中最常用
网友评论