介绍了筛选差异表达基因的过程。
library(DESeq2)
输入文件为上一步生成的文件:RNA-seq 数据处理(三)准备差异表达分析文件
countData <- read.csv("gene_count_matrix.csv",sep=",",row.names="gene_id")
首先替换第一行的表头,以识别相同处理的重复;
countData <- countData[rowMeans(countData)>1,]
condition <- factor(c(rep(c("KO", "WT"), each=3)))
colData <- data.frame(row.names=colnames(countData), condition)
构建DEseq2对象
dds <- DESeqDataSetFromMatrix(countData, colData, design= ~ condition)
标准化数据
dds1 <- DESeq(dds)
从DESeq矩阵中提取差异表达表
将差异表达表转化数据框
去除含缺失值的行
res <- na.omit(as.data.frame(results(dds1, contrast = c('condition', 'WT', 'KO'))))
# 这块我直接写出一层套一层的方式了,目的就是上面的三行说明
筛选差异基因
设定阈值
FC <- 2
padj <- 0.05
# 一般情况筛选差异基因时阈值可以直接选择上述条件,但是如果后续结果不够理想还是需要根据自己的数据进行调整,多试几组参数,找到最佳选择。
标注表达上调或下调的基因
res1$Significant <- "normal"
up <- intersect(which(res1$log2FoldChange > log2(FC) ),which(res1$padj < padj))
down <- intersect(which(res1$log2FoldChange < (-log2(FC))), which(res1$padj < padj))
res1$Significant[up] <- "up"
res1$Significant[down] <- "down"
输出结果
write.csv(res1, file="230922-results_KO.csv")
网友评论