https://mp.weixin.qq.com/s/yQK5mv5Du-yu2pyCa1iuqQ流程的原标题是:RNA-seq workflow: gene-level exploratory analysis and differential expression
http://www.bioconductor.org/packages/release/workflows/vignettes/rnaseqGene/inst/doc/rnaseqGene.html
这个同样的也没有中文版,讲解了把测序的FASTQ文件比对到参考基因组,或者使用salmon进行定量。
在R里面安装这个bioconductor流程
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("rnaseqGene")
全部目录如下;
1 Introduction
1.1 Experimental data
2 Preparing quantification input to DESeq2
2.1 Transcript quantification and tximport / tximeta
2.2 Quantifying with Salmon
2.3 Reading in data with tximeta
2.4 DESeq2 import functions
2.5 SummarizedExperiment
2.6 Branching point
3 The DESeqDataSet object, sample information and the design formula
3.1 Starting from SummarizedExperiment
3.2 Starting from count matrices
4 Exploratory analysis and visualization
4.1 Pre-filtering the dataset
4.2 The variance stabilizing transformation and the rlog
4.3 Sample distances
4.4 PCA plot
4.5 PCA plot using Generalized PCA
4.6 MDS plot
5 Differential expression analysis
5.1 Running the differential expression pipeline
5.2 Building the results table
5.3 Other comparisons
5.4 Multiple testing
6 Plotting results
6.1 Counts plot
6.2 MA-plot
6.3 Gene clustering
6.4 Independent filtering
6.5 Independent Hypothesis Weighting
7 Annotating and exporting results
7.1 Exporting results
7.2 Plotting fold changes in genomic space
8 Removing hidden batch effects(去除批次效应哦!)
8.1 Using SVA with DESeq2
8.2 Using RUV with DESeq2
9 Time course experiments (时间序列转录组数据)
流程代码
我这里其实更加推崇我自己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里面的表达矩阵和表型信息
--
FROM 120.236.174.*