查看原文
其他

16s分析之差异分析(DESeq2)

文涛 微生信生物 2022-05-08

今天我们来学习R语言DESeq2包,原理什么的后不说,在操作过程中点缀一下,等四个差异包推送完成后,咱们在对这四个包做差异分析的原理做一个比较分析;



这个包适用于:

高通量数据分析过程中,基于count数据,对其进行标准化处理,并对两个样本的差异做定量比较



 

#安装这个包,安装过程不太顺利,请多试几次,还是没问题的,我也没有出现意料之外的问题

source("https://bioconductor.org/biocLite.R")

biocLite("DESeq2")

library(DESeq2)

读取我们的数据

# 读入实验设计,Qiimemapping文件删去第一行的“#”即可使用

design =read.table("map_lxdjhg.txt", header=T, row.names= 1,sep="\t")

head(design)

# 读取OTU,全部otu表没有抽平,基于count的数据,不可用相对丰度数据

otu_table =read.delim("otu_table.txt", row.names= 1,sep="\t",header=T,check.names=F)

#做判别,做排序为了使变量可以一一对应上

idx =rownames(design) %in% colnames(otu_table)

design = design[idx,]

#我们后面利用sub_design文件做分组文件

sub_design =design[idx,]

#我们后面利用count文件做差异分析文件

count =otu_table[, rownames(sub_design)]

#这里我们将count转化为矩阵,当然可以不用转化

count=as.matrix(count)

head(count)

第一步构建两个矩阵,第一个OTU矩阵,第二个分组矩阵

dds <-DESeqDataSetFromMatrix(countData = count,

                              colData =sub_design,

                              design = ~ SampleType)

countData:即为差异分析otu表格,格式为行名otu名称,列名变量名为样品名

colData:即为分组文件;

design:即为分组文件中指定分组的列的列名;

第二步

dds2 <-DESeq(dds)  #直接用DESeq函数即可

 

resultsNames(dds2)

这里我们指定需要比较的两组样本

# 将结果用results()函数来获取,赋值给res变量,这里我设定显著性阈值为alpha=0.05

res <-  results(dds2,contrast=c("SampleType","G0", "GC1"),alpha=0.05)

#看一下结果的概要信息

summary(res)


 

 

#这里我们可以更据结果文件提取我们需要的行,使用subset函数,也是也个很有用的函数

WT <-subset(res,padj< 0.05 & (log2FoldChange > 1 | log2FoldChange < -1))

#当然可以只得到想要的OTU名称

WT2 <-row.names(WT)

 

# res就是最后的显著性比较的文件,这里我们按照显著性排序

res <-res[order(res$padj),]

#将差异和OTU相对丰度做一个合并

wt3 <- merge(as.data.frame(res),as.data.frame(counts(dds2,normalize=TRUE)),by="row.names",sort=FALSE)

head(wt3)

# 得到csv格式的差异表达分析结果

 

write.table(wt3,"otu差异统计表格GC1-G0.txt",quote= FALSE,row.names = T,

            col.names = T,sep = "\t")

这里提到了相对丰度提取的命令

## 获得normalizecount

dds <-estimateSizeFactors(dds)

wt6 <-counts(dds, normalized=T)

head(wt6)

这是上面我们合并采用的命令

counts(dds2,normalize=TRUE)




学习永无止境,分享永不停歇!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存