From 2972182599b7e447519f2e93ce4d553fdeb8c83e Mon Sep 17 00:00:00 2001 From: i-shm Date: Sat, 15 Aug 2026 10:46:29 +0000 Subject: deploy: a3b07951ee400d3df1709d984d393b0a4af17a2f --- .../index.html" | 63 ++- .../index.html" | 68 +-- search.xml | 553 ++++++++++----------- 3 files changed, 337 insertions(+), 347 deletions(-) diff --git "a/2026/08/15/\344\275\223\350\264\250\346\214\207\346\225\260\344\270\216\350\241\200\350\204\202\345\274\202\345\270\270\347\232\204\345\271\264\351\276\204\344\276\235\350\265\226\346\200\247\345\205\263\350\201\224/index.html" "b/2026/08/15/\344\275\223\350\264\250\346\214\207\346\225\260\344\270\216\350\241\200\350\204\202\345\274\202\345\270\270\347\232\204\345\271\264\351\276\204\344\276\235\350\265\226\346\200\247\345\205\263\350\201\224/index.html" index 14994e4a..eb3d52f7 100644 --- "a/2026/08/15/\344\275\223\350\264\250\346\214\207\346\225\260\344\270\216\350\241\200\350\204\202\345\274\202\345\270\270\347\232\204\345\271\264\351\276\204\344\276\235\350\265\226\346\200\247\345\205\263\350\201\224/index.html" +++ "b/2026/08/15/\344\275\223\350\264\250\346\214\207\346\225\260\344\270\216\350\241\200\350\204\202\345\274\202\345\270\270\347\232\204\345\271\264\351\276\204\344\276\235\350\265\226\346\200\247\345\205\263\350\201\224/index.html" @@ -298,18 +298,17 @@ mjx-container[display="true"] + br {
-

"胖的人血脂容易高"大概是体检报告时代最深入人心的常识之一。这句话在人群层面确实成立:BMI 与血脂异常之间存在明确的剂量-反应关系,且因果性获得了孟德尔随机化研究的支持[1]。但常识往往在加上"年龄"这个维度后变得复杂起来——同样的 BMI,在不同年龄段对血脂的影响并不相同,甚至可能反转。

-

患病率:一条倒 U 形的年龄轨迹

-

先看年龄本身。中国成人血脂异常患病率随年龄递增,但进入老年期后趋势反转:

+

"胖的人血脂容易高"大概是体检报告时代最深入人心的常识之一。这句话在人群层面确实成立:BMI 与血脂异常之间存在明确的剂量-反应关系,因果性也获得了孟德尔随机化研究的支持[1]。但常识加上"年龄"这个维度后就变得复杂——同样的 BMI,在不同年龄段对血脂的影响并不相同,甚至可能反转。

+

患病率:一条倒 U 形的年龄轨迹

+

先看年龄本身。中国成人血脂异常患病率随年龄递增,进入老年期后趋势反转:

-

两条独立数据链拼出同一形态:成年期线性攀升、60 岁前后达峰、高龄回落。

+

两条独立数据链拼出同一形态:成年期线性攀升、60 岁前后达峰、高龄回落。两个口径的老年组数值差异(32.9% vs 39.9%)源于地区差异与纳入研究年代,方向一致。全国 2018 年高胆固醇血症年龄标化患病率较 2015 年近乎翻倍(4.9% → 8.2%),"高 TC"型是近期增长最快的亚型,且集中于中老年[4]。

中国成人血脂异常患病率的年龄轨迹

-

两个口径的老年组数值差异(32.9% vs 39.9%)源于地区差异与纳入研究年代,方向一致。全国 2018 年高胆固醇血症年龄标化患病率较 2015 年近乎翻倍(4.9% → 8.2%),"高 TC"型是近期增长最快的亚型,且集中于中老年[4]。

-

关键反转:BMI 对血脂的因果效应随龄衰减

-

Fall 2015 的孟德尔随机化研究用 32 个 BMI 相关遗传位点做工具变量,按 <55 岁与 ≥55 岁分层,给出了一个反直觉的结果[5]:

+

关键反转:BMI 对血脂的因果效应随龄衰减

+

Fall 2015 的孟德尔随机化研究用 32 个 BMI 相关遗传位点做工具变量,按 <55 岁与 ≥55 岁分层,给出一个出人意料的结果[5]:

@@ -346,37 +345,33 @@ mjx-container[display="true"] + br {
-

效应量单位:每 1 SD BMI(约 4.8 kg/m²)对应的血脂 SD 变化。

+

效应量单位:每 1 SD BMI(约 4.8 kg/m²)对应的血脂 SD 变化。

BMI→血脂组分的孟德尔随机化因果效应:<55 岁 vs ≥55 岁

-

解读要点:

+

解读要点:

    -
  1. 胆固醇组分(LDL-C、总胆固醇)的 BMI 因果效应在 ≥55 岁后消失甚至反转——年龄越大,同样程度的体重增加带来的胆固醇恶化越弱;
  2. -
  3. TG 与 HDL-C 的效应保留但减弱——"肥胖驱动的高 TG + 低 HDL"表型不随龄消失,这是老年期体重管理仍然重要的依据;
  4. -
  5. ≥55 岁总胆固醇因果效应为负(−0.19)不代表"老年肥胖保护胆固醇",更可能是他汀使用、选择偏倚与反向因果的残留混杂[5:1]。
  6. +
  7. 胆固醇组分(LDL-C、总胆固醇)的 BMI 因果效应在 ≥55 岁后消失甚至反转——年龄越大,同样程度的体重增加带来的胆固醇恶化越弱;
  8. +
  9. TG 与 HDL-C 的效应保留但减弱——"肥胖驱动的高 TG + 低 HDL"表型不随龄消失,这是老年期体重管理仍然重要的依据;
  10. +
  11. ≥55 岁总胆固醇因果效应为负(−0.19)不代表"老年肥胖保护胆固醇",更可能是他汀使用、选择偏倚与反向因果的残留混杂[5:1]。
-

观察性分析与之一致:<55 岁 LDL-C 每 SD BMI +0.16、TC +0.12,≥55 岁分别降至 +0.02 与 0.00(均不显著)[5:2]。

-

筛检效能:老年期腰围胜过 BMI

-

BMI 判别血脂异常的效能也随龄衰减。NHANES 1999–2020 共 58 712 人:BMI 与腰高比对高血压、血脂异常、糖尿病的判别性能随年龄递增而下降,老年人中关联呈 J 形并在较高肥胖水平进入平台[6]。韩国 2022–2023 国民健康调查 8 900 人比较 7 个肥胖指标,所有指标判别力在 50 岁后下降,腰高比与身体圆度指数在年轻与中年成人中最优[7]。

-

英国生物库 368 274 人另显示方向性差异:LDL-C 与冠心病的关联随龄递减(HR 从 <50 岁的 1.35 降至 ≥65 岁的 1.08),而 BMI 与冠心病的关联不随龄衰减(各年龄组 HR 1.11–1.15)[8]——老年期"BMI 影响健康结局"的通道部分绕过血脂,但不能因此认为老年肥胖无害。

-

性别×年龄:绝经是隐藏的转折点

-

山西农村 26 378 人(45–69 岁)显示:女性 TC、TG、LDL-C 患病率随年龄上升,男性则平稳甚至下降;女性各类血脂异常患病率均高于男性,仅低 HDL-C 为男性更高[9]。老年人 Meta 分析同向:女性血脂异常总患病率 48.8% 高于男性 39.5%,高 TC 24.0% vs 12.9%[3:1]。

-

机制上绝经是关键节点——雌激素下降导致 LDL 清除减慢、内脏脂肪增加,女性血脂在围绝经期陡升,形成"老年女性患病率反超男性"的交叉[10]。

+

观察性分析与之一致:<55 岁 LDL-C 每 SD BMI +0.16、TC +0.12,≥55 岁分别降至 +0.02 与 0.00(均不显著)[5:2]。

+

筛检效能:老年期腰围胜过 BMI

+

BMI 判别血脂异常的效能也随龄衰减。NHANES 1999–2020 共 58 712 人:BMI 与腰高比对高血压、血脂异常、糖尿病的判别性能随年龄递增而下降,老年人中关联呈 J 形并在较高肥胖水平进入平台[6]。韩国 2022–2023 国民健康调查 8 900 人比较 7 个肥胖指标,所有指标判别力在 50 岁后下降,腰高比与身体圆度指数在年轻与中年成人中最优[7]。

+

英国生物库 368 274 人另显示方向性差异:LDL-C 与冠心病的关联随龄递减(HR 从 <50 岁的 1.35 降至 ≥65 岁的 1.08),而 BMI 与冠心病的关联不随龄衰减(各年龄组 HR 1.11–1.15)[8]——老年期"BMI 影响健康结局"的通道部分绕过血脂,但不能因此认为老年肥胖无害。

+

性别×年龄:绝经是隐藏的转折点

+

山西农村 26 378 人(45–69 岁)显示:女性 TC、TG、LDL-C 患病率随年龄上升,男性则平稳甚至下降;女性各类血脂异常患病率均高于男性,仅低 HDL-C 为男性更高[9]。老年人 Meta 分析同向:女性血脂异常总患病率 48.8% 高于男性 39.5%,高 TC 24.0% vs 12.9%[3:1]。

+

机制上绝经是关键节点——雌激素下降导致 LDL 清除减慢、内脏脂肪增加,女性血脂在围绝经期陡升,形成"老年女性患病率反超男性"的交叉[10]。

为什么老年期关联会衰减

+

四类机制叠加,很难拆开。其一是体成分重组:中老年期肌肉量下降、内脏脂肪随龄增加,BMI 可以不变而代谢风险上升——中国 45–90 岁体检人群肌少性肥胖患病率 8.4%,系统性炎症指数每升高 1 SD,肌少性肥胖 OR 在中年 1.69、老年 2.52[11]。其二是健康选择效应:血脂异常与心血管病高风险者更早死亡或已接受降脂治疗,存活到高龄的人群"未被治疗的血脂异常"比例自然下降[5:3]。其三是治疗混杂:他汀等降脂药在老年人群使用率更高,压低实测血脂水平[12]。其四是遗传异质性的年龄表达:BMI–血脂的局部遗传相关位点存在保护性变异,年龄越大,非 BMI 因素在血脂水平中的占比越高[13]。

+

对筛查和临床的落地含义

-

对筛查和临床的落地含义

-
    -
  1. 45–59 岁是 BMI 筛选血脂异常效率最高的窗口——中青年肥胖者应优先筛查;
  2. -
  3. 60 岁以上别拿"BMI 正常"排除血脂异常——联合腰围/腰高比,必要时直接测血脂;
  4. -
  5. 绝经后女性无论 BMI 都是高概率人群——老年女性高 TC/TG 型比例高,老年男性低 HDL-C 型比例高;
  6. -
  7. 老年 BMI 对血脂效应弱 ≠ 减重无益——TG/HDL 通道保留,且 BMI–冠心病关联不随龄衰减[8:1];
  8. -
  9. 以降脂为终点的临床试验应预设年龄分层分析:中青年入组者预期 TG 变化幅度大于老年入组者,≥55 岁受试者的 LDL-C 终点对 BMI 干预不敏感,应以 TG/HDL-C 或非 HDL-C 为主[5:4]。
  10. -
-

一个值得记住的总结:BMI 与血脂的关联是真实的、因果的,但它是一条会随年龄衰减的关联——患病率在 60 岁前后达峰后回落,BMI 对胆固醇的因果效应在 55 岁后消失甚至反转,而 TG/HDL 通道和心血管保护效应保留。年龄不是简单的混杂,而是这条关联的修饰者。

+

结论

+

BMI 与血脂的关联是真实的、因果的,但它是一条会随年龄衰减的关联:患病率在 60 岁前后达峰后回落,BMI 对胆固醇的因果效应在 55 岁后消失甚至反转,而 TG/HDL 通道和心血管保护效应保留。年龄不是简单的混杂,而是这条关联的修饰者——筛查策略和临床试验设计都应把年龄写进参数,而不是事后分层。


参考文献


diff --git "a/2026/08/15/\350\241\200\346\270\205\350\203\206\347\272\242\347\264\240\346\260\264\345\271\263\344\270\216\345\206\240\345\277\203\347\227\205\351\243\216\351\231\251/index.html" "b/2026/08/15/\350\241\200\346\270\205\350\203\206\347\272\242\347\264\240\346\260\264\345\271\263\344\270\216\345\206\240\345\277\203\347\227\205\351\243\216\351\231\251/index.html" index 725533f0..d30133f7 100644 --- "a/2026/08/15/\350\241\200\346\270\205\350\203\206\347\272\242\347\264\240\346\260\264\345\271\263\344\270\216\345\206\240\345\277\203\347\227\205\351\243\216\351\231\251/index.html" +++ "b/2026/08/15/\350\241\200\346\270\205\350\203\206\347\272\242\347\264\240\346\260\264\345\271\263\344\270\216\345\206\240\345\277\203\347\227\205\351\243\216\351\231\251/index.html" @@ -298,50 +298,50 @@ mjx-container[display="true"] + br {
-

体检报告上"间接胆红素轻度升高"是一个很常见的发现。多数时候医生会说"没事,可能是吉尔伯特综合征",但网上流传着另一种说法:胆红素高的人心脏更好,因为胆红素是强效抗氧化剂。这个说法从 1987 年一篇《Science》论文开始,经历了从机制、临床观察到大型遗传学研究的完整验证,最后得到的结论比想象中复杂得多——它部分成立,但"升高胆红素能保护心脏"这个因果命题,在目前最强的证据里并不成立。

-

起点:1987 年,胆红素被重新定义

-

在 1987 年之前,胆红素在医学教科书里的身份是血红素分解的"有毒废料"——新生儿黄疸、肝病黄疸的主角。加州大学伯克利分校的 Stocker 和 Ames 团队首次证明:未结合(间接)胆红素其实是一种极其强效的脂溶性抗氧化剂[1]。

+

体检报告上"间接胆红素轻度升高"很常见。多数时候医生会说没事,可能是吉尔伯特综合征。网上却流传另一种说法:胆红素高的人心脏更好,因为胆红素是强效抗氧化剂。这个说法从 1987 年一篇《Science》论文开始,经历了从机制、临床观察到大型遗传学研究的完整验证,得到的结论比想象中复杂——它部分成立,但"升高胆红素能保护心脏"这个因果命题,在目前最强的证据里并不成立。

+

1987 年:胆红素被重新定义

+

1987 年之前,胆红素在教科书里的身份是血红素分解的"有毒废料"——新生儿黄疸、肝病黄疸的主角。加州大学伯克利分校的 Stocker 和 Ames 团队首次证明:未结合胆红素是一种极其强效的脂溶性抗氧化剂[1]。

-

此后四十年的生化研究不断补充机制:胆红素与 α-生育酚构成协同抗氧化网络(添加胆红素可使维生素 E 的消耗停止)[4];生理浓度胆红素可清除氯胺并抑制髓过氧化物酶(MPO)诱导的蛋白和脂质氧化[5];2020 年后又发现胆红素是 PPAR-α 的选择性内源性配体,能重塑白色脂肪组织代谢,因此被称为"黄色激素"(the yellow hormone)[6][7]。

-

但抗氧化并非无限度:细胞实验显示,细胞内未结合胆红素蓄积超过约 25 ng/mg 蛋白后,从抗氧化转为促氧化并产生细胞毒性[8]——这为"为什么只有轻度升高有益"提供了分子解释。

-

临床观察:低胆红素与冠心病风险

-

机制研究之后,临床流行病学接棒。1994 年 Schwertner 等在血管造影确诊的冠心病男性队列中首次发现:ln(总胆红素)与冠脉疾病严重程度独立负相关,总胆红素下降 50%,处于更严重冠脉疾病分级的几率增加 47%,关联强度"与收缩压相当"[9]。

-

2002 年,查尔斯大学 Vítek 团队做了一个更直接的人群对照:50 例 40 岁以上的吉尔伯特综合征患者 vs 2296 例一般人群,吉尔伯特组缺血性心脏病患病率仅 2%,对照组 12.1%(P<0.05),且吉尔伯特组血清总抗氧化能力显著更高[10]。

-

2006 年弗雷明汉心脏研究把证据推到基因层面:按 UGT1A1*28 基因型(吉尔伯特综合征的遗传基础,人群频率约 11%)分层,7/7 纯合子携带者心血管疾病风险 HR = 0.36(95% CI 0.18–0.74),冠心病 HR = 0.30[11]。这组数据至今仍被广泛引用。

-

后续荟萃分析确认了方向:每升高 1 个标准差胆红素,心血管风险约降 7%–10%[12];生理范围内胆红素升高使首次心梗长期风险降 22%(RR 0.78)[13];卒中风险最高 vs 最低组 RR = 0.85[14]。他汀人群 13 万人数据显示 L 形关联:与 10 μmol/L 相比,5 μmol/L 者心血管事件 +18%、心梗 +34%[15]。

-

不过观察性证据有两个长期被忽视的软肋:一是吸烟混杂——吸烟者 42% 处于胆红素最低四分位,戒烟后胆红素回升,"低胆红素 + 高心血管风险"有一部分是吸烟驱动的[16];二是性别差异——阳性证据大多来自男性,女性中关联弱或不显著[17][18]。

-

分水岭:孟德尔随机化给出否定答案

-

观察性关联无法区分因果与混杂。孟德尔随机化(MR)利用"基因型在受精时随机分配"这一自然实验,绕开吸烟、饮酒、生活方式等混杂,是检验因果性的最强观察设计。这个领域在 2013 年和 2023 年迎来了两次大型否定:

-

哥本哈根三队列 MR(2013):43,708 人测胆红素,67,068 人基因分型,含 11,686 例缺血性心脏病事件。观察性分析中胆红素最高三分位 HR = 0.86,但多因素校正后衰减为 0.93(不显著);而基因型分析(TT vs GG,胆红素升高约 95%)对缺血性心脏病的 OR = 1.03,完全无效。加上既往 8 项研究的荟萃:OR = 1.01(0.88–1.16)。结论原文:“血浆胆红素与缺血性心脏病风险无因果关联”[19]。

-

UK Biobank + FinnGen(2023):46.3 万人基因分型 + 42.9 万人复现。观察性层面,高胆红素与总体健康、心梗、胆固醇等广泛结局强负相关;但遗传学层面,这些负相关在吉尔伯特基因型人群中全部未复现——基因预测的胆红素仅与胆道/肝脏病理显著相关(胆结石 OR = 1.16,P = 5.7×10⁻¹⁶)。结论原文:“遗传学分析提示胆红素对心血管疾病、慢阻肺及其他关键结局无因果保护作用”[20]。

-

这两项研究分别代表欧洲最大样本和全球最大样本,事件数都足以检出真实效应。阴性结果的解释力很强:如果"胆红素保护心脏"的因果效应真实存在,这些设计理应能够发现。

+

此后四十年的生化研究不断补全机制。胆红素与 α-生育酚构成协同抗氧化网络,添加胆红素可使维生素 E 的消耗停止[4];生理浓度胆红素可清除氯胺并抑制髓过氧化物酶诱导的蛋白和脂质氧化[5];2020 年后又发现胆红素是 PPAR-α 的选择性内源性配体,能重塑白色脂肪组织代谢,因此被称作"黄色激素"[6][7]。

+

抗氧化并非无限度。细胞实验显示,细胞内未结合胆红素蓄积超过约 25 ng/mg 蛋白后,抗氧化转为促氧化并产生细胞毒性[8]。这解释了为什么只有轻度升高有益。

+

临床观察:低胆红素与冠心病风险相关

+

1994 年,Schwertner 等人在血管造影确诊的冠心病男性队列中发现:ln(总胆红素)与冠脉疾病严重程度独立负相关。总胆红素下降 50%,处于更严重冠脉疾病分级的几率增加 47%,关联强度"与收缩压相当"[9]。

+

2002 年,查尔斯大学 Vítek 团队做了更直接的人群对照:50 例 40 岁以上的吉尔伯特综合征患者 vs 2296 例一般人群,吉尔伯特组缺血性心脏病患病率仅 2%,对照组 12.1%(P<0.05),且吉尔伯特组血清总抗氧化能力显著更高[10]。

+

2006 年弗雷明汉心脏研究把证据推到基因层面:按 UGT1A1*28 基因型(吉尔伯特综合征的遗传基础,人群频率约 11%)分层,7/7 纯合子携带者心血管疾病风险 HR = 0.36(95% CI 0.18–0.74),冠心病 HR = 0.30[11]。这组数据至今仍被广泛引用。

+

后续荟萃分析确认了方向:每升高 1 个标准差胆红素,心血管风险约降 7%–10%[12];生理范围内胆红素升高使首次心梗长期风险降 22%(RR 0.78)[13];卒中风险最高 vs 最低组 RR = 0.85[14]。他汀人群 13 万人数据显示 L 形关联:与 10 μmol/L 相比,5 μmol/L 者心血管事件 +18%、心梗 +34%[15]。

+

观察性证据有两个长期被忽视的软肋。一是吸烟混杂——吸烟者 42% 处于胆红素最低四分位,戒烟后胆红素回升,"低胆红素 + 高心血管风险"有一部分是吸烟驱动的[16]。二是性别差异——阳性证据大多来自男性,女性中关联弱或不显著[17][18]。

+

分水岭:孟德尔随机化给出否定答案

+

观察性关联无法区分因果与混杂。孟德尔随机化(MR)利用"基因型在受精时随机分配"这一自然实验,绕开吸烟、饮酒、生活方式等混杂,是检验因果性的最强观察设计。这个领域在 2013 年和 2023 年迎来了两次大型否定。

+

哥本哈根三队列 MR(2013):43,708 人测胆红素,67,068 人基因分型,含 11,686 例缺血性心脏病事件。观察性分析中胆红素最高三分位 HR = 0.86,但多因素校正后衰减为 0.93(不显著);基因型分析(TT vs GG,胆红素升高约 95%)对缺血性心脏病的 OR = 1.03,完全无效。加上既往 8 项研究的荟萃:OR = 1.01(0.88–1.16)。结论原文:“血浆胆红素与缺血性心脏病风险无因果关联”[19]。

+

UK Biobank + FinnGen(2023):46.3 万人基因分型,42.9 万人复现。观察性层面,高胆红素与总体健康、心梗、胆固醇等广泛结局强负相关;遗传学层面,这些负相关在吉尔伯特基因型人群中全部未复现——基因预测的胆红素仅与胆道/肝脏病理显著相关(胆结石 OR = 1.16,P = 5.7×10⁻¹⁶)。结论原文:“遗传学分析提示胆红素对心血管疾病、慢阻肺及其他关键结局无因果保护作用”[20]。

+

这两项研究分别代表欧洲最大样本和全球最大样本,事件数都足以检出真实效应。如果"胆红素保护心脏"的因果效应真实存在,这些设计理应能够发现。

但事情没有完全结束

-

欧洲的否定不等于全部。亚洲和非洲人群的部分 MR 研究给出了阳性信号:

+

欧洲的否定不等于全部。亚洲和非洲人群的部分 MR 研究给出了阳性信号:

-

另外 2023 年《Circulation Research》的动物-人联合研究显示,胆红素缺乏小鼠的动脉粥样硬化斑块更不稳定(纤维帽变薄、斑块内出血),人冠脉斑块中血红素代谢上调——机制层面的保护证据仍在积累[25]。

-

而胆结石是唯一在基因型与结局层面完全一致的因果证据:61,212 人前瞻队列 + MR,胆红素最高十分位症状性胆结石 HR = 1.57,TT 纯合基因型 HR = 1.22,存在剂量-反应[26]。

+

2023 年《Circulation Research》的动物-人联合研究显示,胆红素缺乏小鼠的动脉粥样硬化斑块更不稳定(纤维帽变薄、斑块内出血),人冠脉斑块中血红素代谢上调——机制层面的保护证据仍在积累[25]。

+

而胆结石是唯一在基因型与结局层面完全一致的因果证据:61,212 人前瞻队列 + MR,胆红素最高十分位症状性胆结石 HR = 1.57,TT 纯合基因型 HR = 1.22,存在剂量-反应[26]。

几个反直觉的细节

-

结论:一个准确的说法

-

把四十年的证据放在一起,最准确的表述是:

+

结论

+

四十年的证据放在一起,最准确的表述是:

-

生理性轻度高胆红素血症(吉尔伯特综合征)是心血管风险的独立反向生物标志物,具有真实而复杂的抗氧化、抗炎与代谢活性;但"胆红素因果性地保护心脏"在欧洲人群最强设计中未获支持,不能作为临床干预的依据。

+

生理性轻度高胆红素血症(吉尔伯特综合征)是心血管风险的独立反向生物标志物,具有真实而复杂的抗氧化、抗炎与代谢活性;但"胆红素因果性地保护心脏"在欧洲人群最强设计中未获支持,不能作为临床干预的依据。

-

对个体而言,体检发现孤立性间接胆红素轻度升高(排除溶血与肝病后)应视为良性状态——既不必因此放松标准的心血管风险管理(血压、血脂、吸烟、运动),也不应被当作"心脏有保护"的免死金牌。对用药而言,吉尔伯特综合征患者使用 UGT1A1 底物药物(如伊立替康)需关注暴露增加。

-

一个常被误读的细节值得记住:2006 年弗雷明汉那篇著名的 HR = 0.36 是基因型-结局关联研究,不是孟德尔随机化;真正的 MR 检验直到 2013 年才由哥本哈根团队完成,而它给出的是否定答案。这个领域的发展轨迹——从乐观叙事到大型否定、再到人群异质性的复杂图景——本身就是流行病学方法学进步的一个标本。

+

对个体而言,体检发现孤立性间接胆红素轻度升高(排除溶血与肝病后)应视为良性状态——既不必因此放松标准的心血管风险管理(血压、血脂、吸烟、运动),也不应被当作"心脏有保护"的免死金牌。对用药而言,吉尔伯特综合征患者使用 UGT1A1 底物药物(如伊立替康)需关注暴露增加。

+

一个常被误读的细节值得记住:2006 年弗雷明汉那篇著名的 HR = 0.36 是基因型-结局关联研究,不是孟德尔随机化;真正的 MR 检验直到 2013 年才由哥本哈根团队完成,而它给出的是否定答案。这个领域的发展轨迹——从乐观叙事到大型否定、再到人群异质性的复杂图景——本身就是流行病学方法学进步的一个标本。


参考文献

胆红素水平与心血管结局:观察性 vs 遗传学证据的关键效应量

diff --git a/search.xml b/search.xml index 54a7b1b3..babd02d8 100644 --- a/search.xml +++ b/search.xml @@ -480,32 +480,6 @@ char sa_data[] socket address (variable-length data)

Archive - - DDD 中的 Ubiquitous Language - /2025/03/14/DDD-%E4%B8%AD%E7%9A%84-Ubiquitous-Languages/ - Ubiquitous Language(通用语言)是 Domain-Driven Design (DDD) 中的一个核心概念。它是一种共享的、统一的语言,用于描述和讨论领域模型中的概念和规则。Ubiquitous Language 的目的是确保开发团队和业务专家之间的沟通更加高效和准确,从而减少误解和错误。

-

一般来说,Ubiquitous Language 有以下特点:

-
    -
  1. 共享:Ubiquitous Language 是由开发团队和业务专家共同创建和使用的。它不仅用于代码和文档,还用于日常的沟通和讨论。
  2. -
  3. 统一:在整个项目中,Ubiquitous Language 应该是一致的。无论是在代码、文档、会议还是白板上,都应该使用相同的术语和概念。
  4. -
  5. 精确:Ubiquitous Language 应该尽可能精确,避免模糊和歧义。每个术语都应该有明确的定义和含义。
  6. -
  7. 演进:Ubiquitous Language 是动态的,会随着项目的进展和业务需求的变化而演进。团队应该定期审查和更新它。
  8. -
-

基于此,它可以用在这些地方:

-
    -
  1. 命名:在代码中使用 Ubiquitous Language 来命名类、方法、变量等。例如,如果业务专家使用“订单”来描述一个概念,那么在代码中也应该使用“Order”而不是“Purchase”或“Transaction”。
  2. -
  3. 文档:在文档中使用 Ubiquitous Language 来描述系统的设计、架构和功能。这有助于业务专家更容易理解技术文档。
  4. -
  5. 沟通:在团队会议、讨论和白板会议中使用 Ubiquitous Language。这有助于确保所有参与者都在讨论同一个概念。
  6. -
  7. 测试:在编写测试用例时,使用 Ubiquitous Language 来描述测试的前提条件、步骤和预期结果。这有助于确保测试覆盖了业务需求。
  8. -
-

假设正在开发一个电子商务系统,业务专家使用“订单”来描述用户购买的商品集合。团队可以在代码中使用“Order”来命名相关的类和方法:

-
type Order = {
items: OrderItem list
customer: Customer
orderDate: DateTime
}

type OrderItem = {
product: Product
quantity: int
}

type Customer = {
name: string
}

type Product = {
name: string
price: float
}

let addItem (order: Order) (item: OrderItem) =
{ order with items = order.items @ [item] }

let getTotalAmount (order: Order) =
let total = 0.0
for item in order.items do
total <- total + item.price
total

let getPrice (item: OrderItem) =
item.product.price * item.quantity

let getTotalPrice (order: Order) =
let total = 0.0
for item in order.items do
total <- total + getPrice(item)
total
-

在这个示例中使用了“Order”、“OrderItem”、“Customer”和“Product”等术语,这些术语都是 Ubiquitous Language 的一部分,可以提高代码与业务需求的一致性。

-]]>
- - Technique - -
Dealing with complex dependency injection in FSharp /2024/10/18/Dealing-with-complex-dependency-injection-in-FSharp/ @@ -600,6 +574,32 @@ char sa_data[] socket address (variable-length data)

Archive
+ + DDD 中的 Ubiquitous Language + /2025/03/14/DDD-%E4%B8%AD%E7%9A%84-Ubiquitous-Languages/ + Ubiquitous Language(通用语言)是 Domain-Driven Design (DDD) 中的一个核心概念。它是一种共享的、统一的语言,用于描述和讨论领域模型中的概念和规则。Ubiquitous Language 的目的是确保开发团队和业务专家之间的沟通更加高效和准确,从而减少误解和错误。

+

一般来说,Ubiquitous Language 有以下特点:

+
    +
  1. 共享:Ubiquitous Language 是由开发团队和业务专家共同创建和使用的。它不仅用于代码和文档,还用于日常的沟通和讨论。
  2. +
  3. 统一:在整个项目中,Ubiquitous Language 应该是一致的。无论是在代码、文档、会议还是白板上,都应该使用相同的术语和概念。
  4. +
  5. 精确:Ubiquitous Language 应该尽可能精确,避免模糊和歧义。每个术语都应该有明确的定义和含义。
  6. +
  7. 演进:Ubiquitous Language 是动态的,会随着项目的进展和业务需求的变化而演进。团队应该定期审查和更新它。
  8. +
+

基于此,它可以用在这些地方:

+
    +
  1. 命名:在代码中使用 Ubiquitous Language 来命名类、方法、变量等。例如,如果业务专家使用“订单”来描述一个概念,那么在代码中也应该使用“Order”而不是“Purchase”或“Transaction”。
  2. +
  3. 文档:在文档中使用 Ubiquitous Language 来描述系统的设计、架构和功能。这有助于业务专家更容易理解技术文档。
  4. +
  5. 沟通:在团队会议、讨论和白板会议中使用 Ubiquitous Language。这有助于确保所有参与者都在讨论同一个概念。
  6. +
  7. 测试:在编写测试用例时,使用 Ubiquitous Language 来描述测试的前提条件、步骤和预期结果。这有助于确保测试覆盖了业务需求。
  8. +
+

假设正在开发一个电子商务系统,业务专家使用“订单”来描述用户购买的商品集合。团队可以在代码中使用“Order”来命名相关的类和方法:

+
type Order = {
items: OrderItem list
customer: Customer
orderDate: DateTime
}

type OrderItem = {
product: Product
quantity: int
}

type Customer = {
name: string
}

type Product = {
name: string
price: float
}

let addItem (order: Order) (item: OrderItem) =
{ order with items = order.items @ [item] }

let getTotalAmount (order: Order) =
let total = 0.0
for item in order.items do
total <- total + item.price
total

let getPrice (item: OrderItem) =
item.product.price * item.quantity

let getTotalPrice (order: Order) =
let total = 0.0
for item in order.items do
total <- total + getPrice(item)
total
+

在这个示例中使用了“Order”、“OrderItem”、“Customer”和“Product”等术语,这些术语都是 Ubiquitous Language 的一部分,可以提高代码与业务需求的一致性。

+]]>
+ + Technique + +
F# 重载解析问题 /2025/03/30/F-%E9%87%8D%E8%BD%BD%E8%A7%A3%E6%9E%90%E9%97%AE%E9%A2%98/ @@ -2657,6 +2657,43 @@ A relation table (also sometimes called a JOIN, link or pi Medicine + + TypeScript With Rust Errors, No Try Catch, Heresy + /2023/04/30/TypeScript-With-Rust-Errors-No-Try-Catch-Heresy/ + +

It’s hard to miss things when you don’t know different things exist

+ +

The first problem is, and personally, I believe it’s the biggest JavaScript problem ever: we don’t know what can throw an error. From a JavaScript error perspective, it’s the same as the following:

+
try {
let data = “Hello”;
} catch (err) {
console.error(err);
}
+

JavaScript doesn’t know; JavaScript doesn’t care. You should know.

+

Second thing, this is perfectly viable code:

+
const request = { name: “test”, value: 2n };
const body = JSON.stringify(request);
const response = await fetch("https://example.com", {
method: “POST”,
body,
});
if (!response.ok) {
return;
}
+

No errors, no linters, even though this can break your app.

+

Right now, in my head, I can hear, “What’s the problem, just use try/catch everywhere.” Here comes the third problem: we don’t know which one is thrown. Of course, we can somehow guess by the error message, but what about bigger services/functions with many places where errors can happen? Are you sure you are handling all of them properly with one try/catch?

+
+
let greeting_file_result = File::open(“hello.txt”);  
let greeting_file = match greeting_file_result {
Ok(file) => file,
Err(error) => panic!("Problem opening the file: {:?}", error),
};
+

The most verbose of the three shown here and, ironically, the best one. So, first of all, Rust handles the errors using its amazing enums (they are not the same as TypeScript enums!). Without going into detail, what is important here is that it uses an enum called Result with two variants: Ok and Err. As you might guess, Ok holds a value and Err holds…surprise, an error :D.

+

The summary here is that Rust always know where there might be an error. And it force you to deal with it right where it appears (mostly). No hidden ones, no guessing, no breaking app with a surprise face.

+

And this approach is just better. By A MILE.

+

We cannot make TypeScript errors work like the Rust. The limiting factor here is the language itself; it doesn’t have the proper tools to do that.

+

But what we can do is try to make it similar. And make it simple:

+
export type Safe<T> =  
| {
success: true;
data: T;
}
| {
success: false;
error: string;
};
+

we do need a few try/catches. The good thing is we only need about two, not 100,000:

+
export function safe<T>(promise: Promise<T>, err?: string): Promise<Safe<T>>;
export function safe<T>(func: () => T, err?: string): Safe<T>;
export function safe<T>(
promiseOrFunc: Promise<T> | (() => T),
err?: string,
): Promise<Safe<T>> | Safe<T> {
if (promiseOrFunc instanceof Promise) {
return safeAsync(promiseOrFunc, err);
}
return safeSync(promiseOrFunc, err);
}

async function safeAsync<T>(
promise: Promise<T>,
err?: string
): Promise<Safe<T>> {
try {
const data = await promise;
return { data, success: true };
} catch (e) {
console.error(e);
if (err !== undefined) {
return { success: false, error: err };
}
if (e instanceof Error) {
return { success: false, error: e.message };
}
return { success: false, error: "Something went wrong" };
}
}

function safeSync<T>(
func: () => T,
err?: string
): Safe<T> {
try {
const data = func();
return { data, success: true };
} catch (e) {
console.error(e);
if (err !== undefined) {
return { success: false, error: err };
}
if (e instanceof Error) {
return { success: false, error: e.message };
}
return { success: false, error: "Something went wrong" };
}
}
+

This is just a wrapper with our Safe type as the return one. But sometimes simple things are all you need. Let’s combine them with the example from above.

+
const request = { name: “test”, value: 2n };  
const body = safe(
() => JSON.stringify(request),
“Failed to serialize request”,
);
if (!body.success) {
// handle error (body.error)
return;
}
const response = await safe(
fetch("https://example.com", {
method: “POST”,
body: body.data,
}),
);
if (!response.success) {
// handle error (response.error)
return;
}
if (!response.data.ok) {
// handle network error
return;
}
// handle response (body.data)
+

New solution is longer, but it performs better because of the following reasons:

+
    +
  • no try/catch
  • +
  • we handle each error where it occurs
  • +
  • we can specify an error message for a specific function
  • +
  • we have a nice top-to-bottom logic, all errors on top, then only the response at the bottom
  • +
+]]>
+ + Technique + +
Turborepo 简述 /2024/09/27/Turborepo-%E7%AE%80%E8%BF%B0/ @@ -2876,43 +2913,6 @@ A relation table (also sometimes called a JOIN, link or pi

本快速入门文档参照 Turborepo 2.x 官方文档: https://turbo.build/repo/docs
最后一次编辑:二〇二四年九月二十七日下午六点〇七分

-]]> - - Technique - -
- - TypeScript With Rust Errors, No Try Catch, Heresy - /2023/04/30/TypeScript-With-Rust-Errors-No-Try-Catch-Heresy/ - -

It’s hard to miss things when you don’t know different things exist

- -

The first problem is, and personally, I believe it’s the biggest JavaScript problem ever: we don’t know what can throw an error. From a JavaScript error perspective, it’s the same as the following:

-
try {
let data = “Hello”;
} catch (err) {
console.error(err);
}
-

JavaScript doesn’t know; JavaScript doesn’t care. You should know.

-

Second thing, this is perfectly viable code:

-
const request = { name: “test”, value: 2n };
const body = JSON.stringify(request);
const response = await fetch("https://example.com", {
method: “POST”,
body,
});
if (!response.ok) {
return;
}
-

No errors, no linters, even though this can break your app.

-

Right now, in my head, I can hear, “What’s the problem, just use try/catch everywhere.” Here comes the third problem: we don’t know which one is thrown. Of course, we can somehow guess by the error message, but what about bigger services/functions with many places where errors can happen? Are you sure you are handling all of them properly with one try/catch?

-
-
let greeting_file_result = File::open(“hello.txt”);  
let greeting_file = match greeting_file_result {
Ok(file) => file,
Err(error) => panic!("Problem opening the file: {:?}", error),
};
-

The most verbose of the three shown here and, ironically, the best one. So, first of all, Rust handles the errors using its amazing enums (they are not the same as TypeScript enums!). Without going into detail, what is important here is that it uses an enum called Result with two variants: Ok and Err. As you might guess, Ok holds a value and Err holds…surprise, an error :D.

-

The summary here is that Rust always know where there might be an error. And it force you to deal with it right where it appears (mostly). No hidden ones, no guessing, no breaking app with a surprise face.

-

And this approach is just better. By A MILE.

-

We cannot make TypeScript errors work like the Rust. The limiting factor here is the language itself; it doesn’t have the proper tools to do that.

-

But what we can do is try to make it similar. And make it simple:

-
export type Safe<T> =  
| {
success: true;
data: T;
}
| {
success: false;
error: string;
};
-

we do need a few try/catches. The good thing is we only need about two, not 100,000:

-
export function safe<T>(promise: Promise<T>, err?: string): Promise<Safe<T>>;
export function safe<T>(func: () => T, err?: string): Safe<T>;
export function safe<T>(
promiseOrFunc: Promise<T> | (() => T),
err?: string,
): Promise<Safe<T>> | Safe<T> {
if (promiseOrFunc instanceof Promise) {
return safeAsync(promiseOrFunc, err);
}
return safeSync(promiseOrFunc, err);
}

async function safeAsync<T>(
promise: Promise<T>,
err?: string
): Promise<Safe<T>> {
try {
const data = await promise;
return { data, success: true };
} catch (e) {
console.error(e);
if (err !== undefined) {
return { success: false, error: err };
}
if (e instanceof Error) {
return { success: false, error: e.message };
}
return { success: false, error: "Something went wrong" };
}
}

function safeSync<T>(
func: () => T,
err?: string
): Safe<T> {
try {
const data = func();
return { data, success: true };
} catch (e) {
console.error(e);
if (err !== undefined) {
return { success: false, error: err };
}
if (e instanceof Error) {
return { success: false, error: e.message };
}
return { success: false, error: "Something went wrong" };
}
}
-

This is just a wrapper with our Safe type as the return one. But sometimes simple things are all you need. Let’s combine them with the example from above.

-
const request = { name: “test”, value: 2n };  
const body = safe(
() => JSON.stringify(request),
“Failed to serialize request”,
);
if (!body.success) {
// handle error (body.error)
return;
}
const response = await safe(
fetch("https://example.com", {
method: “POST”,
body: body.data,
}),
);
if (!response.success) {
// handle error (response.error)
return;
}
if (!response.data.ok) {
// handle network error
return;
}
// handle response (body.data)
-

New solution is longer, but it performs better because of the following reasons:

-
    -
  • no try/catch
  • -
  • we handle each error where it occurs
  • -
  • we can specify an error message for a specific function
  • -
  • we have a nice top-to-bottom logic, all errors on top, then only the response at the bottom
  • -
]]>
Technique @@ -2983,25 +2983,6 @@ A relation table (also sometimes called a JOIN, link or pi Technique
- - DADGAD 定弦 - /2025/07/08/dadgad/ - 模态定弦的空弦音不直接构成传统意义上的大调或小调和弦,而是形成一种听感上更为空灵、悬浮的“挂留和弦”(Suspended Chord)效果。

-

DADGAD (发音为 “dad-gad”): 这是凯尔特音乐(Celtic Music)中最具代表性的定弦。它的空弦音给人一种既非大调也非小调的模糊感,充满了神秘和悠远的色彩,非常适合营造氛围音乐和复杂的指弹旋律。

-

挂留和弦(Suspended Chord),通常简写为 “sus”,是一种在传统和弦结构上进行了巧妙“修改”的和弦。它的核心特点是:用一个非三度的音,去“替代”或“悬挂”了原本决定和弦大/小调色彩的三度音,从而创造出一种独特的声音效果。

-

想象一个标准的大三和弦或小三和弦,它由根音、三度音和五度音构成。其中,三度音是决定这个和弦听起来是明亮、开心的“大调”,还是忧郁、伤感的“小调”的关键。

-

而挂留和弦,就是把这个关键的“三度音”暂时拿掉,换上别的音。最常见的替代者有两个:
-一是 纯四度音 (Perfect 4th) ,二是 大二度音 (Major 2nd) 。

-

sus4 和弦 (挂四和弦) 由 根音 (1) + 纯四度音 (4) + 纯五度音 (5) 构成,即用四度音替代了原本的三度音。听感上,这是最常见的挂留和弦。它创造出一种强烈而悬浮的张力感,声音既不属于大调也不属于小调,听起来非常“开阔”。例如,一个 Csus4 和弦,就是由 C、F、G 三个音构成,取代了标准C大调和弦(C-E-G)中的 E 音。

-

sus2 和弦 (挂二和弦) 由 根音 (1) + 大二度音 (2) + 纯五度音 (5) 构成,特点是用二度音替代了原本的三度音。听感上,sus2和弦的声音比sus4更柔和、更明亮一些。它同样具有开放、模糊的色彩,但张力感稍弱,听起来更像是一种平静、梦幻的色彩和弦。例如,一个 Csus2 和弦,就是由 C、D、G 三个音构成,取代了标准C大调和弦(C-E-G)中的 E 音。

-

而 DADGAD 定弦方式的空弦音,其核心就是一个挂留和弦,具体来说是一个 Dsus4 和弦。当你弹响 DADGAD 的所有空弦时,你实际上听到的就是 D、G、A 这三个音在不同八度上的叠加和共鸣。这三个音不多不少,正好构成了 Dsus4 和弦。

-

DADGAD 定弦的精髓,就在于它将整个吉他的开放状态变成了一个巨大的、共鸣丰富的 Dsus4 挂留和弦。

-

这正是为什么它能产生那种“既非大调也非小调的模糊感”和“空灵、悬浮”的听感。因为三度音(F# 或 F)的缺失,和弦的“身份”被悬挂了起来,没有明确地告诉你它是快乐的(大调)还是悲伤的(小调),而是创造出一种充满想象空间、广阔而悠远的音景。

-]]>
- - Life - -
在临床医疗领域中的数据库外键设计取舍 /2025/09/09/database-fk-design-in-clinical-medicine/ @@ -3066,6 +3047,102 @@ A relation table (also sometimes called a JOIN, link or pi Medicine + + DADGAD 定弦 + /2025/07/08/dadgad/ + 模态定弦的空弦音不直接构成传统意义上的大调或小调和弦,而是形成一种听感上更为空灵、悬浮的“挂留和弦”(Suspended Chord)效果。

+

DADGAD (发音为 “dad-gad”): 这是凯尔特音乐(Celtic Music)中最具代表性的定弦。它的空弦音给人一种既非大调也非小调的模糊感,充满了神秘和悠远的色彩,非常适合营造氛围音乐和复杂的指弹旋律。

+

挂留和弦(Suspended Chord),通常简写为 “sus”,是一种在传统和弦结构上进行了巧妙“修改”的和弦。它的核心特点是:用一个非三度的音,去“替代”或“悬挂”了原本决定和弦大/小调色彩的三度音,从而创造出一种独特的声音效果。

+

想象一个标准的大三和弦或小三和弦,它由根音、三度音和五度音构成。其中,三度音是决定这个和弦听起来是明亮、开心的“大调”,还是忧郁、伤感的“小调”的关键。

+

而挂留和弦,就是把这个关键的“三度音”暂时拿掉,换上别的音。最常见的替代者有两个:
+一是 纯四度音 (Perfect 4th) ,二是 大二度音 (Major 2nd) 。

+

sus4 和弦 (挂四和弦) 由 根音 (1) + 纯四度音 (4) + 纯五度音 (5) 构成,即用四度音替代了原本的三度音。听感上,这是最常见的挂留和弦。它创造出一种强烈而悬浮的张力感,声音既不属于大调也不属于小调,听起来非常“开阔”。例如,一个 Csus4 和弦,就是由 C、F、G 三个音构成,取代了标准C大调和弦(C-E-G)中的 E 音。

+

sus2 和弦 (挂二和弦) 由 根音 (1) + 大二度音 (2) + 纯五度音 (5) 构成,特点是用二度音替代了原本的三度音。听感上,sus2和弦的声音比sus4更柔和、更明亮一些。它同样具有开放、模糊的色彩,但张力感稍弱,听起来更像是一种平静、梦幻的色彩和弦。例如,一个 Csus2 和弦,就是由 C、D、G 三个音构成,取代了标准C大调和弦(C-E-G)中的 E 音。

+

而 DADGAD 定弦方式的空弦音,其核心就是一个挂留和弦,具体来说是一个 Dsus4 和弦。当你弹响 DADGAD 的所有空弦时,你实际上听到的就是 D、G、A 这三个音在不同八度上的叠加和共鸣。这三个音不多不少,正好构成了 Dsus4 和弦。

+

DADGAD 定弦的精髓,就在于它将整个吉他的开放状态变成了一个巨大的、共鸣丰富的 Dsus4 挂留和弦。

+

这正是为什么它能产生那种“既非大调也非小调的模糊感”和“空灵、悬浮”的听感。因为三度音(F# 或 F)的缺失,和弦的“身份”被悬挂了起来,没有明确地告诉你它是快乐的(大调)还是悲伤的(小调),而是创造出一种充满想象空间、广阔而悠远的音景。

+]]>
+ + Life + +
+ + 肠易激综合征 (IBS) 的病理学与药物治疗 + /2025/06/30/ibs/ + 肠易激综合征 (Irritable Bowel Syndrome, IBS) 是一种常见的功能性胃肠病。其核心特征是在没有发现任何器质性病变(如炎症、溃疡或肿瘤)的情况下,患者长期经历腹痛、腹胀,并伴有排便习惯的改变(腹泻、便秘或两者交替)。

+

一、 肠易激综合征的病理生理学

+

IBS 的病理生理机制非常复杂,并非由单一原因导致,而是多种因素相互作用的结果。目前的医学研究认为,其主要与以下几个核心机制有关:

+

1. 脑-肠轴功能紊乱 (Disorders of the Brain-Gut Axis)

+

这是 IBS 最核心的病理机制。大脑和肠道通过神经、内分泌和免疫系统形成一个双向沟通的“脑-肠轴”。在 IBS 患者中,这个轴的功能出现紊乱。

+
    +
  • 自上而下: 心理压力、焦虑、抑郁等负面情绪可以直接通过大脑影响肠道的运动、感觉和分泌功能,从而诱发或加重症状。
  • +
  • 自下而上: 肠道内的信号(如食物、气体、肠道菌群代谢产物)被过度放大后传给大脑,导致大脑对这些正常刺激产生过度反应,表现为疼痛和不适。
  • +
+

2. 内脏高敏感性 (Visceral Hypersensitivity)

+

这是指 IBS 患者的肠道对各种刺激(如食物、气体、肠壁的牵拉)异常敏感。正常人可以耐受的肠道内压力或活动,在 IBS 患者身上却会引发强烈的腹痛、急便感或不适。这种“放大”的感觉是 IBS 腹痛的主要原因。

+

3. 胃肠动力异常 (Altered Gut Motility)

+

肠道肌肉的收缩和舒张节律出现问题,导致食物和粪便在肠道内的转运速度异常。

+
    +
  • 转运过快: 肠道内容物过快通过结肠,水分来不及被充分吸收,导致腹泻(IBS-D)。
  • +
  • 转运过慢: 肠道蠕动乏力,粪便在结肠内停留时间过长,水分被过度吸收,导致便秘(IBS-C)。
  • +
  • 节律紊乱: 有时快有时慢,导致腹泻与便秘交替出现(IBS-M)。
  • +
+

4. 肠道微生态失调 (Alteration in Gut Microbiota)

+

IBS 患者的肠道菌群组成和功能与健康人存在差异。有害菌可能增多,有益菌(如双歧杆菌、乳酸杆菌)可能减少。这些失调的菌群会影响肠道屏障功能、产生过多气体、并激活免疫系统,导致腹胀和腹泻。

+

5. 肠道低度炎症与免疫激活 (Low-Grade Inflammation and Immune Activation)

+

部分 IBS 患者的肠道黏膜中可以观察到轻微的炎症反应,例如肥大细胞等免疫细胞数量增多并被激活。这些细胞会释放组胺、5-羟色胺等物质,直接刺激肠道神经,引起疼痛和动力异常。这种情况尤其在感染性肠炎后发生的 IBS(PI-IBS)中更为常见。

+

6. 遗传与饮食因素

+
    +
  • 遗传: IBS具有一定的家族聚集性,提示可能存在遗传易感性。
  • +
  • 饮食: 某些食物,特别是含有高FODMAPs(可发酵的寡糖、双糖、单糖和多元醇)的食物,在小肠内难以被吸收,进入大肠后被细菌快速发酵,产生大量气体并增加肠道渗透压,从而诱发腹胀、腹痛和腹泻。
  • +
+

二、 肠易激综合征的药物治疗

+
+

IBS的治疗需要个体化,所有药物都应在医生指导下使用。医生应该根据具体的 IBS 亚型(腹泻型、便秘型、混合型)和主要症状来选择最合适的药物。

+
+

针对主要症状的药物

+

1. 针对腹痛和腹胀(解痉药)

+

这类药物通过放松肠道平滑肌,缓解肠道痉挛来减轻疼痛。

+
    +
  • 匹维溴铵 (Pinaverium Bromide): 作用于肠道平滑肌的钙离子通道,选择性高,副作用较小。
  • +
  • 奥替溴铵 (Otilonium Bromide): 与匹维溴铵类似,对结肠有较高的亲和力。
  • +
  • 马来酸曲美布汀 (Trimebutine Maleate): 具有双向调节作用,在肠道动力过快时抑制它,过慢时促进它,对腹痛、腹泻和便秘都有一定效果。
  • +
  • 薄荷油 (Peppermint Oil): 是一种天然的解痉剂,其肠溶胶囊可以有效缓解腹痛和腹胀。
  • +
+

2. 针对腹泻 (IBS-D)

+
    +
  • 洛哌丁胺 (Loperamide): 是一种止泻药,能减慢肠道蠕动,增加水分吸收。适用于急性腹泻发作,但不宜长期连续使用。
  • +
  • 蒙脱石散 (Montmorillonite Powder): 是一种肠道黏膜保护剂,能吸附肠道内的病菌和毒素,并覆盖在肠壁上形成保护层。
  • +
  • 利福昔明 (Rifaximin): 一种几乎不被肠道吸收的抗生素,可以调节肠道菌群,减少有害菌和产气,对改善腹泻和腹胀有良好效果。
  • +
  • 5-HT₃受体拮抗剂(如阿洛司琼 Alosetron): 能显著减缓肠道转运、减轻内脏敏感性。因可能引起严重便秘和缺血性结肠炎等副作用,使用受到严格限制,通常仅用于其他治疗无效的重度女性IBS-D患者。
  • +
  • 胆汁酸螯合剂(如考来烯胺 Cholestyramine): 适用于因胆汁酸吸收不良导致的腹泻型IBS。
  • +
+

3. 针对便秘 (IBS-C)

+
    +
  • 容积性泻药(如欧车前、聚卡波非钙): 通过吸收水分增加粪便体积,刺激肠道蠕动。使用时需饮用足量水,否则可能加重便秘。
  • +
  • 渗透性泻药(如聚乙二醇 PEG、乳果糖): 通过在肠道内形成高渗环境,将水分保留在肠腔内,软化粪便,促进排便。相对安全,适合长期使用。
  • +
  • 促分泌药: +
      +
    • 鲁比前列酮 (Lubiprostone): 激活肠道氯离子通道,增加肠液分泌,软化粪便。
    • +
    • 利那洛肽 (Linaclotide)、普卡那肽 (Plecanatide): 激活鸟苷酸环化酶-C,促进肠液分泌,并能一定程度上缓解腹痛。
    • +
    +
  • +
+

4. 调节脑-肠轴功能的药物(精神类药物)

+

对于伴有明显焦虑、抑郁或常规治疗无效的顽固性腹痛患者,医生可能会考虑使用低剂量的抗抑郁药。

+
    +
  • 三环类抗抑郁药 (TCAs)(如阿米替林): 低剂量使用可以有效缓解IBS的慢性腹痛,其抗胆碱能作用也有助于控制腹泻。
  • +
  • 选择性5-羟色胺再摄取抑制剂 (SSRIs)(如氟西汀、帕罗西汀): 可用于伴有便秘和焦虑的IBS患者。
  • +
+
    +
  1. 益生菌 (Probiotics)
  2. +
+

补充特定的益生菌菌株(如某些双歧杆菌和乳酸杆菌)有助于恢复肠道微生态平衡,改善腹胀和总体症状。不同菌株效果各异,需根据产品说明和医生建议选用。

+]]>
+ + Medicine + +
由甲醛开始的碎碎念 /2025/07/11/fuck-hcho/ @@ -3166,80 +3243,15 @@ A relation table (also sometimes called a JOIN, link or pi - 肠易激综合征 (IBS) 的病理学与药物治疗 - /2025/06/30/ibs/ - 肠易激综合征 (Irritable Bowel Syndrome, IBS) 是一种常见的功能性胃肠病。其核心特征是在没有发现任何器质性病变(如炎症、溃疡或肿瘤)的情况下,患者长期经历腹痛、腹胀,并伴有排便习惯的改变(腹泻、便秘或两者交替)。

-

一、 肠易激综合征的病理生理学

-

IBS 的病理生理机制非常复杂,并非由单一原因导致,而是多种因素相互作用的结果。目前的医学研究认为,其主要与以下几个核心机制有关:

-

1. 脑-肠轴功能紊乱 (Disorders of the Brain-Gut Axis)

-

这是 IBS 最核心的病理机制。大脑和肠道通过神经、内分泌和免疫系统形成一个双向沟通的“脑-肠轴”。在 IBS 患者中,这个轴的功能出现紊乱。

-
    -
  • 自上而下: 心理压力、焦虑、抑郁等负面情绪可以直接通过大脑影响肠道的运动、感觉和分泌功能,从而诱发或加重症状。
  • -
  • 自下而上: 肠道内的信号(如食物、气体、肠道菌群代谢产物)被过度放大后传给大脑,导致大脑对这些正常刺激产生过度反应,表现为疼痛和不适。
  • -
-

2. 内脏高敏感性 (Visceral Hypersensitivity)

-

这是指 IBS 患者的肠道对各种刺激(如食物、气体、肠壁的牵拉)异常敏感。正常人可以耐受的肠道内压力或活动,在 IBS 患者身上却会引发强烈的腹痛、急便感或不适。这种“放大”的感觉是 IBS 腹痛的主要原因。

-

3. 胃肠动力异常 (Altered Gut Motility)

-

肠道肌肉的收缩和舒张节律出现问题,导致食物和粪便在肠道内的转运速度异常。

-
    -
  • 转运过快: 肠道内容物过快通过结肠,水分来不及被充分吸收,导致腹泻(IBS-D)。
  • -
  • 转运过慢: 肠道蠕动乏力,粪便在结肠内停留时间过长,水分被过度吸收,导致便秘(IBS-C)。
  • -
  • 节律紊乱: 有时快有时慢,导致腹泻与便秘交替出现(IBS-M)。
  • -
-

4. 肠道微生态失调 (Alteration in Gut Microbiota)

-

IBS 患者的肠道菌群组成和功能与健康人存在差异。有害菌可能增多,有益菌(如双歧杆菌、乳酸杆菌)可能减少。这些失调的菌群会影响肠道屏障功能、产生过多气体、并激活免疫系统,导致腹胀和腹泻。

-

5. 肠道低度炎症与免疫激活 (Low-Grade Inflammation and Immune Activation)

-

部分 IBS 患者的肠道黏膜中可以观察到轻微的炎症反应,例如肥大细胞等免疫细胞数量增多并被激活。这些细胞会释放组胺、5-羟色胺等物质,直接刺激肠道神经,引起疼痛和动力异常。这种情况尤其在感染性肠炎后发生的 IBS(PI-IBS)中更为常见。

-

6. 遗传与饮食因素

-
    -
  • 遗传: IBS具有一定的家族聚集性,提示可能存在遗传易感性。
  • -
  • 饮食: 某些食物,特别是含有高FODMAPs(可发酵的寡糖、双糖、单糖和多元醇)的食物,在小肠内难以被吸收,进入大肠后被细菌快速发酵,产生大量气体并增加肠道渗透压,从而诱发腹胀、腹痛和腹泻。
  • -
-

二、 肠易激综合征的药物治疗

-
-

IBS的治疗需要个体化,所有药物都应在医生指导下使用。医生应该根据具体的 IBS 亚型(腹泻型、便秘型、混合型)和主要症状来选择最合适的药物。

-
-

针对主要症状的药物

-

1. 针对腹痛和腹胀(解痉药)

-

这类药物通过放松肠道平滑肌,缓解肠道痉挛来减轻疼痛。

-
    -
  • 匹维溴铵 (Pinaverium Bromide): 作用于肠道平滑肌的钙离子通道,选择性高,副作用较小。
  • -
  • 奥替溴铵 (Otilonium Bromide): 与匹维溴铵类似,对结肠有较高的亲和力。
  • -
  • 马来酸曲美布汀 (Trimebutine Maleate): 具有双向调节作用,在肠道动力过快时抑制它,过慢时促进它,对腹痛、腹泻和便秘都有一定效果。
  • -
  • 薄荷油 (Peppermint Oil): 是一种天然的解痉剂,其肠溶胶囊可以有效缓解腹痛和腹胀。
  • -
-

2. 针对腹泻 (IBS-D)

-
    -
  • 洛哌丁胺 (Loperamide): 是一种止泻药,能减慢肠道蠕动,增加水分吸收。适用于急性腹泻发作,但不宜长期连续使用。
  • -
  • 蒙脱石散 (Montmorillonite Powder): 是一种肠道黏膜保护剂,能吸附肠道内的病菌和毒素,并覆盖在肠壁上形成保护层。
  • -
  • 利福昔明 (Rifaximin): 一种几乎不被肠道吸收的抗生素,可以调节肠道菌群,减少有害菌和产气,对改善腹泻和腹胀有良好效果。
  • -
  • 5-HT₃受体拮抗剂(如阿洛司琼 Alosetron): 能显著减缓肠道转运、减轻内脏敏感性。因可能引起严重便秘和缺血性结肠炎等副作用,使用受到严格限制,通常仅用于其他治疗无效的重度女性IBS-D患者。
  • -
  • 胆汁酸螯合剂(如考来烯胺 Cholestyramine): 适用于因胆汁酸吸收不良导致的腹泻型IBS。
  • -
-

3. 针对便秘 (IBS-C)

-
    -
  • 容积性泻药(如欧车前、聚卡波非钙): 通过吸收水分增加粪便体积,刺激肠道蠕动。使用时需饮用足量水,否则可能加重便秘。
  • -
  • 渗透性泻药(如聚乙二醇 PEG、乳果糖): 通过在肠道内形成高渗环境,将水分保留在肠腔内,软化粪便,促进排便。相对安全,适合长期使用。
  • -
  • 促分泌药: -
      -
    • 鲁比前列酮 (Lubiprostone): 激活肠道氯离子通道,增加肠液分泌,软化粪便。
    • -
    • 利那洛肽 (Linaclotide)、普卡那肽 (Plecanatide): 激活鸟苷酸环化酶-C,促进肠液分泌,并能一定程度上缓解腹痛。
    • -
    -
  • -
-

4. 调节脑-肠轴功能的药物(精神类药物)

-

对于伴有明显焦虑、抑郁或常规治疗无效的顽固性腹痛患者,医生可能会考虑使用低剂量的抗抑郁药。

-
    -
  • 三环类抗抑郁药 (TCAs)(如阿米替林): 低剂量使用可以有效缓解IBS的慢性腹痛,其抗胆碱能作用也有助于控制腹泻。
  • -
  • 选择性5-羟色胺再摄取抑制剂 (SSRIs)(如氟西汀、帕罗西汀): 可用于伴有便秘和焦虑的IBS患者。
  • -
-
    -
  1. 益生菌 (Probiotics)
  2. -
-

补充特定的益生菌菌株(如某些双歧杆菌和乳酸杆菌)有助于恢复肠道微生态平衡,改善腹胀和总体症状。不同菌株效果各异,需根据产品说明和医生建议选用。

+ Linux 下 AMD 显卡屏幕画面闪烁问题修复方案 + /2025/04/20/linux-amd-screen-boom/ + 不知道我们所说的闪烁是不是一个东西,在我的笔记本上,闪烁是指偶发的屏幕中出现部分彩色雪花。

+

我使用 Pop!_OS,此发行版使用 EFI 启动,故而可以在 /boot/efi/loader/loader.conf 中加上:

+
options quiet splash amdgpu.dcdebugmask=0x10 amdgpu.sg_display=0
+

对于其他使用 EFI 或 GRUB 启动的发行版也可以添加类似的参数尝试尝试。

]]>
- Medicine + Technique
@@ -3249,18 +3261,6 @@ A relation table (also sometimes called a JOIN, link or pi
libdecor-gtk-WARNING: Failed to initialize GTK

这是因为 VSCode 默认使用 X11,可以使用以下参数启动 VSCode:

code --enable-features=UseOzonePlatform --ozone-platform=wayland
-]]> - - Technique - -
- - Linux 下 AMD 显卡屏幕画面闪烁问题修复方案 - /2025/04/20/linux-amd-screen-boom/ - 不知道我们所说的闪烁是不是一个东西,在我的笔记本上,闪烁是指偶发的屏幕中出现部分彩色雪花。

-

我使用 Pop!_OS,此发行版使用 EFI 启动,故而可以在 /boot/efi/loader/loader.conf 中加上:

-
options quiet splash amdgpu.dcdebugmask=0x10 amdgpu.sg_display=0
-

对于其他使用 EFI 或 GRUB 启动的发行版也可以添加类似的参数尝试尝试。

]]>
Technique @@ -3778,18 +3778,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的

时光对谁都不温柔,愿意对我温柔的,只有身边陪我一起迎接时光洗礼的人。

宇宙中也不会有什么声音, 视觉上再震撼的毁灭也只是发生在沉默之中。

一切重新沉寂下来。

-]]> - - gallery - -
- - 二〇二三年六月二十九日 - /2023/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/ - 我能走遍大街小巷,但我走不出时间,这里有太多东西网住我了,每一个不知所措的老人家,每一个满身泥土的农民,每一只嬉戏打闹的猫狗和每一寸土地下的家人。

-

我知道,能明确感受到,远处的风力发电机每转一圈我对这里的牵挂就更深一点,太阳每次升到我头顶都会把我的身体压进泥土里一点。

-

夕阳下的街头空无一人,窗户间的缝隙吹来寒风,隔壁回锅肉的香味混在其中,困顿中还有美好的可能,所以别让自己太过消沉。

-

所以别让自己太过消沉。

]]>
gallery @@ -3802,6 +3790,18 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的

我们渴望什么,生活就拿走什么。我们害怕什么,时间就带来什么。我们不断下沉,下沉。仿佛同这漫长的人生一样,等不到尽头。

而衣冠立于浊世,先是个体,然后结对,最后成群,这一生总要有这样那样的分别,迈过这一年,再过下一年,有多少这样的每一年。

这世上也不是所有事都算得准的。

+]]> + + gallery + +
+ + 二〇二三年六月二十九日 + /2023/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/ + 我能走遍大街小巷,但我走不出时间,这里有太多东西网住我了,每一个不知所措的老人家,每一个满身泥土的农民,每一只嬉戏打闹的猫狗和每一寸土地下的家人。

+

我知道,能明确感受到,远处的风力发电机每转一圈我对这里的牵挂就更深一点,太阳每次升到我头顶都会把我的身体压进泥土里一点。

+

夕阳下的街头空无一人,窗户间的缝隙吹来寒风,隔壁回锅肉的香味混在其中,困顿中还有美好的可能,所以别让自己太过消沉。

+

所以别让自己太过消沉。

]]>
gallery @@ -3939,6 +3939,15 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的 二〇二五年四月三日 /2025/04/03/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%89%E6%97%A5/ 日历被一页页撕去,出钞口的暖风比任何毛毯更忠实,数字键盘的荧光就像圣徒光环般笼罩着我。

+]]>
+ + gallery + +
+ + 二〇二五年六月二十九日 + /2025/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/ + 我很想你们。

]]>
gallery @@ -3966,15 +3975,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的

直到他们在梦中期待新的一天中无限的未来。

可惜这都与我无关,那是我在学校的最后一天,我和他们一起放假,再也没回过学校。

但我当天的确睡了个好觉。

-]]> - - gallery - -
- - 二〇二五年六月二十九日 - /2025/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/ - 我很想你们。

]]>
gallery @@ -4105,6 +4105,22 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的 傍晚的海风带着盐的咸味和鱼网的腥气吹上岸。她独自站在礁石上眺望。巨大的海面起伏不定,深蓝的尽头与灰暗的天空交融成一个模糊的线。巨大的落日悬浮其上,像一颗即将坠入海面的橙红心脏。霞光将她的脸庞染成暖色。海风掀起她披在肩上的丝巾,丝巾像一面旗帜在身后猎猎作响。她深深吸了一口气,咸冷的空气涌入肺腑,带着一种辽阔的清醒。

时间会带走了一个人,也带走了他的呼吸,他的声音,他掌心的温度。但似乎又留下了些什么

光的颗粒在空气里浮动,在记忆里游走,她闭上眼睛,光从睫毛上滑过,像许多个早晨,像许多个傍晚,像她们再次相遇的无数个灿然的瞬间。她在其中走走停停,像一粒微尘,又像一颗星。

+]]>
+ + gallery + +
+ + 二〇二五年十月十九日 + /2025/10/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/ + 漫天光雨里,白色编织绳正死死勒着小狗发胀的脖颈,上周他们追上门时,他在混乱中失手系上了死结。

+

“对不起…”

+

“对不起啊…”

+

一遍遍呢喃,泪水在脸上结成透明的冰壳。新年的钟声穿过街巷抵达这里时,他发现怀里抱着的不过是条破毯子。

+

烟花熄灭后的黑暗从四面八方涌来。远处人家的暖光透过窗棂,在积雪上切割出方方正正的金色牢笼。

+

他蜷缩在冰冷的水泥台上,看着自己的影子被月光钉死在斑驳的广告牌上。

+

"除夕快乐。"他对广告牌上褪色的月饼海报说。海报里笑得喜庆的孩子嘴角开裂,被寒风吹起一角。

+

雪落满了他的睫毛。

]]>
gallery @@ -4123,22 +4139,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的

于是我想给你那朵黄玫瑰的记忆。不是因为我想要你变成她的样子,而是因为我在你身上看见了自己喜欢的那种安静和从容。我想让你在今后的某一天,当公交门打开,站台忽然安静下来,当你走在一条熟悉的路上,风从树梢里穿过,当你坐在窗边,光从书页上滑过去的时候,能闻到那种味道,能想起那一刻的我们,我们在傍晚的风里站着,既不躲藏也不假装,我们把时间握在手里,像握着一朵温柔得让人不需要理由的花。

如果你愿意,我可以每天傍晚经过花店门口,我们可以把那种味道带回家,用一只透明的瓶子装起来,不需要解释它来自哪里,也不需要把它和任何过去比较。它只会在你需要的时候出现,像一个老朋友,提醒你,不是每一次都要变成别人,不是每一次都需要证明你已经忘记。你可以是现在的你,我可以是现在的我。我们可以在同一个黄昏里站一会儿,看看天空从浅到深,看看风从我们旁边走过,看看影子在我们的脚边拉长。

黄玫瑰的味道不会要求我们变成谁,它只会给我们一点轻的力气,让我们在时间里往前走走。我把这份力气给你,也给我自己,然后我们就接着往前走,带着这种不喧哗的光。

-]]> - - gallery - -
- - 二〇二五年十月十九日 - /2025/10/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/ - 漫天光雨里,白色编织绳正死死勒着小狗发胀的脖颈,上周他们追上门时,他在混乱中失手系上了死结。

-

“对不起…”

-

“对不起啊…”

-

一遍遍呢喃,泪水在脸上结成透明的冰壳。新年的钟声穿过街巷抵达这里时,他发现怀里抱着的不过是条破毯子。

-

烟花熄灭后的黑暗从四面八方涌来。远处人家的暖光透过窗棂,在积雪上切割出方方正正的金色牢笼。

-

他蜷缩在冰冷的水泥台上,看着自己的影子被月光钉死在斑驳的广告牌上。

-

"除夕快乐。"他对广告牌上褪色的月饼海报说。海报里笑得喜庆的孩子嘴角开裂,被寒风吹起一角。

-

雪落满了他的睫毛。

]]>
gallery @@ -4635,18 +4635,18 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的
- 二零二二年八月二十一日 - /2022/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/ - 不管是什么样的生活,都只是为了让自己满意,我这样活着,没什么不满的,我很痛快。这世上所有东西,我留意它时,它就存在,不留意时,它就是虚无。幸运的是我留意的事物很少,不致于身心劳碌一生奔忙。岁月会锤炼我一副丰满的灵魂和清瘦的欲望。

+ 二零二二年十一月月三日 + /2022/11/03/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E6%9C%88%E4%B8%89%E6%97%A5/ + 我独自冒着冷风,去薄霜铺地的林子里,为听鸟语,为盼朝阳,为寻泥土里渐次苏醒的花草,但春信不至。我是如此单独而完整,在无数个夜晚,独自顶着冷风 伫立在老橘树下的桥头,只为听一曲夜莺的哀歌,倚暖了石栏上的青苔,青苔凉透了我的心坎,但夜莺不来,夜莺不来。

]]>
gallery
- 二零二二年十一月月三日 - /2022/11/03/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E6%9C%88%E4%B8%89%E6%97%A5/ - 我独自冒着冷风,去薄霜铺地的林子里,为听鸟语,为盼朝阳,为寻泥土里渐次苏醒的花草,但春信不至。我是如此单独而完整,在无数个夜晚,独自顶着冷风 伫立在老橘树下的桥头,只为听一曲夜莺的哀歌,倚暖了石栏上的青苔,青苔凉透了我的心坎,但夜莺不来,夜莺不来。

+ 二零二二年八月二十一日 + /2022/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/ + 不管是什么样的生活,都只是为了让自己满意,我这样活着,没什么不满的,我很痛快。这世上所有东西,我留意它时,它就存在,不留意时,它就是虚无。幸运的是我留意的事物很少,不致于身心劳碌一生奔忙。岁月会锤炼我一副丰满的灵魂和清瘦的欲望。

]]>
gallery @@ -4739,18 +4739,17 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的 体质指数与血脂异常的年龄依赖性关联:患病率轨迹与因果效应修饰 /2026/08/15/%E4%BD%93%E8%B4%A8%E6%8C%87%E6%95%B0%E4%B8%8E%E8%A1%80%E8%84%82%E5%BC%82%E5%B8%B8%E7%9A%84%E5%B9%B4%E9%BE%84%E4%BE%9D%E8%B5%96%E6%80%A7%E5%85%B3%E8%81%94/ - "胖的人血脂容易高"大概是体检报告时代最深入人心的常识之一。这句话在人群层面确实成立:BMI 与血脂异常之间存在明确的剂量-反应关系,且因果性获得了孟德尔随机化研究的支持[1]。但常识往往在加上"年龄"这个维度后变得复杂起来——同样的 BMI,在不同年龄段对血脂的影响并不相同,甚至可能反转。

-

患病率:一条倒 U 形的年龄轨迹

-

先看年龄本身。中国成人血脂异常患病率随年龄递增,但进入老年期后趋势反转:

+ "胖的人血脂容易高"大概是体检报告时代最深入人心的常识之一。这句话在人群层面确实成立:BMI 与血脂异常之间存在明确的剂量-反应关系,因果性也获得了孟德尔随机化研究的支持[1]。但常识加上"年龄"这个维度后就变得复杂——同样的 BMI,在不同年龄段对血脂的影响并不相同,甚至可能反转。

+

患病率:一条倒 U 形的年龄轨迹

+

先看年龄本身。中国成人血脂异常患病率随年龄递增,进入老年期后趋势反转:

    -
  • 四川三县横断面(11 561 人):18–44 岁 20.6% → 45–59 岁 29.8% → ≥60 岁 32.9%[2];
  • -
  • 中国老年人 Meta 分析(19 项横断面、101 831 人):60–69 岁 39.9% 达峰,70–79 岁降至 31.8%,≥80 岁 31.4%[3]。
  • +
  • 四川三县横断面(11 561 人):18–44 岁 20.6% → 45–59 岁 29.8% → ≥60 岁 32.9%[2];
  • +
  • 中国老年人 Meta 分析(19 项横断面、101 831 人):60–69 岁 39.9% 达峰,70–79 岁降至 31.8%,≥80 岁 31.4%[3]。
-

两条独立数据链拼出同一形态:成年期线性攀升、60 岁前后达峰、高龄回落。

+

两条独立数据链拼出同一形态:成年期线性攀升、60 岁前后达峰、高龄回落。两个口径的老年组数值差异(32.9% vs 39.9%)源于地区差异与纳入研究年代,方向一致。全国 2018 年高胆固醇血症年龄标化患病率较 2015 年近乎翻倍(4.9% → 8.2%),"高 TC"型是近期增长最快的亚型,且集中于中老年[4]。

中国成人血脂异常患病率的年龄轨迹

-

两个口径的老年组数值差异(32.9% vs 39.9%)源于地区差异与纳入研究年代,方向一致。全国 2018 年高胆固醇血症年龄标化患病率较 2015 年近乎翻倍(4.9% → 8.2%),"高 TC"型是近期增长最快的亚型,且集中于中老年[4]。

-

关键反转:BMI 对血脂的因果效应随龄衰减

-

Fall 2015 的孟德尔随机化研究用 32 个 BMI 相关遗传位点做工具变量,按 <55 岁与 ≥55 岁分层,给出了一个反直觉的结果[5]:

+

关键反转:BMI 对血脂的因果效应随龄衰减

+

Fall 2015 的孟德尔随机化研究用 32 个 BMI 相关遗传位点做工具变量,按 <55 岁与 ≥55 岁分层,给出一个出人意料的结果[5]:

@@ -4787,37 +4786,33 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的
-

效应量单位:每 1 SD BMI(约 4.8 kg/m²)对应的血脂 SD 变化。

+

效应量单位:每 1 SD BMI(约 4.8 kg/m²)对应的血脂 SD 变化。

BMI→血脂组分的孟德尔随机化因果效应:<55 岁 vs ≥55 岁

-

解读要点:

+

解读要点:

    -
  1. 胆固醇组分(LDL-C、总胆固醇)的 BMI 因果效应在 ≥55 岁后消失甚至反转——年龄越大,同样程度的体重增加带来的胆固醇恶化越弱;
  2. -
  3. TG 与 HDL-C 的效应保留但减弱——"肥胖驱动的高 TG + 低 HDL"表型不随龄消失,这是老年期体重管理仍然重要的依据;
  4. -
  5. ≥55 岁总胆固醇因果效应为负(−0.19)不代表"老年肥胖保护胆固醇",更可能是他汀使用、选择偏倚与反向因果的残留混杂[5:1]。
  6. +
  7. 胆固醇组分(LDL-C、总胆固醇)的 BMI 因果效应在 ≥55 岁后消失甚至反转——年龄越大,同样程度的体重增加带来的胆固醇恶化越弱;
  8. +
  9. TG 与 HDL-C 的效应保留但减弱——"肥胖驱动的高 TG + 低 HDL"表型不随龄消失,这是老年期体重管理仍然重要的依据;
  10. +
  11. ≥55 岁总胆固醇因果效应为负(−0.19)不代表"老年肥胖保护胆固醇",更可能是他汀使用、选择偏倚与反向因果的残留混杂[5:1]。
-

观察性分析与之一致:<55 岁 LDL-C 每 SD BMI +0.16、TC +0.12,≥55 岁分别降至 +0.02 与 0.00(均不显著)[5:2]。

-

筛检效能:老年期腰围胜过 BMI

-

BMI 判别血脂异常的效能也随龄衰减。NHANES 1999–2020 共 58 712 人:BMI 与腰高比对高血压、血脂异常、糖尿病的判别性能随年龄递增而下降,老年人中关联呈 J 形并在较高肥胖水平进入平台[6]。韩国 2022–2023 国民健康调查 8 900 人比较 7 个肥胖指标,所有指标判别力在 50 岁后下降,腰高比与身体圆度指数在年轻与中年成人中最优[7]。

-

英国生物库 368 274 人另显示方向性差异:LDL-C 与冠心病的关联随龄递减(HR 从 <50 岁的 1.35 降至 ≥65 岁的 1.08),而 BMI 与冠心病的关联不随龄衰减(各年龄组 HR 1.11–1.15)[8]——老年期"BMI 影响健康结局"的通道部分绕过血脂,但不能因此认为老年肥胖无害。

-

性别×年龄:绝经是隐藏的转折点

-

山西农村 26 378 人(45–69 岁)显示:女性 TC、TG、LDL-C 患病率随年龄上升,男性则平稳甚至下降;女性各类血脂异常患病率均高于男性,仅低 HDL-C 为男性更高[9]。老年人 Meta 分析同向:女性血脂异常总患病率 48.8% 高于男性 39.5%,高 TC 24.0% vs 12.9%[3:1]。

-

机制上绝经是关键节点——雌激素下降导致 LDL 清除减慢、内脏脂肪增加,女性血脂在围绝经期陡升,形成"老年女性患病率反超男性"的交叉[10]。

+

观察性分析与之一致:<55 岁 LDL-C 每 SD BMI +0.16、TC +0.12,≥55 岁分别降至 +0.02 与 0.00(均不显著)[5:2]。

+

筛检效能:老年期腰围胜过 BMI

+

BMI 判别血脂异常的效能也随龄衰减。NHANES 1999–2020 共 58 712 人:BMI 与腰高比对高血压、血脂异常、糖尿病的判别性能随年龄递增而下降,老年人中关联呈 J 形并在较高肥胖水平进入平台[6]。韩国 2022–2023 国民健康调查 8 900 人比较 7 个肥胖指标,所有指标判别力在 50 岁后下降,腰高比与身体圆度指数在年轻与中年成人中最优[7]。

+

英国生物库 368 274 人另显示方向性差异:LDL-C 与冠心病的关联随龄递减(HR 从 <50 岁的 1.35 降至 ≥65 岁的 1.08),而 BMI 与冠心病的关联不随龄衰减(各年龄组 HR 1.11–1.15)[8]——老年期"BMI 影响健康结局"的通道部分绕过血脂,但不能因此认为老年肥胖无害。

+

性别×年龄:绝经是隐藏的转折点

+

山西农村 26 378 人(45–69 岁)显示:女性 TC、TG、LDL-C 患病率随年龄上升,男性则平稳甚至下降;女性各类血脂异常患病率均高于男性,仅低 HDL-C 为男性更高[9]。老年人 Meta 分析同向:女性血脂异常总患病率 48.8% 高于男性 39.5%,高 TC 24.0% vs 12.9%[3:1]。

+

机制上绝经是关键节点——雌激素下降导致 LDL 清除减慢、内脏脂肪增加,女性血脂在围绝经期陡升,形成"老年女性患病率反超男性"的交叉[10]。

为什么老年期关联会衰减

+

四类机制叠加,很难拆开。其一是体成分重组:中老年期肌肉量下降、内脏脂肪随龄增加,BMI 可以不变而代谢风险上升——中国 45–90 岁体检人群肌少性肥胖患病率 8.4%,系统性炎症指数每升高 1 SD,肌少性肥胖 OR 在中年 1.69、老年 2.52[11]。其二是健康选择效应:血脂异常与心血管病高风险者更早死亡或已接受降脂治疗,存活到高龄的人群"未被治疗的血脂异常"比例自然下降[5:3]。其三是治疗混杂:他汀等降脂药在老年人群使用率更高,压低实测血脂水平[12]。其四是遗传异质性的年龄表达:BMI–血脂的局部遗传相关位点存在保护性变异,年龄越大,非 BMI 因素在血脂水平中的占比越高[13]。

+

对筛查和临床的落地含义

    -
  • 体成分重组:中老年期肌肉量下降、内脏脂肪随龄增加,BMI 可以不变而代谢风险上升;中国 45–90 岁体检人群肌少性肥胖患病率 8.4%,系统性炎症指数每升高 1 SD,肌少性肥胖 OR 在中年 1.69、老年 2.52[11];
  • -
  • 健康选择效应:血脂异常与心血管病高风险者更早死亡或已接受降脂治疗,存活到高龄的人群"未被治疗的血脂异常"比例自然下降[5:3];
  • -
  • 治疗混杂:他汀等降脂药在老年人群使用率更高,压低实测血脂水平[12];
  • -
  • 遗传异质性的年龄表达:BMI–血脂的局部遗传相关位点存在保护性变异,年龄越大,非 BMI 因素(基因、年龄本身)在血脂水平中的占比越高[13]。
  • +
  • 45–59 岁是 BMI 筛选血脂异常效率最高的窗口——中青年肥胖者应优先筛查;
  • +
  • 60 岁以上别拿"BMI 正常"排除血脂异常——联合腰围/腰高比,必要时直接测血脂;
  • +
  • 绝经后女性无论 BMI 都是高概率人群——老年女性高 TC/TG 型比例高,老年男性低 HDL-C 型比例高;
  • +
  • 老年 BMI 对血脂效应弱 ≠ 减重无益——TG/HDL 通道保留,且 BMI–冠心病关联不随龄衰减[8:1];
  • +
  • 以降脂为终点的临床试验应预设年龄分层分析:中青年入组者预期 TG 变化幅度大于老年入组者,≥55 岁受试者的 LDL-C 终点对 BMI 干预不敏感,应以 TG/HDL-C 或非 HDL-C 为主[5:4]。
-

对筛查和临床的落地含义

-
    -
  1. 45–59 岁是 BMI 筛选血脂异常效率最高的窗口——中青年肥胖者应优先筛查;
  2. -
  3. 60 岁以上别拿"BMI 正常"排除血脂异常——联合腰围/腰高比,必要时直接测血脂;
  4. -
  5. 绝经后女性无论 BMI 都是高概率人群——老年女性高 TC/TG 型比例高,老年男性低 HDL-C 型比例高;
  6. -
  7. 老年 BMI 对血脂效应弱 ≠ 减重无益——TG/HDL 通道保留,且 BMI–冠心病关联不随龄衰减[8:1];
  8. -
  9. 以降脂为终点的临床试验应预设年龄分层分析:中青年入组者预期 TG 变化幅度大于老年入组者,≥55 岁受试者的 LDL-C 终点对 BMI 干预不敏感,应以 TG/HDL-C 或非 HDL-C 为主[5:4]。
  10. -
-

一个值得记住的总结:BMI 与血脂的关联是真实的、因果的,但它是一条会随年龄衰减的关联——患病率在 60 岁前后达峰后回落,BMI 对胆固醇的因果效应在 55 岁后消失甚至反转,而 TG/HDL 通道和心血管保护效应保留。年龄不是简单的混杂,而是这条关联的修饰者。

+

结论

+

BMI 与血脂的关联是真实的、因果的,但它是一条会随年龄衰减的关联:患病率在 60 岁前后达峰后回落,BMI 对胆固醇的因果效应在 55 岁后消失甚至反转,而 TG/HDL 通道和心血管保护效应保留。年龄不是简单的混杂,而是这条关联的修饰者——筛查策略和临床试验设计都应把年龄写进参数,而不是事后分层。


参考文献


@@ -7134,50 +7129,50 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的 血清胆红素水平与冠心病风险:从抗氧化机制到遗传流行病学的证据综述 /2026/08/15/%E8%A1%80%E6%B8%85%E8%83%86%E7%BA%A2%E7%B4%A0%E6%B0%B4%E5%B9%B3%E4%B8%8E%E5%86%A0%E5%BF%83%E7%97%85%E9%A3%8E%E9%99%A9/ - 体检报告上"间接胆红素轻度升高"是一个很常见的发现。多数时候医生会说"没事,可能是吉尔伯特综合征",但网上流传着另一种说法:胆红素高的人心脏更好,因为胆红素是强效抗氧化剂。这个说法从 1987 年一篇《Science》论文开始,经历了从机制、临床观察到大型遗传学研究的完整验证,最后得到的结论比想象中复杂得多——它部分成立,但"升高胆红素能保护心脏"这个因果命题,在目前最强的证据里并不成立。

-

起点:1987 年,胆红素被重新定义

-

在 1987 年之前,胆红素在医学教科书里的身份是血红素分解的"有毒废料"——新生儿黄疸、肝病黄疸的主角。加州大学伯克利分校的 Stocker 和 Ames 团队首次证明:未结合(间接)胆红素其实是一种极其强效的脂溶性抗氧化剂[1]。

-
    -
  • 在生理组织氧浓度(2% 氧)下,胆红素抑制脂质过氧化的效率超过 α-生育酚(维生素 E)——后者当时被认为是脂质过氧化最强的内源性抗氧化剂;
  • -
  • 1 分子白蛋白结合型胆红素可清除约 2 分子过氧自由基,血液中正常存在的少量胆红素足以保护白蛋白结合脂肪酸不被氧化[2];
  • -
  • 反应机理是氢原子转移(HAT):供氢基团是四吡咯结构两端二吡咯酮环的 N-H 键,动力学实测 1 分子胆红素可清除约 2 分子过氧自由基[3]。
  • -
-

此后四十年的生化研究不断补充机制:胆红素与 α-生育酚构成协同抗氧化网络(添加胆红素可使维生素 E 的消耗停止)[4];生理浓度胆红素可清除氯胺并抑制髓过氧化物酶(MPO)诱导的蛋白和脂质氧化[5];2020 年后又发现胆红素是 PPAR-α 的选择性内源性配体,能重塑白色脂肪组织代谢,因此被称为"黄色激素"(the yellow hormone)[6][7]。

-

但抗氧化并非无限度:细胞实验显示,细胞内未结合胆红素蓄积超过约 25 ng/mg 蛋白后,从抗氧化转为促氧化并产生细胞毒性[8]——这为"为什么只有轻度升高有益"提供了分子解释。

-

临床观察:低胆红素与冠心病风险

-

机制研究之后,临床流行病学接棒。1994 年 Schwertner 等在血管造影确诊的冠心病男性队列中首次发现:ln(总胆红素)与冠脉疾病严重程度独立负相关,总胆红素下降 50%,处于更严重冠脉疾病分级的几率增加 47%,关联强度"与收缩压相当"[9]。

-

2002 年,查尔斯大学 Vítek 团队做了一个更直接的人群对照:50 例 40 岁以上的吉尔伯特综合征患者 vs 2296 例一般人群,吉尔伯特组缺血性心脏病患病率仅 2%,对照组 12.1%(P<0.05),且吉尔伯特组血清总抗氧化能力显著更高[10]。

-

2006 年弗雷明汉心脏研究把证据推到基因层面:按 UGT1A1*28 基因型(吉尔伯特综合征的遗传基础,人群频率约 11%)分层,7/7 纯合子携带者心血管疾病风险 HR = 0.36(95% CI 0.18–0.74),冠心病 HR = 0.30[11]。这组数据至今仍被广泛引用。

-

后续荟萃分析确认了方向:每升高 1 个标准差胆红素,心血管风险约降 7%–10%[12];生理范围内胆红素升高使首次心梗长期风险降 22%(RR 0.78)[13];卒中风险最高 vs 最低组 RR = 0.85[14]。他汀人群 13 万人数据显示 L 形关联:与 10 μmol/L 相比,5 μmol/L 者心血管事件 +18%、心梗 +34%[15]。

-

不过观察性证据有两个长期被忽视的软肋:一是吸烟混杂——吸烟者 42% 处于胆红素最低四分位,戒烟后胆红素回升,"低胆红素 + 高心血管风险"有一部分是吸烟驱动的[16];二是性别差异——阳性证据大多来自男性,女性中关联弱或不显著[17][18]。

-

分水岭:孟德尔随机化给出否定答案

-

观察性关联无法区分因果与混杂。孟德尔随机化(MR)利用"基因型在受精时随机分配"这一自然实验,绕开吸烟、饮酒、生活方式等混杂,是检验因果性的最强观察设计。这个领域在 2013 年和 2023 年迎来了两次大型否定:

-

哥本哈根三队列 MR(2013):43,708 人测胆红素,67,068 人基因分型,含 11,686 例缺血性心脏病事件。观察性分析中胆红素最高三分位 HR = 0.86,但多因素校正后衰减为 0.93(不显著);而基因型分析(TT vs GG,胆红素升高约 95%)对缺血性心脏病的 OR = 1.03,完全无效。加上既往 8 项研究的荟萃:OR = 1.01(0.88–1.16)。结论原文:“血浆胆红素与缺血性心脏病风险无因果关联”[19]。

-

UK Biobank + FinnGen(2023):46.3 万人基因分型 + 42.9 万人复现。观察性层面,高胆红素与总体健康、心梗、胆固醇等广泛结局强负相关;但遗传学层面,这些负相关在吉尔伯特基因型人群中全部未复现——基因预测的胆红素仅与胆道/肝脏病理显著相关(胆结石 OR = 1.16,P = 5.7×10⁻¹⁶)。结论原文:“遗传学分析提示胆红素对心血管疾病、慢阻肺及其他关键结局无因果保护作用”[20]。

-

这两项研究分别代表欧洲最大样本和全球最大样本,事件数都足以检出真实效应。阴性结果的解释力很强:如果"胆红素保护心脏"的因果效应真实存在,这些设计理应能够发现。

+ 体检报告上"间接胆红素轻度升高"很常见。多数时候医生会说没事,可能是吉尔伯特综合征。网上却流传另一种说法:胆红素高的人心脏更好,因为胆红素是强效抗氧化剂。这个说法从 1987 年一篇《Science》论文开始,经历了从机制、临床观察到大型遗传学研究的完整验证,得到的结论比想象中复杂——它部分成立,但"升高胆红素能保护心脏"这个因果命题,在目前最强的证据里并不成立。

+

1987 年:胆红素被重新定义

+

1987 年之前,胆红素在教科书里的身份是血红素分解的"有毒废料"——新生儿黄疸、肝病黄疸的主角。加州大学伯克利分校的 Stocker 和 Ames 团队首次证明:未结合胆红素是一种极其强效的脂溶性抗氧化剂[1]。

+
    +
  • 在生理组织氧浓度(2%)下,胆红素抑制脂质过氧化的效率超过 α-生育酚(维生素 E),后者当时被认为是脂质过氧化最强的内源性抗氧化剂;
  • +
  • 1 分子白蛋白结合型胆红素可清除约 2 分子过氧自由基,血液中正常存在的少量胆红素足以保护白蛋白结合脂肪酸不被氧化[2];
  • +
  • 反应机理是氢原子转移:供氢基团是四吡咯结构两端二吡咯酮环的 N-H 键,动力学实测 1 分子胆红素可清除约 2 分子过氧自由基[3]。
  • +
+

此后四十年的生化研究不断补全机制。胆红素与 α-生育酚构成协同抗氧化网络,添加胆红素可使维生素 E 的消耗停止[4];生理浓度胆红素可清除氯胺并抑制髓过氧化物酶诱导的蛋白和脂质氧化[5];2020 年后又发现胆红素是 PPAR-α 的选择性内源性配体,能重塑白色脂肪组织代谢,因此被称作"黄色激素"[6][7]。

+

抗氧化并非无限度。细胞实验显示,细胞内未结合胆红素蓄积超过约 25 ng/mg 蛋白后,抗氧化转为促氧化并产生细胞毒性[8]。这解释了为什么只有轻度升高有益。

+

临床观察:低胆红素与冠心病风险相关

+

1994 年,Schwertner 等人在血管造影确诊的冠心病男性队列中发现:ln(总胆红素)与冠脉疾病严重程度独立负相关。总胆红素下降 50%,处于更严重冠脉疾病分级的几率增加 47%,关联强度"与收缩压相当"[9]。

+

2002 年,查尔斯大学 Vítek 团队做了更直接的人群对照:50 例 40 岁以上的吉尔伯特综合征患者 vs 2296 例一般人群,吉尔伯特组缺血性心脏病患病率仅 2%,对照组 12.1%(P<0.05),且吉尔伯特组血清总抗氧化能力显著更高[10]。

+

2006 年弗雷明汉心脏研究把证据推到基因层面:按 UGT1A1*28 基因型(吉尔伯特综合征的遗传基础,人群频率约 11%)分层,7/7 纯合子携带者心血管疾病风险 HR = 0.36(95% CI 0.18–0.74),冠心病 HR = 0.30[11]。这组数据至今仍被广泛引用。

+

后续荟萃分析确认了方向:每升高 1 个标准差胆红素,心血管风险约降 7%–10%[12];生理范围内胆红素升高使首次心梗长期风险降 22%(RR 0.78)[13];卒中风险最高 vs 最低组 RR = 0.85[14]。他汀人群 13 万人数据显示 L 形关联:与 10 μmol/L 相比,5 μmol/L 者心血管事件 +18%、心梗 +34%[15]。

+

观察性证据有两个长期被忽视的软肋。一是吸烟混杂——吸烟者 42% 处于胆红素最低四分位,戒烟后胆红素回升,"低胆红素 + 高心血管风险"有一部分是吸烟驱动的[16]。二是性别差异——阳性证据大多来自男性,女性中关联弱或不显著[17][18]。

+

分水岭:孟德尔随机化给出否定答案

+

观察性关联无法区分因果与混杂。孟德尔随机化(MR)利用"基因型在受精时随机分配"这一自然实验,绕开吸烟、饮酒、生活方式等混杂,是检验因果性的最强观察设计。这个领域在 2013 年和 2023 年迎来了两次大型否定。

+

哥本哈根三队列 MR(2013):43,708 人测胆红素,67,068 人基因分型,含 11,686 例缺血性心脏病事件。观察性分析中胆红素最高三分位 HR = 0.86,但多因素校正后衰减为 0.93(不显著);基因型分析(TT vs GG,胆红素升高约 95%)对缺血性心脏病的 OR = 1.03,完全无效。加上既往 8 项研究的荟萃:OR = 1.01(0.88–1.16)。结论原文:“血浆胆红素与缺血性心脏病风险无因果关联”[19]。

+

UK Biobank + FinnGen(2023):46.3 万人基因分型,42.9 万人复现。观察性层面,高胆红素与总体健康、心梗、胆固醇等广泛结局强负相关;遗传学层面,这些负相关在吉尔伯特基因型人群中全部未复现——基因预测的胆红素仅与胆道/肝脏病理显著相关(胆结石 OR = 1.16,P = 5.7×10⁻¹⁶)。结论原文:“遗传学分析提示胆红素对心血管疾病、慢阻肺及其他关键结局无因果保护作用”[20]。

+

这两项研究分别代表欧洲最大样本和全球最大样本,事件数都足以检出真实效应。如果"胆红素保护心脏"的因果效应真实存在,这些设计理应能够发现。

但事情没有完全结束

-

欧洲的否定不等于全部。亚洲和非洲人群的部分 MR 研究给出了阳性信号:

+

欧洲的否定不等于全部。亚洲和非洲人群的部分 MR 研究给出了阳性信号:

    -
  • 韩/日人群多变量 MR(2024):间接胆红素对缺血性卒中 OR = 0.76,但共定位分析未找到共享因果变异,阳性需谨慎[21];
  • -
  • 非裔人群 MR(2021):胆红素对高血压呈因果保护(β = −0.76)[22];
  • -
  • 中国汉族:上海 2380 例冠脉造影人群,UGT1A1 rs887829 隐性模型与男性冠心病显著负相关(OR = 0.24)[23];东风-同济队列 2 型糖尿病患者中,间接胆红素 Q4 vs Q1 的冠心病 HR = 0.74[24]。
  • +
  • 韩/日人群多变量 MR(2024):间接胆红素对缺血性卒中 OR = 0.76,但共定位分析未找到共享因果变异,阳性需谨慎[21];
  • +
  • 非裔人群 MR(2021):胆红素对高血压呈因果保护(β = −0.76)[22];
  • +
  • 中国汉族:上海 2380 例冠脉造影人群,UGT1A1 rs887829 隐性模型与男性冠心病显著负相关(OR = 0.24)[23];东风-同济队列 2 型糖尿病患者中,间接胆红素 Q4 vs Q1 的冠心病 HR = 0.74[24]。
-

另外 2023 年《Circulation Research》的动物-人联合研究显示,胆红素缺乏小鼠的动脉粥样硬化斑块更不稳定(纤维帽变薄、斑块内出血),人冠脉斑块中血红素代谢上调——机制层面的保护证据仍在积累[25]。

-

而胆结石是唯一在基因型与结局层面完全一致的因果证据:61,212 人前瞻队列 + MR,胆红素最高十分位症状性胆结石 HR = 1.57,TT 纯合基因型 HR = 1.22,存在剂量-反应[26]。

+

2023 年《Circulation Research》的动物-人联合研究显示,胆红素缺乏小鼠的动脉粥样硬化斑块更不稳定(纤维帽变薄、斑块内出血),人冠脉斑块中血红素代谢上调——机制层面的保护证据仍在积累[25]。

+

而胆结石是唯一在基因型与结局层面完全一致的因果证据:61,212 人前瞻队列 + MR,胆红素最高十分位症状性胆结石 HR = 1.57,TT 纯合基因型 HR = 1.22,存在剂量-反应[26]。

几个反直觉的细节

    -
  • 剂量-反应是 U 形,不是越多越好:12 项前瞻研究荟萃显示风险最低点约在 17–20 μmol/L,过低过高都不利[27];
  • -
  • 急性期方向反转:心梗或卒中急性期,高胆红素反而预示更差预后——急性期胆红素升高反映氧化应激负荷,是"损伤标记"而非保护因子。保护作用是长期慢性暴露的属性[13:1][28];
  • -
  • 组分之争:不同研究中间接(未结合)与直接(结合)胆红素方向可能相反[29];
  • -
  • 预测价值有限:加入胆红素后风险模型的 C 指数仅提升 0.0013(P=0.13),没有临床意义的预测增益[12:1]。
  • +
  • 剂量-反应是 U 形,不是越多越好:12 项前瞻研究荟萃显示风险最低点约在 17–20 μmol/L,过低过高都不利[27];
  • +
  • 急性期方向反转:心梗或卒中急性期,高胆红素反而预示更差预后——急性期胆红素升高反映氧化应激负荷,是"损伤标记"而非保护因子。保护作用是长期慢性暴露的属性[13:1][28];
  • +
  • 组分之争:不同研究中间接与直接胆红素方向可能相反[29];
  • +
  • 预测价值有限:加入胆红素后风险模型的 C 指数仅提升 0.0013(P=0.13),没有临床意义的预测增益[12:1]。
-

结论:一个准确的说法

-

把四十年的证据放在一起,最准确的表述是:

+

结论

+

四十年的证据放在一起,最准确的表述是:

-

生理性轻度高胆红素血症(吉尔伯特综合征)是心血管风险的独立反向生物标志物,具有真实而复杂的抗氧化、抗炎与代谢活性;但"胆红素因果性地保护心脏"在欧洲人群最强设计中未获支持,不能作为临床干预的依据。

+

生理性轻度高胆红素血症(吉尔伯特综合征)是心血管风险的独立反向生物标志物,具有真实而复杂的抗氧化、抗炎与代谢活性;但"胆红素因果性地保护心脏"在欧洲人群最强设计中未获支持,不能作为临床干预的依据。

-

对个体而言,体检发现孤立性间接胆红素轻度升高(排除溶血与肝病后)应视为良性状态——既不必因此放松标准的心血管风险管理(血压、血脂、吸烟、运动),也不应被当作"心脏有保护"的免死金牌。对用药而言,吉尔伯特综合征患者使用 UGT1A1 底物药物(如伊立替康)需关注暴露增加。

-

一个常被误读的细节值得记住:2006 年弗雷明汉那篇著名的 HR = 0.36 是基因型-结局关联研究,不是孟德尔随机化;真正的 MR 检验直到 2013 年才由哥本哈根团队完成,而它给出的是否定答案。这个领域的发展轨迹——从乐观叙事到大型否定、再到人群异质性的复杂图景——本身就是流行病学方法学进步的一个标本。

+

对个体而言,体检发现孤立性间接胆红素轻度升高(排除溶血与肝病后)应视为良性状态——既不必因此放松标准的心血管风险管理(血压、血脂、吸烟、运动),也不应被当作"心脏有保护"的免死金牌。对用药而言,吉尔伯特综合征患者使用 UGT1A1 底物药物(如伊立替康)需关注暴露增加。

+

一个常被误读的细节值得记住:2006 年弗雷明汉那篇著名的 HR = 0.36 是基因型-结局关联研究,不是孟德尔随机化;真正的 MR 检验直到 2013 年才由哥本哈根团队完成,而它给出的是否定答案。这个领域的发展轨迹——从乐观叙事到大型否定、再到人群异质性的复杂图景——本身就是流行病学方法学进步的一个标本。


参考文献

胆红素水平与心血管结局:观察性 vs 遗传学证据的关键效应量

-- cgit v1.2.3