首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何进行批量差异分析并绘制其火山图及拼图

上周,曾老师给了我一个8个样本8个组别的转录组数据,即每组只有一个样本的转录组数据。我的处理方式是从中抽取两组进行差异分析,与文中描述的显著差异基因数目以及文中指出的差异基因进行比较,看看分析结果是否大致相同。但是,其实我有些没有理解到老师的意思。老师的初衷是想同原文一样批量绘制「同个部位」两两组别间的差异分析结果,看看其差异基因数量的分布,然后进行比较。在看到我理解偏差后,老师还飞快地给我提供了单样本批量差异分析的脚本。「因此,本周我们主要重点展示如何批量进行单样本差异分析以及批量绘制火山图并拼图」。

02

require(Rwordseg)分析案例展示(未去冠词以及无意义的词)

看网络上很多朋友都在用“Rwordseg”程序包进行分词练习。我也忍不住进行了一次实验。 首先,肯定是装程序包了,个人感觉是废话,纯凑字数。      如下是我进行的联系,在网上找了一篇关于范爷的专访,看看能看出来什么吧。 =========================================================================== #第一步,文本分词 require(Rwordseg) test<- readLines("E:\\FBB1.txt",encoding='UTF-8')     #读取数据 res = test[test != " "]      #读取test,且剔除test=“ ” words = unlist(lapply(X = res,FUN = segmentCN))   #分词,并调整表结构,将有相同词频的词归类 word = lapply(X = words,FUN = strsplit," ")       #给每个词根据顺序赋个顺序指 v = table(unlist(word))               #重建表 v = sort(v,deceasing=T)           #降序排列 v[1:100] head(v)                                           #给每列字段赋标题 d = data.frame(word = names(v),freq = v)         #更改标题 write.csv(d,"E:\\学习.csv",header = T)          #导出数据,为下一步做准备 #第二部,做文本云图 require(wordcloud) dd = tail(d,150)       #取数据框的最后150行数据 op = par(bg = "lightyellow")      #背景为亮黄色 #rainbowLevels = rainbow((dd$freq)/(max(dd$freq) - 10))      #不知道什么意义,删除后图形无太大变化 wordcloud(dd$word, dd$freq, col = rainbow(length(d$freq))) par(op) ===================================================================================== 成图

02

R语言之中文分词:实例

#调入分词的库 library("rJava") library("Rwordseg") #调入绘制词云的库 library("RColorBrewer") library("wordcloud")     #读入数据(特别注意,read.csv竟然可以读取txt的文本) myfile<-read.csv(file.choose(),header=FALSE) #预处理,这步可以将读入的文本转换为可以分词的字符,没有这步不能分词 myfile.res <- myfile[myfile!=" "]     #分词,并将分词结果转换为向量 myfile.words <- unlist(lapply(X = myfile.res,FUN = segmentCN)) #剔除URL等各种不需要的字符,还需要删除什么特殊的字符可以依样画葫芦在下面增加gsub的语句 myfile.words <- gsub(pattern="http:[a-zA-Z\\/\\.0-9]+","",myfile.words) myfile.words <- gsub("\n","",myfile.words) myfile.words <- gsub(" ","",myfile.words) #去掉停用词 data_stw=read.table(file=file.choose(),colClasses="character") stopwords_CN=c(NULL) for(i in 1:dim(data_stw)[1]){ stopwords_CN=c(stopwords_CN,data_stw[i,1]) } for(j in 1:length(stopwords_CN)){ myfile.words <- subset(myfile.words,myfile.words!=stopwords_CN[j]) } #过滤掉1个字的词 myfile.words <- subset(myfile.words, nchar(as.character(myfile.words))>1) #统计词频 myfile.freq <- table(unlist(myfile.words)) myfile.freq <- rev(sort(myfile.freq)) #myfile.freq <- data.frame(word=names(myfile.freq),freq=myfile.freq); #按词频过滤词,过滤掉只出现过一次的词,这里可以根据需要调整过滤的词频数 #特别提示:此处注意myfile.freq$Freq大小写 myfile.freq2=subset(myfile.freq, myfile.freq$Freq>=10)     #绘制词云 #设置一个颜色系: mycolors <- brewer.pal(8,"Dark2") #设置字体 windowsFonts(myFont=windowsFont("微软雅黑")) #画图 wordcloud(myfile.freq2$word,myfile.freq2$Freq,min.freq=10,max.words=Inf,random.order=FALSE, random.color=FALSE,colors=mycolors,family="myFont")

02
领券