目前最常用的三个差异分析方法:limma,edgeR,DEseq
公众号之前的推文也有对其进行介绍👉三包差异分析
利用这三种包进行差异分析,数据都得使用Counts;
然而,后续的许多分析使用的数据一般都是log2(TPM+1);
后续想要补一个差异分析,只能另外收集Counts数据或者对TPM进行转换。
虽然
有上述两个简单明了的解决思路,但是新的问题不免会让同学们陷入纠结
👉Counts数据收集之后还需要对照着已经处理好的TPM数据的标准再处理一边。麻烦不说,处理时的代码报错真的是想让人砸电脑......
👉直接利用公式,将TPM数据转换为Counts。这听上去似乎可靠可行,但需要实现从公式到代码......也是让人头疼
难道
就没有一个不用另外收集数据或者另外转换的方法吗
👇👇👇
还真有,
Wilcoxon秩和检验
老样子,概念这方面需要同学们自行去了解
下面直接进行代码演示👇
①首先需要准备TPM数据这是肯定的
具体方法可查看推文👉新版TCGA数据提取
②数据前期处理并标准化#读取TPM矩阵
readCount<-read.table(file="combined_RNAseq_TPM.txt", header = T, row.names = 1, stringsAsFactors = F,check.names = F)
# edger 标准化并删除低表达基因
library(edgeR)
library(limma)
group1=sapply(strsplit(colnames(readCount),"\\-"), "[", 4)
group1=sapply(strsplit(group1,""), "[", 1)
group1=gsub("2", "1", group1)
y <- DGEList(counts=readCount,group=group1)
#删除过低表达量基因
keep <- filterByExpr(y)
y <- y[keep,keep.lib.sizes=FALSE]
##进行TMM标准化并转移到CPM(百万计数)
y <- calcNormFactors(y,method="TMM")
count_norm=cpm(y)
count_norm<-as.data.frame(count_norm)
③对每个基因进行Wilcoxon秩和检验
矩阵的基因动不动就成千上万,这里用多线程帮同学们提了提速
(6万个基因运算不超过10秒)# 对每个基因进行Wilcoxon秩和检验
library(future.apply)
plan(multisession)
pvalues <- future_lapply(1:nrow(count_norm),function(i){
data<-cbind.data.frame(gene=as.numeric(t(count_norm[i,])),group1)
p=wilcox.test(gene~group1, data)$p.value
return(p)
})
fdr=p.adjust(pvalues,method = "fdr")
④计算每个基因的差异倍数(logFC)# 计算每个基因的倍数变化
group2=factor(group1)
conditionsLevel<-levels(group2)
dataCon1=count_norm[,c(which(group1==conditionsLevel[1]))] #肿瘤
dataCon2=count_norm[,c(which(group1==conditionsLevel[2]))] #正常
#肿瘤比正常,logFC大于0则为“基因在肿瘤上调”;若为正常比肿瘤,则logFC大于0表示“基因在正常中上调”
foldChanges=log2(rowMeans(dataCon1)/rowMeans(dataCon2))
⑤基于FDR阈值的输出结果pvalues0=t(as.data.frame(pvalues))
outRst<-data.frame(log2foldChange=foldChanges, pValues=pvalues0, FDR=fdr)
rownames(outRst)=rownames(count_norm)
outRst=na.omit(outRst)
fdrThres=0.05
最后导出文件write.table(outRst[with(outRst, ((log2foldChange> 1 | log2foldChange< (-1)) & FDR < 0.05 )),], file="wilcoxout.tsv",sep="\t", quote=F,row.names = T,col.names = T)
最后得到差异结果文件
是不是非常亲切
今天就跟同学们分享到这,需要代码及示例文件的同学可在下方扫码获取
👇感谢关注与支持,欢迎进群交流👇
微信扫一扫
关注该公众号