每月一生信流程栏目灵感来自于《铁汉1991》博客的《每日一生信》,他那个时候介绍的主要是生信基础知识,包括数据结构,数据格式,数据库资源,计算机基础等等,所以每天都可以进步,每天都有成果。这些基础知识已经被分享的七七八八了,所以我这里推陈出新,来一个每月一生信流程,陪生信技能树的粉丝们一起进步!
前面我们推荐两个值得用一个月时间来学习的流程,包括
但是RNA-seq的分析肯定远不止那些啦,拿到基于基因的表达矩阵固然可以根据转录组经典表达量矩阵下游分析大全 里面的R包和代码进行统计可视化,但是表达矩阵并不是凭空产生,上游分析也需要我们有一定的认知,本次我们介绍的流程就会涵盖这些知识点。(很多朋友会下意识的认为RNA-seq数据的上游分析必然是基于Linux,其实也是可以使用bioconductor的全部R包来完成的哦!)
流程的原标题是:RNA-seq workflow: gene-level exploratory analysis and differential expression
这个同样的也没有中文版,讲解了把测序的FASTQ文件比对到参考基因组,或者使用salmon进行定量。介绍了2种得到表达矩阵的方法,涵盖的R包或者软件如下:
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("rnaseqGene")
因为原文写的实在是太详细了,我这里就不拷贝粘贴了,大家直接去阅读即可
全部目录如下;
我这里其实更加推崇我自己GitHub的airway数据集的分析代码:https://github.com/jmzeng1314/GEO/tree/master/airway_RNAseq 节选如下:
library(airway)
## 表达矩阵来自于R包: airway
# 如果当前工作目录不存在文件:'airway_exprSet.Rdata'
# 就运行下面 if 代码块内容,载入R包airway及其数据集airway后拿到表达矩阵和表型信息
if(!file.exists('airway_exprSet.Rdata')){
library(airway)
data(airway)
exprSet=assay(airway)
group_list=colData(airway)[,3]
save(exprSet,group_list,file = 'airway_exprSet.Rdata')
}
# 大家务必注意这样的代码技巧,多次存储Rdata文件。
# 存储后的Rdata文件,很容易就加载进入R语言工作环境。
load(file = 'airway_exprSet.Rdata')
table(group_list)
# 下面代码是为了检查
if(T){
colnames(exprSet)
pheatmap::pheatmap(cor(exprSet))
group_list
tmp=data.frame(g=group_list)
rownames(tmp)=colnames(exprSet)
# 组内的样本的相似性理论上应该是要高于组间的
# 但是如果使用全部的基因的表达矩阵来计算样本之间的相关性
# 是不能看到组内样本很好的聚集在一起。
pheatmap::pheatmap(cor(exprSet),annotation_col = tmp)
dim(exprSet)
# 所以我这里初步过滤低表达量基因。
exprSet=exprSet[apply(exprSet,1, function(x) sum(x>1) > 5),]
dim(exprSet)
exprSet=log(edgeR::cpm(exprSet)+1)
dim(exprSet)
# 再挑选top500的MAD值基因
exprSet=exprSet[names(sort(apply(exprSet, 1,mad),decreasing = T)[1:500]),]
dim(exprSet)
M=cor(log2(exprSet+1))
tmp=data.frame(g=group_list)
rownames(tmp)=colnames(M)
pheatmap::pheatmap(M,annotation_col = tmp)
# 现在就可以看到,组内样本很好的聚集在一起
# 组内的样本的相似性是要高于组间
pheatmap::pheatmap(M,annotation_col = tmp,filename = 'cor.png')
library(pheatmap)
pheatmap(scale(cor(log2(exprSet+1))))
}
# 以上代码,就是为了检查R包airway及其数据集airway里面的表达矩阵和表型信息
有一个质控的讨论,值得大家看看哦!
不同数据变换公式的差异
我在《生信分析人员如何系统入门Linux(2019更新版)》把Linux的学习过程分成6个阶段 ,提到过每个阶段都需要至少一天以上的学习:
我在在生信分析人员如何系统入门R(2019更新版) 里面给初学者的知识点路线图如下:
书籍贪多不烂,下面2本必买,读5遍以上
视频必须强推生信技能树近30万学习量的基础合辑:
因为做目录确实很浪费时间,差不多就下面这些,大家先学习吧:
听说隔壁openbiox团队在组织翻译这个bioconductor流程系列,而且还是由我们生信技能树元老-思考问题的熊领头,希望他们的翻译成果早日出版!