当前位置:首页>python>Nature 期刊图复现 | Python 实现肿瘤演化时间轴带置信区间的区间条形图

Nature 期刊图复现 | Python 实现肿瘤演化时间轴带置信区间的区间条形图

  • 2026-06-15 05:15:31
Nature 期刊图复现 | Python 实现肿瘤演化时间轴带置信区间的区间条形图

来源论文

论文地址:

https://www.nature.com/articles/s41586-023-06333-9

论文题目:

Evolutionary histories of breast cancer and related clones

原图释(英):c, Estimated timing of der(1;16) acquisition and MRCA emergence (only for premenopausal cases) is shown with the 95% CI. †, the first and second 1q gain timing were estimated because the order of der(1;16) and another 1q gain could not be determined in TMA125.
原图释(中):c,der(1;16)获得和MRCA出现(仅针对绝经前病例)均以95%置信区间显示。†,第一和第二位1q增益时序的估计是因为der(1;16)以及TMA125中无法确定另一个1q增益。

复现图片

图表含义

1. 肿瘤克隆演化生命轴 (Clonal Evolution Timeline):图中每一行代表一个独立的肿瘤克隆系(如 KU539、TMA125 等)。灰色的基底条横贯整个时间线,它象征着该克隆从诞生到患者手术切除的完整生命周期。通过观察条形的长短,我们可以直观判断肿瘤在患者体内的演化时长。

2. 遗传事件的时间窗口 (Genomic Event Intervals):条形图上叠加的彩色色块(粉色、绿色、蓝色)是图表的核心数据,分别代表了三次关键的基因组演变过程:

  • der(1;16) 畸变(粉色):揭示了染色体畸变发生的预测时间区间。

  • 基因组加倍(绿色):代表肿瘤细胞发生倍增的关键时刻。

  • 共同祖先出现(蓝色):标记了最近共同祖先(MRCA)的发生窗口。

这些色块的宽度即为 95% 置信区间(CI),反映了生物学推断的精确程度;色块内部的深色圆点则是统计学上的最优估计时间点。

3. 事件重叠与逻辑过渡 (Overlap and Transition):当不同生物学事件(如畸变与倍增)在时间上存在重叠时,通过精巧的色彩混合(如绿色与粉色混合生成的过渡色),直观展示了演化路径的复杂性和相关性。这种圆头设计的平滑过渡,避免了硬切口造成的视觉误解,精准呈现了肿瘤细胞在进化过程中的动态叠加状态。

4. 临床参照与分组特征 (Clinical Milestones and Grouping):

  1. 手术时间点 (Surgery):每一行生命条最右侧的紫色圆点,是绝对的“时间终点”,为所有遗传突变提供了一个共同的 clinical benchmark(临床参照点)。

  2. 绝经状态分组 (Menopausal Status):图表左侧的垂直色条(红色代表绝经前,黄色代表绝经后),将原本纯粹的分子数据与临床特征(患者年龄/内分泌状态)连接起来。这帮助研究者直观对比:在绝经状态发生变化前后,肿瘤演化的速度与顺序是否存在显著差异。

配色方案

color_palettes = {    1: { # 方案 1:原经典学术期刊配色 (默认激活)        'c_pre''#E24A48''c_post''#EBB02D''c_bg_bar''#ECEFF1',        'c_der''#F48FB1''c_der_dark''#D81B60',        'c_mrca''#b5c5e2''c_mrca_dark''#1565C0',        'c_double''#A5D6A7''c_double_dark''#1B5E20',        'c_grey_overlap''#B0BEC5''c_mix_overlap''#8FBC8F',        'c_mrca_overlap''#7f9cb5''c_surgery''#7B1FA2'    },    2: { # 方案 2:Nature 风格经典高级红蓝        'c_pre''#E64B35''c_post''#4DBBD5''c_bg_bar''#F5F5F5',        'c_der''#F39B7F''c_der_dark''#BC3C29',        'c_mrca''#8491B4''c_mrca_dark''#3C5488',        'c_double''#91D1C2''c_double_dark''#00A087',        'c_grey_overlap''#CCCCCC''c_mix_overlap''#A2BFC1',        'c_mrca_overlap''#8E9AA6''c_surgery''#7E6148'    },    3: { # 方案 3:Science 风格高对比冷调        'c_pre''#111E6C''c_post''#D96B27''c_bg_bar''#EEF2F7',        'c_der''#A0C4DF''c_der_dark''#00468B',        'c_mrca''#B19FFB''c_mrca_dark''#42150A',        'c_double''#97D7BF''c_double_dark''#0099B4',        'c_grey_overlap''#D1D5DB''c_mix_overlap''#9EBDB2',        'c_mrca_overlap''#A79EC4''c_surgery''#925E9F'    },    4: { # 方案 4:Cell 研学热烈风格        'c_pre''#A73030''c_post''#4A6984''c_bg_bar''#F7F7F7',        'c_der''#F4A261''c_der_dark''#E76F51',        'c_mrca''#A8DADC''c_mrca_dark''#1D3557',        'c_double''#CCD5AE''c_double_dark''#606C38',        'c_grey_overlap''#E5E5E5''c_mix_overlap''#BAC09A',        'c_mrca_overlap''#A2B5C1''c_surgery''#E63946'    },    5: { # 方案 5:The Lancet 柳叶刀沉稳高雅        'c_pre''#006666''c_post''#C0392B''c_bg_bar''#F2F4F4',        'c_der''#A3E4D7''c_der_dark''#16A085',        'c_mrca''#AED6F1''c_mrca_dark''#2980B9',        'c_double''#F9E79F''c_double_dark''#D4AC0D',        'c_grey_overlap''#BDC3C7''c_mix_overlap''#CFD8A8',        'c_mrca_overlap''#A5C1DC''c_surgery''#8E44AD'    },    6: { # 方案 6:JAMA 现代医学低饱和度        'c_pre''#34495E''c_post''#E67E22''c_bg_bar''#F8F9F9',        'c_der''#ABB2B9''c_der_dark''#2C3E50',        'c_mrca''#A9DFBF''c_mrca_dark''#27AE60',        'c_double''#F9E79F''c_double_dark''#D35400',        'c_grey_overlap''#E5E7E9''c_mix_overlap''#D5CB9E',        'c_mrca_overlap''#99C7A5''c_surgery''#9B59B6'    },    7: { # 方案 7:复古莫兰迪高级灰色调        'c_pre''#C2B280''c_post''#848482''c_bg_bar''#EAEAEA',        'c_der''#E6A8A8''c_der_dark''#B36B6B',        'c_mrca''#A3C1AD''c_mrca_dark''#6B8E23',        'c_double''#D2B48C''c_double_dark''#8B5A2B',        'c_grey_overlap''#D8D8D8''c_mix_overlap''#BBA795',        'c_mrca_overlap''#98B1A2''c_surgery''#704242'    },    8: { # 方案 8:柔和马卡龙少女粉蓝绿        'c_pre''#FFB7B2''c_post''#BFFCC6''c_bg_bar''#FAFAFA',        'c_der''#FFD1DC''c_der_dark''#FF69B4',        'c_mrca''#E8A7A1''c_mrca_dark''#CD5C5C',        'c_double''#C7CEEA''c_double_dark''#6A5ACD',        'c_grey_overlap''#EDEDED''c_mix_overlap''#DDCEE2',        'c_mrca_overlap''#D6B9C5''c_surgery''#FFDAC1'    },    9: { # 方案 9:经典灰度印刷风格 (黑白论文首选)        'c_pre''#333333''c_post''#777777''c_bg_bar''#F0F0F0',        'c_der''#CCCCCC''c_der_dark''#111111',        'c_mrca''#DDDDDD''c_mrca_dark''#444444',        'c_double''#B5B5B5''c_double_dark''#222222',        'c_grey_overlap''#E0E0E0''c_mix_overlap''#C0C0C0',        'c_mrca_overlap''#CECECE''c_surgery''#000000'    },    10: { # 方案 10:海洋深邃蓝青色系        'c_pre''#0077B6''c_post''#00B4D8''c_bg_bar''#F0F8FF',        'c_der''#90E0EF''c_der_dark''#03045E',        'c_mrca''#CAF0F8''c_mrca_dark''#0096C7',        'c_double''#A8E6CF''c_double_dark''#20B2AA',        'c_grey_overlap''#E6F2F7''c_mix_overlap''#99D5CC',        'c_mrca_overlap''#AFDBCF''c_surgery''#48CAE4'    },    11: { # 方案 11:森林大地自然绿棕        'c_pre''#2C5E3B''c_post''#8B5A2B''c_bg_bar''#F4F7F4',        'c_der''#A2CD5A''c_der_dark''#556B2F',        'c_mrca''#EEDC82''c_mrca_dark''#8B7500',        'c_double''#CDA077''c_double_dark''#5C4033',        'c_grey_overlap''#E3ECE3''c_mix_overlap''#B2B36B',        'c_mrca_overlap''#D6CC7B''c_surgery''#8FBC8F'    },    12: { # 方案 12:暖阳秋日橙黄暖调        'c_pre''#D35400''c_post''#F1C40F''c_bg_bar''#FEF9E7',        'c_der''#EDBB99''c_der_dark''#BA4A00',        'c_mrca''#F9E79F''c_mrca_dark''#B7950B',        'c_double''#F5B041''c_double_dark''#A04000',        'c_grey_overlap''#F9EBEA''c_mix_overlap''#F0B46A',        'c_mrca_overlap''#F6CA87''c_surgery''#C0392B'    },    13: { # 方案 13:霓虹极光高亮配色        'c_pre''#FF007F''c_post''#00FFFF''c_bg_bar''#FAFAFA',        'c_der''#FF7F00''c_der_dark''#FF3300',        'c_mrca''#7F00FF''c_mrca_dark''#4B0082',        'c_double''#00FF00''c_double_dark''#006600',        'c_grey_overlap''#EEEEEE''c_mix_overlap''#66CC44',        'c_mrca_overlap''#3F6680''c_surgery''#FFD700'    },    14: { # 方案 14:商务经典沉稳深红深蓝        'c_pre''#1B365D''c_post''#8B2635''c_bg_bar''#F0F4F8',        'c_der''#708090''c_der_dark''#2F4F4F',        'c_mrca''#9FA8DA''c_mrca_dark''#3F51B5',        'c_double''#9CCC65''c_double_dark''#558B2F',        'c_grey_overlap''#E2E8F0''c_mix_overlap''#88A260',        'c_mrca_overlap''#99A5C7''c_surgery''#D32F2F'    },    15: { # 方案 15:冰川北欧高冷纯净        'c_pre''#4A6B82''c_post''#A3B8CC''c_bg_bar''#FAFCFD',        'c_der''#DCE5EC''c_der_dark''#2C3E50',        'c_mrca''#C4D4E1''c_mrca_dark''#1F3A52',        'c_double''#B0C4DE''c_double_dark''#4682B4',        'c_grey_overlap''#EBF1F5''c_mix_overlap''#BFCEDB',        'c_mrca_overlap''#B9C9D7''c_surgery''#778899'    },    16: { # 方案 16:夕阳余晖温和粉紫        'c_pre''#9B59B6''c_post''#F39C12''c_bg_bar''#FBEEE6',        'c_der''#FADBD8''c_der_dark''#E74C3C',        'c_mrca''#EBDEF0''c_mrca_dark''#8E44AD',        'c_double''#FDEBD0''c_double_dark''#D35400',        'c_grey_overlap''#FDEDEC''c_mix_overlap''#FCB6D0',        'c_mrca_overlap''#ECC8E0''c_surgery''#34495E'    },    17: { # 方案 17:科技前沿明亮钛灰        'c_pre''#212121''c_post''#00E5FF''c_bg_bar''#FAFAFA',        'c_der''#B0BEC5''c_der_dark''#37474F',        'c_mrca''#80DEEA''c_mrca_dark''#00838F',        'c_double''#B2FF59''c_double_dark''#4E9D24',        'c_grey_overlap''#ECEFF1''c_mix_overlap''#B1DE71',        'c_mrca_overlap''#97CED9''c_surgery''#FF5252'    },    18: { # 方案 18:波尔多古典红酒香槟        'c_pre''#581845''c_post''#FFC300''c_bg_bar''#F9F2F5',        'c_der''#C70039''c_der_dark''#900C3F',        'c_mrca''#FF5733''c_mrca_dark''#C70039',        'c_double''#FF8D1A''c_double_dark''#A34E00',        'c_grey_overlap''#EAECEE''c_mix_overlap''#E04E27',        'c_mrca_overlap''#FA6D35''c_surgery''#2C3E50'    },    19: { # 方案 19:英伦庄园下午茶灰绿复古        'c_pre''#556B2F''c_post''#CD853F''c_bg_bar''#FDFBF7',        'c_der''#BC8F8F''c_der_dark''#8B4513',        'c_mrca''#8FBC8F''c_mrca_dark''#2E8B57',        'c_double''#BDB76B''c_double_dark''#6B8E23',        'c_grey_overlap''#F0E68C''c_mix_overlap''#A2A56C',        'c_mrca_overlap''#8E9C73''c_surgery''#483D8B'    },    20: { # 方案 20:浆果森林高保真浆果红        'c_pre''#6B114D''c_post''#11536B''c_bg_bar''#FBF6F9',        'c_der''#D982B5''c_der_dark''#A62466',        'c_mrca''#72B0C4''c_mrca_dark''#0B637F',        'c_double''#94D2BD''c_double_dark''#1A7A66',        'c_grey_overlap''#EAF2F4''c_mix_overlap''#83BCA2',        'c_mrca_overlap''#81C1C4''c_surgery''#E76F51'    }}

完整代码

import osimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 1. 自动创建 图表 文件夹output_dir = "图表"os.makedirs(output_dir, exist_ok=True)# 2. 自动读取同目录下的 data.xlsxexcel_file = "data.xlsx"if not os.path.exists(excel_file):    raise FileNotFoundError(f"未在当前目录下找到 {excel_file},请确保该 Excel 文件存在。")df = pd.read_excel(excel_file)# 3. 匹配 Excel 列名映射mapping = {    'clone''clone',    'age''age',    'menopausal_status''menopausal_status',    'est_der''estimates for der(1;16) timing',    'low_der''lower CI for der(1;16) timing',    'upp_der''upper CI for der(1;16) acquision',    'est_doub''estimates for der(1;16) doubling timing',    'low_doub''lower CI for der(1;16) doubling timing',    'upp_doub''upper CI for der(1;16) doubling timing',    'est_mrca''estimates for MRCA timing',    'low_mrca''lower CI for MRCA timing',    'upp_mrca''upper CI for MRCA timing'}# 4. 格式化克隆系名称def format_clone_name(row):    name = str(row[mapping['clone']]).strip()    if 'KU539_a' in name or 'KU539a' in name or 'clone α' in name: return 'KU539\n(clone α)'    if 'KU539_b' in name or 'KU539b' in name or 'clone β' in name: return 'KU539\n(clone β)'    if 'KU779_a' in name or 'KU779a' in name or 'clone α' in name: return 'KU779\n(clone α)'    if 'KU779_b' in name or 'KU779b' in name or 'clone β' in name: return 'KU779\n(clone β)'    if 'TMA125' in name: return 'TMA125 †'    return namedf['display_name'] = df.apply(format_clone_name, axis=1)# 为了让左侧刻度最下方是 TMA149,最上方是 KU957,将 DataFrame 颠倒df = df.iloc[::-1].reset_index(drop=True)# 5. 20种学术与商务图表配色方案字典color_palettes = {    1: { # 方案 1:原经典学术期刊配色 (默认激活)        'c_pre''#E24A48''c_post''#EBB02D''c_bg_bar''#ECEFF1',        'c_der''#F48FB1''c_der_dark''#D81B60',        'c_mrca''#b5c5e2''c_mrca_dark''#1565C0',        'c_double''#A5D6A7''c_double_dark''#1B5E20',        'c_grey_overlap''#B0BEC5''c_mix_overlap''#8FBC8F',        'c_mrca_overlap''#7f9cb5''c_surgery''#7B1FA2'    }}# 提取选择的配色方案 (此处默认应用方案 1)current_palette_id = 1palette = color_palettes[current_palette_id]c_pre = palette['c_pre']c_post = palette['c_post']c_bg_bar = palette['c_bg_bar']c_der = palette['c_der']c_der_dark = palette['c_der_dark']c_mrca = palette['c_mrca']c_mrca_dark = palette['c_mrca_dark']c_double = palette['c_double']c_double_dark = palette['c_double_dark']c_grey_overlap = palette['c_grey_overlap']c_mix_overlap = palette['c_mix_overlap']c_mrca_overlap = palette['c_mrca_overlap']c_surgery = palette['c_surgery']# 6. 初始化画布fig, ax = plt.subplots(figsize=(8.07.0), dpi=300)# 控制绘图视窗,放宽上方给指示标签留出独立区域ax.set_xlim(-680)ax.set_ylim(-0.8len(df) + 0.8)ax.set_xlabel('Age (years)', fontsize=10, fontname='DejaVu Sans', labelpad=5)ax.set_xticks(range(09010))ax.set_xticklabels(range(09010))ax.tick_params(axis='x', labelsize=9)# 隐藏上方和右侧边框ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)# 左侧轴和下方轴彻底断开不交叉ax.spines['left'].set_visible(True)ax.spines['left'].set_bounds(0len(df) - 1)ax.spines['left'].set_linewidth(0.8)ax.spines['bottom'].set_visible(True)ax.spines['bottom'].set_bounds(080)ax.spines['bottom'].set_linewidth(0.8)# 设置刻度样式朝外突出ax.tick_params(axis='both', which='both', direction='out', length=4, width=0.8, colors='black')# 7. 核心绘图逻辑y_positions = np.arange(len(df))lw_val = 9  # 恢复标准好看的生命条粗细for i, row in df.iterrows():    y = i    max_age = row[mapping['age']]    clone_id = str(row[mapping['clone']])    # A. 基础背景生命条    ax.plot([0, max_age], [y, y], color=c_bg_bar, linewidth=lw_val, solid_capstyle='round', zorder=1)    # 提取各区间真实数据    est_der = row[mapping['est_der']]    low_der = row[mapping['low_der']]    upp_der = row[mapping['upp_der']]    est_doub = row[mapping['est_doub']]    low_doub = row[mapping['low_doub']]    upp_doub = row[mapping['upp_doub']]    est_mrca = row[mapping['est_mrca']]    low_mrca = row[mapping['low_mrca']]    upp_mrca = row[mapping['upp_mrca']]    # B. der(1;16) 区间(恢复完美的原生 round 圆头)    if not pd.isna(est_der):        ax.plot([low_der, upp_der], [y, y], color=c_der, linewidth=lw_val, solid_capstyle='round', zorder=2)        ax.scatter(est_der, y, color=c_der_dark, s=30, zorder=5)    # C. 特定的灰色重叠过渡段    if 'KU957' in clone_id or 'TMA125' in clone_id:        if not pd.isna(est_doub):            ax.plot([est_der, est_doub], [y, y], color=c_grey_overlap, linewidth=lw_val, solid_capstyle='butt',                    zorder=2.5)    # D. doubling 倍增区间(恢复完美的原生 round 圆头)    if not pd.isna(est_doub):        ax.plot([low_doub, upp_doub], [y, y], color=c_double, linewidth=lw_val, solid_capstyle='round', zorder=3)        ax.scatter(est_doub, y, color=c_double_dark, s=30, zorder=5)    # 重叠区域(含边缘圆头部分)采用完美匹配的覆盖混色    if not pd.isna(low_der) and not pd.isna(low_doub):        overlap_start = max(low_der, low_doub)        overlap_end = min(upp_der, upp_doub)        if overlap_start < overlap_end:            # 使用 round 让重叠部分的端点圆头也自然过渡变色,不会变形            ax.plot([overlap_start, overlap_end], [y, y], color=c_mix_overlap, linewidth=lw_val, solid_capstyle='round',                    zorder=3.6)    # E. MRCA occurrence 区间    if not pd.isna(est_mrca):        ax.plot([low_mrca, upp_mrca], [y, y], color=c_mrca, linewidth=lw_val, solid_capstyle='round', zorder=4)        ax.scatter(est_mrca, y, color=c_mrca_dark, s=30, zorder=5)    # MRCA 与 doubling 发生区域重叠时的完美圆头混色    if not pd.isna(low_mrca) and not pd.isna(low_doub):        overlap_start = max(low_mrca, low_doub)        overlap_end = min(upp_mrca, upp_doub)        if overlap_start < overlap_end:            ax.plot([overlap_start, overlap_end], [y, y], color=c_mrca_overlap, linewidth=lw_val,                    solid_capstyle='round', zorder=4.6)    # F. Surgery 紫色圆点    ax.scatter(max_age, y, color=c_surgery, s=30, zorder=6)# 8. 绝经状态垂直双色条status_col = df[mapping['menopausal_status']].str.lower()pre_indices = df[status_col.str.contains('pre', na=False)].indexpost_indices = df[status_col.str.contains('post', na=False)].indexif len(pre_indices) > 0:    ax.fill_betweenx([pre_indices.min() - 0.35, pre_indices.max() + 0.35], -4.5, -3.5, color=c_pre, zorder=10)if len(post_indices) > 0:    ax.fill_betweenx([post_indices.min() - 0.35, post_indices.max() + 0.35], -4.5, -3.5, color=c_post, zorder=10)ax.set_yticks(y_positions)ax.set_yticklabels(df['display_name'], fontsize=9, fontname='DejaVu Sans', va='center')ax.tick_params(axis='y', pad=6)# 9. 重要修复:文字右对齐与左对齐 顶部上方区域绘制y_top_line1 = len(df) + 0.35y_top_line2 = len(df) - 0.15# 通过减小这两个值,将整个标签区域整体向左移动(例如分别改到 0.5 和 4.0)x_text_right_align = 0.5   # 左边两行单词的右对齐基准线(值越小越靠左)x_block_left_align = 4.0   # 右边指示方块的左对齐基准线(值越小越靠左)# 1. 上方行:Menopausal (右对齐)  ->  ■ Premenopausal (左对齐)ax.text(x_text_right_align, y_top_line1, 'Menopausal', fontsize=9, ha='right', va='top', fontname='DejaVu Sans', weight='bold')ax.text(x_block_left_align, y_top_line1, '■ Premenopausal', color=c_pre, fontsize=9, ha='left', va='top', weight='bold')# 2. 下方行:status (右对齐)  ->  ■ Postmenopausal (左对齐)ax.text(x_text_right_align, y_top_line2, 'status', fontsize=9, ha='right', va='top', fontname='DejaVu Sans', weight='bold')ax.text(x_block_left_align, y_top_line2, '■ Postmenopausal', color=c_post, fontsize=9, ha='left', va='top', weight='bold')# 10. 底部的双列图例(保持左移对齐 + 优雅下移)y_leg1 = -2.4y_leg2 = -3.2ax.plot([-4.52.5], [y_leg1, y_leg1], color=c_der, linewidth=9, solid_capstyle='round', clip_on=False)ax.scatter(-1.0, y_leg1, color=c_der_dark, s=30, zorder=10, clip_on=False)ax.text(4.5, y_leg1, 'der(1;16)', fontsize=9, va='center', ha='left')ax.plot([-4.52.5], [y_leg2, y_leg2], color=c_mrca, linewidth=9, solid_capstyle='round', clip_on=False)ax.scatter(-1.0, y_leg2, color=c_mrca_dark, s=30, zorder=10, clip_on=False)ax.text(4.5, y_leg2, 'MRCA occurence', fontsize=9, va='center', ha='left')ax.plot([3341], [y_leg1, y_leg1], color=c_double, linewidth=9, solid_capstyle='round', clip_on=False)ax.scatter(37, y_leg1, color=c_double_dark, s=30, zorder=10, clip_on=False)ax.text(43, y_leg1, 'der(1;16) doubling', fontsize=9, va='center', ha='left')ax.scatter(37, y_leg2, color=c_surgery, s=30, zorder=10, clip_on=False)ax.text(43, y_leg2, 'Surgery', fontsize=9, va='center', ha='left')# 11. 将序号 'c' 置于最左上角fig.text(0.070.93'c', fontsize=18, weight='bold', fontname='DejaVu Sans', va='top', ha='left')# 12. 保存图片plt.subplots_adjust(bottom=0.25, left=0.16, right=0.95, top=0.90)output_path = os.path.join(output_dir, "timeline_plot.png")plt.savefig(output_path, bbox_inches='tight')plt.close()print(f"Plot saved successfully to {output_path}")

数据获取

评论+私信获取

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-02 23:30:13 HTTP/2.0 GET : https://f.mffb.com.cn/a/497713.html
  2. 运行时间 : 0.390742s [ 吞吐率:2.56req/s ] 内存消耗:4,904.59kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ed162840c1a90dc98ff1477178571f30
  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.000394s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000748s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.004980s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.006387s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000619s ]
  6. SELECT * FROM `set` [ RunTime:0.008071s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000659s ]
  8. SELECT * FROM `article` WHERE `id` = 497713 LIMIT 1 [ RunTime:0.024562s ]
  9. UPDATE `article` SET `lasttime` = 1783006213 WHERE `id` = 497713 [ RunTime:0.000637s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000368s ]
  11. SELECT * FROM `article` WHERE `id` < 497713 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001886s ]
  12. SELECT * FROM `article` WHERE `id` > 497713 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.025730s ]
  13. SELECT * FROM `article` WHERE `id` < 497713 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.075361s ]
  14. SELECT * FROM `article` WHERE `id` < 497713 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.096141s ]
  15. SELECT * FROM `article` WHERE `id` < 497713 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.062420s ]
0.394581s