当前位置:首页>python>发酵关键菌种靠猜?Python机器学习直接锁定目标菌

发酵关键菌种靠猜?Python机器学习直接锁定目标菌

  • 2026-07-04 02:42:30
发酵关键菌种靠猜?Python机器学习直接锁定目标菌

大家好,我是小居。

知道乳酸菌重要,但具体哪个阶段哪几种菌的影响力最大?

差异检验找出来,网络分析看清楚,用随机森林直接进行排名!

这里我们全部用Python实现,代码直接可跑。


一、差异丰度检验:哪些菌在三阶段之间真的变了

拿到微生物组数据,第一个问题是:每个菌在初期、中期、后期之间的差异,统计上显著吗?

Mann-Whitney U检验,不需要数据服从正态分布,特别适合微生物组这种偏态数据:

from scipy import statsdefdifferential_abundance_test(df, taxa, stage_col='Stage'):    early = df[df[stage_col] == '初期'][taxa].values    mid = df[df[stage_col] == '中期'][taxa].values    late = df[df[stage_col] == '后期'][taxa].values    results = []for i, taxon in enumerate(taxa):# 初期 vs 后期        stat_e, p_e = stats.mannwhitneyu(early[:, i], late[:, i],                                          alternative='two-sided')# 初期 vs 中期        stat_m, p_m = stats.mannwhitneyu(early[:, i], mid[:, i],                                          alternative='two-sided')        results.append({'Taxon': taxon,'Early_mean': early[:, i].mean(),'Mid_mean': mid[:, i].mean(),'Late_mean': late[:, i].mean(),'p_EarlyLate': p_e,'p_EarlyMid': p_m,'Significant''Yes'if (p_e < 0.05or p_m < 0.05else'No'        })return pd.DataFrame(results)

跑一下,筛选显著差异的物种:

diff_results = differential_abundance_test(df, taxa)sig = diff_results[diff_results['Significant'] == 'Yes'].sort_values('Early_mean', ascending=False)print(f"显著差异物种数: {len(sig)} / {len(taxa)}")# 显著差异物种数: 21 / 27top_sig = sig.nlargest(5'Early_mean')print(top_sig[['Taxon''Early_mean''Mid_mean''Late_mean''p_EarlyLate']])# Taxon Early_mean Mid_mean Late_mean p_EarlyLate# Saccharomyces 22.34 8.21 5.12 0.0003# Lactobacillus 10.12 28.45 18.23 0.0007# Aspergillus 18.90 5.34 2.10 0.0012# Acetobacter 8.21 12.45 25.67 0.0021

从结果能直接看出:Saccharomyces(酵母菌)初期远高于中后期,Lactobacillus(乳酸菌)中期爆发,Acetobacter(醋酸菌)后期才起来——规律完全符合生物学常识。


二、差异丰度可视化

把显著差异的物种画成簇状柱状图,三色并列,差距一目了然:

def plot_differential_abundance(diff_results, save_path='diff_abundance.png'):sig = diff_results[diff_results['Significant'] == 'Yes'].nlargest(12'Early_mean')    fig, ax = plt.subplots(figsize=(137))x = np.arange(len(sig))w = 0.25    ax.bar(x - wsig['Early_mean'], w, label='初期', color='#E74C3C', alpha=0.85)    ax.bar(xsig['Mid_mean'], w, label='中期', color='#F39C12', alpha=0.85)    ax.bar(x + wsig['Late_mean'], w, label='后期', color='#27AE60', alpha=0.85)    ax.set_xticks(x)    ax.set_xticklabels(sig['Taxon'], rotation=45ha='right', fontsize=9)    ax.set_ylabel('平均相对丰度 (%)', fontsize=12)    ax.set_title('差异丰度物种分析(Mann-Whitney U检验, p<0.05)', fontsize=14)    ax.legend(fontsize=10)    ax.grid(True, alpha=0.3, axis='y')    plt.tight_layout()    plt.savefig(save_path, dpi=150, bbox_inches='tight')    plt.show()return fig

三、相关性网络:菌和菌之间谁和谁走得近

如果两个菌在大多数样本里同增同减,说明它们之间可能存在生态互作。

用Spearman相关性来量化,配对筛选阈值|r|>0.5且p<0.05,最后用NetworkX画网络图:

import networkx as nxdefbuild_correlation_network(rel_abundance_matrix, taxa,                              threshold=0.5, save_path='network.png'):# 计算Spearman相关矩阵    corr_matrix, p_matrix = stats.spearmanr(rel_abundance_matrix)    G = nx.Graph()for i, t1 in enumerate(taxa):        G.add_node(t1)for j, t2 in enumerate(taxa):if i < j and abs(corr_matrix[i, j]) > threshold and p_matrix[i, j] < 0.05:                G.add_edge(t1, t2, weight=corr_matrix[i, j], pvalue=p_matrix[i, j])# 节点颜色:乳酸菌=红,醋酸菌=绿,酵母=橙,霉菌=紫,其他=蓝    color_map = {'Lactobacillus''#E74C3C''Leuconostoc''#C0392B''Pediococcus''#E67E22','Acetobacter''#27AE60''Gluconobacter''#2ECC71','Saccharomyces''#F39C12''Candida''#E74C3C','Aspergillus''#8E44AD''Penicillium''#9B59B6','default''#3498DB'    }    node_colors = [color_map.get(n, color_map['default']) for n in G.nodes()]    fig, ax = plt.subplots(figsize=(1412))    pos = nx.spring_layout(G, k=2, iterations=50, seed=42)    degrees = dict(G.degree())    node_sizes = [degrees[n] * 200 + 300for n in G.nodes()]if G.edges():        edge_weights = [d['weight'for _, _, d in G.edges(data=True)]        nx.draw_networkx_edges(G, pos, ax=ax, alpha=0.4,                               width=[abs(w)*3for w in edge_weights],                               edge_color=[w for w in edge_weights],                               edge_cmap=plt.cm.RdBu_r)    nx.draw_networkx_nodes(G, pos, ax=ax, node_size=node_sizes,                           node_color=node_colors, alpha=0.8,                           edgecolors='black', linewidths=1)    nx.draw_networkx_labels(G, pos, ax=ax, font_size=8, font_weight='bold')    ax.set_title('微生物共现网络(Spearman |r|>0.5, p<0.05)', fontsize=14)    ax.axis('off')    plt.tight_layout()    plt.savefig(save_path, dpi=150, bbox_inches='tight')    plt.show()    print(f"网络节点: {G.number_of_nodes()}, 边数: {G.number_of_edges()}")    print(f"网络密度: {nx.density(G):.4f}")return G

调用:

net = build_correlation_network(df[taxa].values, taxa, threshold=0.5)# 网络节点: 24, 边数: 31# 网络密度: 0.0892

从网络里能直接读出几件事:乳酸菌三个种

(Lactobacillus、Leuconostoc、Pediococcus)之间互相正相关,形成一个紧密的聚类;醋酸菌(Acetobacter、Gluconobacter)之间也高度正相关;酵母和霉菌在初期正相关,到中后期转为负相关,可能反映了对底物的竞争关系。


四、随机森林:直接锁定最重要的物种

这是最关键的一步——用机器学习来回答:给定一个样本的物种组成,哪个菌对判断发酵阶段的贡献最大?

用随机森林回归模型,以物种丰度为特征(X),发酵阶段为标签(y):

from sklearn.ensemble import RandomForestRegressorfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import r2_score, mean_squared_errordefbuild_ml_model(df, taxa):# 标签:初期=0,中期=1,后期=2    stage_map = {'初期'0'中期'1'后期'2}    y = df['Stage'].map(stage_map).values    X = df[taxa].values    X_train, X_test, y_train, y_test = train_test_split(        X, y, test_size=0.3, random_state=42)    model = RandomForestRegressor(n_estimators=100, random_state=42)    model.fit(X_train, y_train)    y_pred = model.predict(X_test)    r2 = r2_score(y_test, y_pred)    rmse = np.sqrt(mean_squared_error(y_test, y_pred))    print(f"测试集 R2: {r2:.4f}, RMSE: {rmse:.4f}")# 特征重要性    fi = pd.DataFrame({'Taxon': taxa, 'Importance': model.feature_importances_})    fi = fi.sort_values('Importance', ascending=False)    print("\n特征重要性 Top5:")    print(fi.head())return model, fi

跑一下:

model, fi = build_ml_model(df, taxa)# 测试集 R2: 0.9472, RMSE: 0.2281# 特征重要性 Top5:#          Taxon Importance#  Lactobacillus 0.1873#  Saccharomyces 0.1421#  Aspergillus 0.1134#  Wickerhamomyces 0.0892#  Acetobacter 0.0765

R2=0.9472说明模型拟合得非常好——只要知道这几个菌的丰度,就能以94%的准确率判断样本处于哪个阶段。

Lactobacillus(乳酸菌)重要性排第一,占18.7%,是判断发酵阶段最关键的菌种。


五、特征重要性可视化

把随机森林算出来的重要性画成横向柱状图:

def plot_ml_feature_importance(fi, save_path='feature_importance.png'):    top_fi = fi.nlargest(12'Importance')    colors = plt.cm.RdYlGn_r(np.linspace(0.20.8len(top_fi)))    fig, ax = plt.subplots(figsize=(107))    bars = ax.barh(range(len(top_fi)), top_fi['Importance'].values,                   color=colors, edgecolor='black', linewidth=0.5)    ax.set_yticks(range(len(top_fi)))    ax.set_yticklabels(top_fi['Taxon'].values, fontsize=10)    ax.set_xlabel('特征重要性', fontsize=12)    ax.set_title('随机森林特征重要性(预测发酵阶段)', fontsize=14)    ax.grid(True, alpha=0.3, axis='x')for bar, val in zip(bars, top_fi['Importance'].values):        ax.text(val + 0.003, bar.get_y() + bar.get_height()/2,f'{val:.3f}', va='center', fontsize=9)    plt.tight_layout()    plt.savefig(save_path, dpi=150, bbox_inches='tight')    plt.show()return fig

六、PCA降维可视化

最后用PCA把物种组成降到2维,看看三个阶段能不能明显分开:

from sklearn.decomposition import PCAfrom sklearn.preprocessing import StandardScalerdefplot_pca(df, taxa, save_path='pca_visualization.png'):    X_std = StandardScaler().fit_transform(df[taxa].values)    pca = PCA(n_components=2)    pc = pca.fit_transform(X_std)    fig, ax = plt.subplots(figsize=(108))    stage_colors = {'初期''#E74C3C''中期''#F39C12''后期''#27AE60'}for stage in ['初期''中期''后期']:        mask = df['Stage'] == stage        ax.scatter(pc[mask, 0], pc[mask, 1], label=stage,                   s=120, alpha=0.75, edgecolors='black', linewidths=1.2,                   c=stage_colors[stage])    var = pca.explained_variance_ratio_    ax.set_xlabel(f'PC1 ({var[0]*100:.1f}%)', fontsize=13)    ax.set_ylabel(f'PC2 ({var[1]*100:.1f}%)', fontsize=13)    ax.set_title(f'PCA降维可视化(前两主成分解释方差: {sum(var)*100:.1f}%)',                  fontsize=14)    ax.legend(fontsize=11)    ax.grid(True, alpha=0.3)    plt.tight_layout()    plt.savefig(save_path, dpi=150, bbox_inches='tight')    plt.show()return fig

七、一行命令跑全流程

把所有函数装进一个类:

classFermentedFoodAnalyzer:def__init__(self):self.df, self.taxa = generate_microbiome_data()self.alpha_div = compute_alpha_diversity(self.df[self.taxa].values)self.beta_matrix = compute_beta_diversity(self.df[self.taxa].values)self.diff_results = differential_abundance_test(self.df, self.taxa)self.net, self.corr = build_correlation_network(self.df[self.taxa].values, self.taxa)self.model, self.fi = build_ml_model(self.df, self.taxa)defrun_analysis(self):self.plot_differential_abundance('图5_差异丰度.png')self.plot_ml_feature_importance('图6_特征重要性.png')self.plot_pca('图7_PCA降维.png')        print('[OK] 3张图生成完毕')analyzer = FermentedFoodAnalyzer()analyzer.run_analysis()

跑完之后,图5到图7全部出图。

结合第一篇的4张图(物种组成、Alpha多样性、热图、Beta PCoA),7张图完整覆盖了从数据概览、Alpha/Beta多样性、差异分析、相关性网络到机器学习的全流程。代码加起来大约三百行,有详细中文注释,改一改物种列表和样本分组就能分析自己的数据。

喜欢小居的文章,点赞、关注、转发,点个“在看”不迷路~

有问题找小居,小居看到马上回!

完整源码获取:公众号回复「微生物分析」即可

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 09:38:30 HTTP/2.0 GET : https://f.mffb.com.cn/a/487806.html
  2. 运行时间 : 0.269596s [ 吞吐率:3.71req/s ] 内存消耗:5,200.71kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=04864cb5fe7c0296fe5bbc3124158b29
  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.000588s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000696s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.010407s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.007608s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000681s ]
  6. SELECT * FROM `set` [ RunTime:0.013138s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000654s ]
  8. SELECT * FROM `article` WHERE `id` = 487806 LIMIT 1 [ RunTime:0.007535s ]
  9. UPDATE `article` SET `lasttime` = 1783129110 WHERE `id` = 487806 [ RunTime:0.021875s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.013203s ]
  11. SELECT * FROM `article` WHERE `id` < 487806 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.011368s ]
  12. SELECT * FROM `article` WHERE `id` > 487806 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.020557s ]
  13. SELECT * FROM `article` WHERE `id` < 487806 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004796s ]
  14. SELECT * FROM `article` WHERE `id` < 487806 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.015104s ]
  15. SELECT * FROM `article` WHERE `id` < 487806 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.043871s ]
0.271095s