折腾完fastqc,trimmomatic和salmon后,开始折腾转录组差异化表达矩阵了。最主流最码农向的当然是直接用R跑DEseq2了,但是其实这两年又推出不少的在线分析工具。例如:
iDEP
BioJupies
networkanalyst
IRIS
对于模式植物或者人来说可能哪个都差不多,但是对于小众的植物可能支持最好的还是iDEP吧。毕竟在一开始你就能选择你需要的物种。
使用也很简单,首先设置好你的experiment design:
Study_design | p53_mock_1 | p53_mock_2 | p53_mock_3 | p53_IR_1 | p53_IR_2 | p53_IR_3 |
---|---|---|---|---|---|---|
p53 | wt | wt | wt | wt | wt | wt |
Treatment | mock | mock | mock | IR | IR | IR |
然后用另一个txt填入你需要的数据:
Data Matrix | p53_mock_1 | p53_mock_2 | p53_mock_3 | p53_IR_1 | p53_IR_2 | p53_IR_3 |
---|---|---|---|---|---|---|
ENSMUSG00000028995 | 3210 | 2553 | 2096 | 1054 | 663 | 1012 |
... | ... | ... | ... | ... | ... | ... |
ENSMUSG00000093392 | 7 | 25 | 0 | 10 | 0 | 22 |
因为我使用的salmon默认有read counts data所以直接用第一个就好了。这个数据有助于后续筛选高表达基因基因ID。筛选过程你可以用excel读取txt或者csv做列操作,当然也能使用TBtools。如果你想学可以考虑这个66.66你买不了吃亏买不了上当。如果你对data format有兴趣可以读一下这个。
剩下的操作在线平台都会帮你完成了……
最后附上iDEP的流程图……
故事到这里就该结束了,但其实还有更多值得折腾的东西。比如我们可以在自己的笔记本上跑iDEP!而这也是我接下来做的事情……经过两天的折腾,走了不少弯路(因为官方提供的教程已经过时了!)。现在把安装的过程分享在网络上。结果并不完美,原因最后会说。
1.把你的R和Rstudio版本升级到最新
- 运行这个脚本
# dplyr complains this required libraries: libudunits2-dev, libmariadb-client-lgpl-dev
# install.packages("plotly", repos="http://cran.rstudio.com/", dependencies=TRUE)
# sometimes need to remove all installed packages: https://www.r-bloggers.com/how-to-remove-all-user-installed-packages-in-r/
list.of.packages <- c(
"shiny", "shinyAce", "shinyBS", "plotly",
"RSQLite", "gplots",
"ggplot2", "dplyr", #"tidyverse",
"plotly",
"e1071", "reshape2", "DT",
"data.table", "Rcpp","WGCNA","flashClust","statmod","biclust","igraph","Rtsne",
"visNetwork", "BiocManager"
)
list.of.bio.packages <- c(
"limma", "DESeq2", "edgeR", "gage", "PGSEA", "fgsea", "ReactomePA", "pathview", "PREDA",
"impute", "runibic","QUBIC","rhdf5", "STRINGdb",
"PREDAsampledata", "sfsmisc", "lokern", "multtest", "hgu133plus2.db",
"org.Ag.eg.db","org.At.tair.db","org.Bt.eg.db","org.Ce.eg.db","org.Cf.eg.db",
"org.Dm.eg.db","org.EcK12.eg.db","org.EcSakai.eg.db","org.Gg.eg.db",
"org.Hs.eg.db","org.Mm.eg.db","org.Mmu.eg.db","org.Pf.plasmo.db",
"org.Pt.eg.db","org.Rn.eg.db","org.Sc.sgd.db","org.Ss.eg.db","org.Xl.eg.db"
)
if(1) { # remove all old packages, to solve problem caused by Bioconductor upgrade
# create a list of all installed packages
ip <- as.data.frame(installed.packages())
# head(ip)
# if you use MRO, make sure that no packages in this library will be removed
ip <- subset(ip, !grepl("MRO", ip$LibPath))
# we don't want to remove base or recommended packages either\
ip <- ip[!(ip[,"Priority"] %in% c("base", "recommended")),]
# determine the library where the packages are installed
path.lib <- unique(ip$LibPath)
# create a vector with all the names of the packages you want to remove
pkgs.to.remove <- ip[,1]
# head(pkgs.to.remove)
# remove the packages
sapply(pkgs.to.remove, remove.packages, lib = path.lib)
}
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
new.bio.packages <- list.of.bio.packages[!(list.of.bio.packages %in% installed.packages()[,"Package"])]
notInstalledPackageCount = length(new.packages) + length(new.bio.packages)
#Install Require packages
while(notInstalledPackageCount != 0){
if(length(new.packages)) install.packages(new.packages, repos="http://cran.rstudio.com/", dependencies=TRUE, quiet=TRUE)
if(length(new.bio.packages)){
BiocManager::install(new.bio.packages, ask = FALSE, dependencies=TRUE, quiet=TRUE)
}
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
new.bio.packages <- list.of.bio.packages[!(list.of.bio.packages %in% installed.packages()[,"Package"])]
if( notInstalledPackageCount == length(new.packages) + length(new.bio.packages) )
{
#no new package installed.
break
}
else {
notInstalledPackageCount = length(new.packages) + length(new.bio.packages)
}
}
#Load Packages
suc = unlist ( lapply(list.of.packages, require, character.only = TRUE) )
if(sum(suc) < length(list.of.packages) )
cat ("\n\nWarnning!!!!!! These R packages cannot be loaded:", list.of.packages[!suc] )
suc = unlist ( lapply(list.of.bio.packages, require, character.only = TRUE) )
if(sum(suc) < length(list.of.bio.packages) )
cat ("\n\nWarnning!!!!!! These Bioconductor packages cannot be loaded:", list.of.bio.packages[!suc] )
如果遇到问题,你可以根据提示手动重新安装一下你需要的bio包,具体方法为:
BiocManager::install("bio包的名字")
- 你需要找到iDEP的github,下载所有文件。
- 继续下载这几个文件pathwayDB, Motif, geneInfo, data_go, convertIDs
- 对于自己电脑上使用iDEP需要看shinyapps的位置。例如如果你的文件位置为:
\idep\shinyapps
你需要把之前下载的pathwayDB,Motif,geneInfo,data_go,convertIDs文件解压缩,并放在如下地址:
\idep\data\data92\data_go
\idep\data\data92\geneInfo
\idep\data\data92\motif
\idep\data\data92\pathwayDB
\idep\data\data92\convertIDs.db - 找到\idep\shinyapps\idep\STRING10_species.csv
把该文件复制到\idep\data\data92\data_go下 - 此时如果你运行\idep\shinyapps\idep82下的
server.R
ui.R
然后在rstudio里执行run app就可以了
整个过程并不完美因为最新的版本已经更新到了v0.92,支持了更多的物种也因此STRING10_species.csv升级为STRING11_species.csv,其他数据库也有了相应的更新。
但是作者并没有上传新的数据库文件,所以离线版本肯定没办法用最新的了。
如果你想折腾可以把
\idep\data\ data92
\idep\data\data92\data_go\STRING10_species.csv
改为
\idep\data\ data100
\idep\data\data100\data_go\STRING11_species.csv
就可以运行最新的v0.92版本了,但是结果并不完美。例如小麦转录组在online能正常运行,但是在离线版上提示找不到gene ID……查看数据库发现小麦使用的还是最早的TGAC数据……这个工程量就大了,只能等作者释出最新的数据库了。