目前最常用的三个差异分析方法: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)
最后得到差异结果文件
是不是非常亲切
今天就跟同学们分享到这,需要代码及示例文件的同学可在下方扫码获取
👇感谢关注与支持,欢迎进群交流👇
微信扫一扫
关注该公众号