1. 背景知识
本记录主要是使用DESeq2 包进行差异包表达分析。如有错误敬请指正。
版本说明:
R 语言是4.2.0版本,对应的BiocManager是3.15版本。
注意部分依赖包是由R4.2.1建造,可能会有问题。
2. 计算原理
3. 安装包(环境安装)
我们采用的是BiocManager安装DESeq2包
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(version = "3.15")
BiocManager::install("DESeq2")
BiocManager::install("dplyr")
4. 比对过程
4.1比对前准备
加载相关包
library(DESeq2)
library(dplyr)
按照包的要求,制作输入数据,首先,导入Counts数据矩阵
countdata <-
read.table("D:/Bin/R/20221027/diff.txt",
header = T,
row.names = 1)
过滤在所有重复样本中小于1的基因
## 过滤在所有重复样本中小于1的基因
countdata = countdata[rowMeans(countdata) > 1,]
## 样本注释信息自己在本地后制作后进行导入
coldata <- read.csv("D:/Bin/R/20221027/countdata.csv",
header = T, row.names = 1)
head(coldata)
检查数据Counts文件与coldata数据是否匹配
##检查数据Counts文件与coldata数据是否匹配
## 当返回TRUE时,表明两个数匹配。
all(rownames(coldata) %in% colnames(countdata))
all(rownames(coldata) == colnames(countdata))
4.2制作差异矩阵
dds <-
DESeqDataSetFromMatrix(countData = countdata,
colData = coldata,
design = ~ condition)
dim(dds)
过滤
## 过滤
dds <- dds[rowSums(counts(dds)) > 1,]
nrow(dds)
4.3 差异比较
## 差异比较
dep <- DESeq(dds)
res <- results(dep)
diff = res
diff <- na.omit(diff) ## 去除NA
dim(diff)
write.csv(diff, "all_diff.csv") # 导出所有的差异文件
设置筛选标准
# 设置筛选标准
foldChange <- 0.42
padj = 0.05
#
diffsig <- diff[(diff$pvalue < padj & abs(diff$log2FoldChange) > foldChange),]
dim(diffsig)
write.csv(diffsig, "All_diffsig.csv")
标准化
## 标准化(标准化Counts值)
vsd <- vst(dds, blind = FALSE)
normalizeExp <- assay(vsd)