1、runGenie3 太慢!!!
这个博主( SCENIC单细胞转录因子分析 - 简书 (jianshu.com))用的不知道什么数据,调用了10个线程,还跑了7天!!!看到另一个博主4.精简版流程,用reticulate包调用了py的grnboost2包,据说可以大大加快此步骤。(视频2:07秒开始讲)
用reticulate包,可以调用基于python的arboreto模块
这里首先要安装reticulate包,安装了之后再用函数 reticulate::py_install('arboreto') ,出现报错
+ "C:/Users/Administrator.DESKTOP-NN3NDT8/.conda/envs/r-reticulate/condabin/conda.bat" "install" "--yes" "--prefix" "C:/Users/Administrator.DESKTOP-NN3NDT8/.conda/envs/r-reticulate" "-c" "conda-forge" "arboreto"
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.
PackagesNotFoundError: The following packages are not available from current channels:
- arboreto
Current channels:
- https://conda.anaconda.org/conda-forge/win-64
- https://conda.anaconda.org/conda-forge/noarch
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/win-64
- https://repo.anaconda.com/pkgs/r/noarch
- https://repo.anaconda.com/pkgs/msys2/win-64
- https://repo.anaconda.com/pkgs/msys2/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
Error: one or more Python packages failed to install [error code 1]
以上报错解决了,在这里转录因子预测-5reticulate调用python的arboreto包安装及报错
用下面的代码开始跑,6.27开始跑的
############################# reticulate调用arboreto ##################################
#devtools::install_github("rstudio/reticulate")
library(reticulate)
#install_miniconda()
#reticulate::py_install('arboreto')
# 进入python
repl_python()
quit
#查看是否安装python
py_available()
#查看python路径
Sys.which("python")
#查看conda版本
conda_version()
### 这个命令work
#conda_install(envname = 'SCENIC', 'arboreto', forge = TRUE, pip = T)
#查看模块是否安装成功
py_module_available("arboreto")
###########################################################################################################################
mymethod = 'runGenie3'
if(mymethod = 'runGenie3'){runGenie3(exprMat_filtered_log,scenicOptions)
}else{
arb.algo = import("arboreto.algo")
tf_names = getDbTfs(scenicOptions)
tf_names = Seurat::CaseMatch(
search = tf_names,
match = row.names(exprMat_filtered))
adj = arb.algo$grnboost2(
as.data.frame(t(as.matrix(exprMat_filtered))),
tf_names = tf_names, seed=123
)
colnames(adj) = c("TF","Target","Weight") # 修改列名
saveRDS(adj, file= getIntName(scenicOptions,
'genie311') )
}
2023.6.29更新,上面的用reticulate调用arboreto,前天开始跑的,现在还在跑。 没什么CPU占用率。昨天下午同时用runGenie3开始跑。今天早上来看到出现报错,看了下应该是内存不够。nParts = 4 这个参数的意思是,把数据分成多少份跑。我的电脑128G内存,昨天跑的时候以为没啥问题,就设置了4。 今天设置成20,早上10点开始跑。我的数据是 7320个基因,18578个细胞,16核全跑。按照别人的数据和时间估算,我这个运算量应该一天差不多可以跑完。
> runGenie3(exprMat_filtered_log, scenicOptions, nParts = 4)
Using 785 TFs as potential regulators...
Running GENIE3 part 1
Running GENIE3 part 2
Error in { : task 54 failed - "无法分配大小为111.3 Mb的矢量"
2、后续的分析方向,得到的结果如何分组去比较
2.1【单细胞测序21】scenic转录因子应用全解析和代码讲解
时间表
8:45秒 分析内容解读
最终可以用到的就是0.2这个表格。
分析思路:1、单个regulon筛选。如果有目标的regulon,就在上面的热图里面找目标regulon。如果没有特定的regulon,就看哪些regulon在特定的分组里面高表达,后续就把这些regulon筛选出来,看下游的靶基因,或者是针对这些regulon进行后续的验证。
可以做功能和pathway富集
分析思路:2、regulon共调节探索。
代码 29:50开始
2.2单细胞SCENIC分析原理和流程介绍
1、降维聚类发现新亚群(cell type/state由转录调控网络的差异决定)
2、case-control之间的regulons差异分析
3、寻找cell type/state特异性的regulon/TF
转自: