*载入所需要的包与目录
rm(list = ls())
options(stringsAsFactors = F)
library(FactoMineR)
library(factoextra)
library(tidyverse) # ggplot2 stringer dplyr tidyr readr purrr tibble forcats
library(pheatmap)
library(DESeq2)
library(RColorBrewer)
#### 载入数据 设置目录
setwd("C:/Users/Lenovo/Desktop/test")
load(file = '1.counts.Rdata')
dir.create("2.check")
setwd("2.check")
样本使用了五个可视化图进行数据检查,分别是:
hclust图
距离热图
PCA图
前500差异性大的基因热图
样本相关性检测热图(选取了500高表达基因,防止低表达基因造成的干扰)
1、箱图
boxplot()
数据预处理(归一化处理)
归一化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内,因为我们得到的样本数据中可能一个特征向量的某几个元素的值非常大,使得特征数据不在一个数量级,因此必须限定在一个合适的范围内。归一化就是为了后面数据处理的方便,其次是保正程序运行时收敛加快。
edgeR使用的校正方法称为trimmed mean of M values (TMM)
参考 理论 | edgeR – TMM normalization 详细计算过程
#方法一
dat <- as.data.frame(log2(edgeR::cpm(counts)+1)) #简单归一化 CPM:Counts per million
#方法二
dat <- log2(tpm+1)
edgeR::cpm()
*package name::functionname可以在需要用某个函数时临时直接加载包,不用事先library。另一点更重要的是尽可能减少library带来的附带作用,但会减小效率。
tpm 计算出tpm后再经过筛选得到至少在重复样本数量内的表达量counts大于1的行(基因)
as.data.frame函数可以将另一种数据类型强制转换成数据框类型
class函数来查询数据的类型
?查阅
#方法三
#DESeq2_normalize rld
if (F) {
dds <- DESeqDataSetFromMatrix(countData = counts,
colData = gl,
design = ~ group_list)
rld <- rlog(dds, blind=FALSE)
write.table(assay(rld), file<