当前位置:首页>python>R+Python组合拳可能是分析SCENIC最好的方式

R+Python组合拳可能是分析SCENIC最好的方式

  • 2026-04-16 15:50:47
R+Python组合拳可能是分析SCENIC最好的方式

一、写在前面

在利用SCENIC进行转录因子共表达网络预测时有一步非常头疼的runGenie3,这一步基于随机森林算法推断基因调控网络(GRN),输出结果包含TF-基因对及其调控强度的矩阵。这一步不仅耗费很多内存,并且还不支持在R中进行并行计算,通常1W个细胞的计算时间就能达到一周以上,甚至经常运行到一半R崩溃了,显然不能满足大家日常生产的需求。但在python中的grnboost2可以利用分布式并行计算K可以大大缩短这一过程的计算时间:比R版本快几十倍| Pyscenic单细胞转录因子预测,毛病就是PySCENIC会略去很多SCENIC的中间输出结果与可视化,这显然是不能被接受的 。在SCENIC单细胞转录因子预测学习手册的教程中我们也提到过加速方法:,可以直接在R中利用reticulate包调用pythonarboreto.algo来完成grnboost2的计算过程。当然,如果实在觉得学习困难,也别难为自己,欢迎找我们代劳~联系客服微信[Biomamba_zhushou]留下您的需求。

# 基因共表达网络计算mymethod <-'grnboost2'# 'grnboost2'library(reticulate)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 =rownames(exprMat_filtered))  adj = arb.algo$grnboost2(as.data.frame(t(as.matrix(exprMat_filtered))),tf_names=tf_names, seed=2025L  )colnames(adj) =c('TF','Target','weight')saveRDS(adj,file=getIntName(scenicOptions,'genie3ll'))}

问题是,上面的这个R代码框经常会遇到arboreto加载失败,要么找不到:

要么依赖库出问题

reticulate::use_python('/home/biomamba/.local/share/r-miniconda/envs/r-reticulate/bin/python') >   arb.algo = import('arboreto.algo') Error in py_module_import(module, convert = convert) :    ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/biomamba/.local/share/r-miniconda/envs/r-reticulate/lib/python3.8/site-packages/pandas/_libs/window/aggregations.cpython-38-x86_64-linux-gnu.so) Run `reticulate::py_last_error()` for details.

    或者RPython数据不兼容的问题:

所以,最稳妥的办法是R和Python各忙各的,即生成exprMat_filtered后导出到本地,在纯粹的Python中完成。可视化集锦如下:

二、R+Python组合拳

如果以下内容有理解困难的地方,可先行学习:SCENIC单细胞转录因子 学习手册

本教程基于Linux环境中的Rstudio演示,计算资源不足的同学可参考:足够支持你完成硕博生涯的生信环境独享服务器,生信分析不求人
5090终于上架啦
访问链接:https://biomamba.xiyoucloud.net/
欢迎联系客服微信[Biomamba_zhushou]获取帮助

1加载R包

if (!requireNamespace("BiocManager"quietly =TRUE))install.packages("BiocManager")BiocManager::version()
## [1] '3.20'
#当你的bioconductor版本大于4.0时if(!require(SCENIC))BiocManager::install(c("AUCell""RcisTarget"),ask = F,update = F);BiocManager::install(c("GENIE3"),ask = F,update = F)#这三个包显然是必须安装的### 可选的包:#AUCell依赖包if(!require(SCENIC))BiocManager::install(c("zoo""mixtools""rbokeh"),ask = F,update = F) ###t-SNEs计算依赖包:if(!require(SCENIC))BiocManager::install(c("DT""NMF""ComplexHeatmap""R2HTML""Rtsne"),ask = F,update = F)# #这几个包用于并行计算,很遗憾,Windows下并不支持,所以做大量数据计算时最好转战linux:if(!require(SCENIC))BiocManager::install(c("doMC""doRNG"),ask = F,update = F)#可视化输出# To export/visualize in http://scope.aertslab.orgif (!requireNamespace("devtools"quietly =TRUE))install.packages("devtools")if(!require(SCopeLoomR))devtools::install_github("aertslab/SCopeLoomR"build_vignettes =TRUE)#SCopeLoomR用于获取测试数据if (!requireNamespace("arrow"quietly =TRUE)) BiocManager::install('arrow')#这个包不装上在runSCENIC_2_createRegulons那一步会报错,提示'dbs'不存在library(SCENIC)#这就安装好了,试试能不能正常加载if(!require(SCENIC))devtools::install_github("aertslab/SCENIC"packageVersion("SCENIC")#这里我安装的是1.3.1
## [1] '1.3.1'
library(SCENIC)library(RcisTarget)library(AUCell)library(Seurat)

2、R中的预处理

# 初始化SCNIE 设置data(list="motifAnnotations_mgi_v9"package="RcisTarget")motifAnnotations_mgi <- motifAnnotations_mgi_v9scenicOptions <-initializeScenic(org="mgi",#mouse填'mgi', human填'hgnc',fly填'dmel') dbDir="./data/mouse.mm9/"nCores=6)#这里可以设置并行计算
## Motif databases selected: ##   mm9-500bp-upstream-7species.mc9nr.feather ##   mm9-tss-centered-10kb-7species.mc9nr.feather
## Using the column 'features' as feature index for the ranking database.## Using the column 'features' as feature index for the ranking database.
library(Seurat)# 读取测试对象scRNA <-readRDS('./data/pbmcrenamed.rds')  # 查看测试对象降维图:DimPlot(scRNA) 
# 获取表达矩阵:exprMat <-GetAssayData(scRNA ,'RNA','count')# 转换为矩阵对象:exprMat <-as.matrix(exprMat)# 初步过率基因:genesKept <-geneFiltering(exprMat, scenicOptions)
## Maximum value in the expression matrix: 26404
## Ratio of detected vs non-detected: 0.12
## Number of counts (in the dataset units) per gene:
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. ##      0.0      3.0     48.0    407.6    214.0 187278.0
## Number of cells in which each gene is detected:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. ##    0.00    3.00   39.00   99.42  143.00  897.00
## ## Number of genes left after applying the following filters (sequential):
##  11369   genes with counts per gene > 27
##  11338   genes detected in more than 9 cells
## Using the column 'features' as feature index for the ranking database.
##  10021   genes available in RcisTarget database
## Gene list saved in int/1.1_genesKept.Rds
exprMat_filtered <- exprMat[genesKept, ]# 计算spearman相关性:  runCorrelation(exprMat_filtered, scenicOptions)# 取log:exprMat_filtered_log <-log2(exprMat_filtered+1# 获取TF的名称:tf_names =getDbTfs(scenicOptions)tf_names = Seurat::CaseMatch(search = tf_names,match =rownames(exprMat_filtered))# 导出表达矩阵(需要转置,因为Python中通常是行为样本,列为基因)便于后续Python读取:write.csv(t(exprMat_filtered), file ="./data/expr_matrix_transposed.csv"row.names =TRUE)# 导出TF名称列表write.csv(data.frame(tf_names = tf_names), file ="./data/tf_names.csv"row.names =FALSE)

3、Python中完成grnboost

### 以下命令在Python中执行 ###import pandas as pdfrom arboreto.algo import grnboost2# 读取R导出的数据expr_matrix = pd.read_csv("data/expr_matrix_transposed.csv", index_col=0)tf_names = pd.read_csv("data/tf_names.csv")["tf_names"].tolist()# 确保TF名称在表达矩阵的基因中存在available_genes = expr_matrix.columns.tolist()tf_names = [tf for tf in tf_names if tf in available_genes]# 运行GRNBoost2adj = grnboost2(    expr_matrix,    tf_names=tf_names,    seed=2023,    verbose=True)# 重命名列以匹配R中的预期格式adj.columns = ['TF''Target''weight']# 保存结果(R可以读取的CSV格式)adj.to_csv("data/grnboost2_results.csv", index=False)

以下是运行提示信息:

>>>### 以下命令在Python中执行 ###>>>import pandas as pd>>>from arboreto.algo import grnboost2>>>>>># 读取R导出的数据>>> expr_matrix = pd.read_csv("data/expr_matrix_transposed.csv", index_col=0)>>> tf_names = pd.read_csv("data/tf_names.csv")["tf_names"].tolist()>>>>>># 确保TF名称在表达矩阵的基因中存在>>> available_genes = expr_matrix.columns.tolist()>>> tf_names = [tf for tf in tf_names if tf in available_genes]>>>>>># 运行GRNBoost2>>> adj = grnboost2(...     expr_matrix,...     tf_names=tf_names,...     seed=2023,...     verbose=True... )preparing dask clientparsing inputcreating dask graph19 partitionscomputing dask graphshutting down client and local clusterfinished>>>>>># 重命名列以匹配R中的预期格式>>> adj.columns = ['TF''Target''weight']>>>>>># 保存结果(R可以读取的CSV格式)>>> adj.to_csv("data/grnboost2_results.csv", index=False)

4、R语言完成SCENIC的经典4步骤

回到R语言中:

# 读取Python输出的GRN结果adj <-read.csv("data/grnboost2_results.csv")# 转换为数据框并设置列名(确保与之前的格式一致)adj <-as.data.frame(adj)colnames(adj) <-c('TF''Target''weight')# 保存为RDS文件,供后续分析使用saveRDS(adj, file =getIntName(scenicOptions, 'genie3ll'))# 验证结果cat("成功读取GRNBoost2结果,共"nrow(adj), "条调控关系\n")# 运行经典的SCENIC step1-4exprMat_log <-log2(exprMat+1)scenicOptions@settings$dbs <- scenicOptions@settings$dbs["10kb"# Toy run settingsscenicOptions <-runSCENIC_1_coexNetwork2modules(scenicOptions)scenicOptions <-runSCENIC_2_createRegulons(scenicOptions, coexMethod=c("top5perTarget")) # Toy run settingsscenicOptions <-runSCENIC_3_scoreCells(scenicOptions, exprMat_log)scenicOptions <-runSCENIC_4_aucell_binarize(scenicOptions)#将AUCell矩阵二元化# 保存镜像save.image('data/biomamba_scenic.rdata')
# 这时我们就拥有与纯在R语言中执行SCENIC一样的工程文件:tree ./int
## [01;34m./int[00m## ├── 1.1_genesKept.Rds## ├── 1.2_corrMat.Rds## ├── 1.4_GENIE3_linkList.Rds## ├── 1.5_weightPlot.pdf## ├── 1.6_tfModules_asDF.Rds## ├── 2.1_tfModules_forMotifEnrichmet.Rds## ├── 2.2_motifs_AUC.Rds## ├── 2.3_motifEnrichment.Rds## ├── 2.4_motifEnrichment_selfMotifs_wGenes.Rds## ├── 2.5_regulonTargetsInfo.Rds## ├── 2.6_regulons_asGeneSet.Rds## ├── 2.6_regulons_asIncidMat.Rds## ├── 3.1_regulons_forAUCell.Rds## ├── 3.2_aucellGenesStats.pdf## ├── 3.3_aucellRankings.Rds## ├── 3.4_regulonAUC.Rds## ├── 3.5_AUCellThresholds_Info.tsv## ├── 3.5_AUCellThresholds.Rds## ├── 4.1_binaryRegulonActivity.Rds## ├── 4.2_binaryRegulonActivity_nonDupl.Rds## ├── 4.3_regulonSelections.Rds## ├── 4.4_binaryRegulonOrder.Rds## └── tSNE_AUC_50pcs_30perpl.Rds## ## 0 directories, 23 files
# 读取AUCell Score矩阵:auc_score <-getAUC(readRDS("int/3.4_regulonAUC.Rds"))# 添加到注释信息中:scRNA <-AddMetaData(scRNA,metadata =t(auc_score))# 小提琴挑几个转录因子瞅瞅:VlnPlot(scRNA,rownames(auc_score)[1:10],stack = T,cols =c(ggsci::pal_aaas()(8),ggsci::pal_bmj()(8))        )

更多可视化可见:SCENIC单细胞转录因子 学习手册SCENIC单细胞转录因子 下游探索SCENIC转录因子调控网络图

三、测试文件与演示环境

一切不给测试文件和分析环境版本的教程都是耍流氓,本推送的代码和测试文件可以在以下链接中下载:

通过网盘分享的文件:R与Python组合分析SCENIC流程

链接: https://pan.baidu.com/s/1DQdzV7QzuwJ89-Cs7xsnmQ?pwd=tfdx

提取码: tfdx 

R语言演示环境:
sessionInfo()
## R version 4.4.2 (2024-10-31)## Platform: x86_64-pc-linux-gnu## Running under: Ubuntu 20.04.4 LTS## ## Matrix products: default## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 ## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3;  LAPACK version 3.9.0## ## locale:##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              ##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    ##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   ##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 ##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            ## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       ## ## time zone: Etc/UTC## tzcode source: system (glibc)## ## attached base packages:## [1] stats     graphics  grDevices utils     datasets  methods   base     ## ## other attached packages:## [1] Seurat_5.2.1       SeuratObject_5.0.2 sp_2.2-0           AUCell_1.28.0     ## [5] RcisTarget_1.26.0  SCopeLoomR_0.13.0  SCENIC_1.3.1      ## ## loaded via a namespace (and not attached):##   [1] RcppAnnoy_0.0.22            splines_4.4.2              ##   [3] later_1.4.1                 bitops_1.0-9               ##   [5] tibble_3.2.1                R.oo_1.27.0                ##   [7] polyclip_1.10-7             graph_1.84.1               ##   [9] XML_3.99-0.18               fastDummies_1.7.5          ##  [11] lifecycle_1.0.4             globals_0.16.3             ##  [13] lattice_0.22-6              hdf5r_1.3.12               ##  [15] MASS_7.3-64                 magrittr_2.0.3             ##  [17] plotly_4.10.4               sass_0.4.9                 ##  [19] rmarkdown_2.29              jquerylib_0.1.4            ##  [21] yaml_2.3.10                 remotes_2.5.0              ##  [23] httpuv_1.6.15               sctransform_0.4.1          ##  [25] spam_2.11-1                 spatstat.sparse_3.1-0      ##  [27] sessioninfo_1.2.2           pkgbuild_1.4.6             ##  [29] reticulate_1.43.0.9001      cowplot_1.1.3              ##  [31] pbapply_1.7-2               DBI_1.2.3                  ##  [33] RColorBrewer_1.1-3          abind_1.4-8                ##  [35] pkgload_1.4.0               zlibbioc_1.52.0            ##  [37] Rtsne_0.17                  GenomicRanges_1.58.0       ##  [39] purrr_1.0.2                 R.utils_2.12.3             ##  [41] BiocGenerics_0.52.0         RCurl_1.98-1.16            ##  [43] GenomeInfoDbData_1.2.13     IRanges_2.40.1             ##  [45] S4Vectors_0.44.0            ggrepel_0.9.6              ##  [47] irlba_2.3.5.1               spatstat.utils_3.1-4       ##  [49] listenv_0.9.1               openintro_2.5.0            ##  [51] goftest_1.2-3               airports_0.1.0             ##  [53] RSpectra_0.16-2             spatstat.random_3.4-1      ##  [55] annotate_1.84.0             fitdistrplus_1.2-2         ##  [57] parallelly_1.42.0           DelayedMatrixStats_1.28.1  ##  [59] codetools_0.2-20            DelayedArray_0.32.0        ##  [61] tidyselect_1.2.1            UCSC.utils_1.2.0           ##  [63] farver_2.1.2                spatstat.explore_3.4-3     ##  [65] matrixStats_1.5.0           stats4_4.4.2               ##  [67] jsonlite_1.8.9              ellipsis_0.3.2             ##  [69] progressr_0.15.1            ggridges_0.5.6             ##  [71] survival_3.8-3              tools_4.4.2                ##  [73] ica_1.0-3                   Rcpp_1.0.14                ##  [75] glue_1.8.0                  gridExtra_2.3              ##  [77] SparseArray_1.6.0           xfun_0.50                  ##  [79] MatrixGenerics_1.18.1       usethis_3.1.0              ##  [81] GenomeInfoDb_1.42.1         dplyr_1.1.4                ##  [83] withr_3.0.2                 BiocManager_1.30.25        ##  [85] fastmap_1.2.0               digest_0.6.37              ##  [87] R6_2.5.1                    mime_0.12                  ##  [89] colorspace_2.1-1            scattermore_1.2            ##  [91] tensor_1.5                  spatstat.data_3.1-6        ##  [93] RSQLite_2.3.9               R.methodsS3_1.8.2          ##  [95] ggsci_3.2.0                 tidyr_1.3.1                ##  [97] generics_0.1.3              data.table_1.16.4          ##  [99] usdata_0.3.1                httr_1.4.7                 ## [101] htmlwidgets_1.6.4           S4Arrays_1.6.0             ## [103] uwot_0.2.2                  pkgconfig_2.0.3            ## [105] gtable_0.3.6                blob_1.2.4                 ## [107] lmtest_0.9-40               XVector_0.46.0             ## [109] htmltools_0.5.8.1           profvis_0.4.0              ## [111] dotCall64_1.2               GSEABase_1.64.0            ## [113] scales_1.3.0                Biobase_2.66.0             ## [115] png_0.1-8                   spatstat.univar_3.1-3      ## [117] knitr_1.49                  rstudioapi_0.17.1          ## [119] reshape2_1.4.4              tzdb_0.4.0                 ## [121] nlme_3.1-168                cachem_1.1.0               ## [123] zoo_1.8-12                  stringr_1.5.1              ## [125] KernSmooth_2.23-26          parallel_4.4.2             ## [127] miniUI_0.1.1.1              arrow_18.1.0.1             ## [129] AnnotationDbi_1.68.0        pillar_1.10.1              ## [131] grid_4.4.2                  vctrs_0.6.5                ## [133] RANN_2.6.2                  urlchecker_1.0.1           ## [135] promises_1.3.2              xtable_1.8-4               ## [137] cluster_2.1.8               evaluate_1.0.3             ## [139] readr_2.1.5                 cli_3.6.3                  ## [141] compiler_4.4.2              rlang_1.1.5                ## [143] crayon_1.5.3                future.apply_1.11.3        ## [145] labeling_0.4.3              plyr_1.8.9                 ## [147] fs_1.6.5                    stringi_1.8.4              ## [149] deldir_2.0-4                viridisLite_0.4.2          ## [151] assertthat_0.2.1            munsell_0.5.1              ## [153] Biostrings_2.74.1           lazyeval_0.2.2             ## [155] spatstat.geom_3.4-1         devtools_2.4.5             ## [157] Matrix_1.7-2                RcppHNSW_0.6.0             ## [159] hms_1.1.3                   patchwork_1.3.0            ## [161] sparseMatrixStats_1.18.0    bit64_4.6.0-1              ## [163] future_1.34.0               ggplot2_3.5.1              ## [165] KEGGREST_1.46.0             shiny_1.10.0               ## [167] SummarizedExperiment_1.36.0 ROCR_1.0-11                ## [169] igraph_2.1.4                memoise_2.0.1              ## [171] bslib_0.9.0                 bit_4.5.0.1                ## [173] cherryblossom_0.1.0
Python环境:

如何联系我们

留一个领取资料开箱即用的单细胞分析镜像微信号[Biomamba_zhushou],方便各位随时交流。同时我们也构建了交流群矩阵欢迎大家入群讨论。
大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
没有检索,就没有发言权

已有生信基地联系方式的同学无需重复添加

您点的每个赞和在看,我都认真当成了喜欢

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-16 19:11:06 HTTP/2.0 GET : https://f.mffb.com.cn/a/485676.html
  2. 运行时间 : 0.087323s [ 吞吐率:11.45req/s ] 内存消耗:4,616.02kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=91bbcf823e816da96424b5807105464d
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000542s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000846s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000334s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000553s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000718s ]
  6. SELECT * FROM `set` [ RunTime:0.000254s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000777s ]
  8. SELECT * FROM `article` WHERE `id` = 485676 LIMIT 1 [ RunTime:0.002940s ]
  9. UPDATE `article` SET `lasttime` = 1776337866 WHERE `id` = 485676 [ RunTime:0.000683s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000252s ]
  11. SELECT * FROM `article` WHERE `id` < 485676 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001198s ]
  12. SELECT * FROM `article` WHERE `id` > 485676 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003589s ]
  13. SELECT * FROM `article` WHERE `id` < 485676 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005083s ]
  14. SELECT * FROM `article` WHERE `id` < 485676 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002210s ]
  15. SELECT * FROM `article` WHERE `id` < 485676 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000775s ]
0.088778s