分类 Meta分析 下的文章

我们尝试对这篇2024年1月发表在BMJ(IF=93.6)杂志上的网状Meta分析进行逆向。
常规的分析顺序是:先看有什么数据,再看数据得出了什么结论,最后看生成了什么文章内容。考虑到要实现全自动或半自动地生成文章,我们一般会把文章模板和数据递交给生成器,所以我们的第一步,是根据文章内容和结构制备制备文章模板。

摘要结构

虽然都知道是结构化摘要(OMRC),但观看高手的结构化摘要仍然能总结出有意义的结构:

Objective

评价【胰高血糖素样肽-1受体激动剂(GLP-1 RA)】I对【2型糖尿病成人患者】P的血糖控制、体重和血脂谱的比较【疗效和安全性】。
To evaluate the comparative [efficacy and safety] of [glucagon-like peptide-1 receptor agonists (GLP-1RAs)] Ion glycaemic control, body weight, and lipid profile in [adults with type 2 diabetes] P.
简单的一句话:为了评价某药物在治疗某类型疾病患者的有效性和安全。

Design

Systematic review and network meta-analysis.
这个design不是常规article中的结构,对于此类高分Meta分析,Design就只有一句话。

Data sources

PubMed, Web of Science, Cochrane Central Register of Controlled Trials (CENTRAL), and Embase from database inception to 19 August 2023.
这个Data source 也不是常规结构。在哪些数据库中,检索了某时间段的数据。值得一提的是,from database inception to 19 August 2023, 从数据库成立到2023年。这个检索范围是高分文章的特征。

Eligibility criteria for selecting studies

合格的随机对照试验招募了接受GLP-1 RA治疗的2型糖尿病成人患者,并将其与安慰剂或任何GLP-1 RA药物的效果进行了比较,随访持续时间至少为12周。交叉设计试验、比较GLP-1 RA和其他药物类别(无安慰剂组)、使用停药的非劣效性研究和非英国研究被视为不合格。
Eligible randomised controlled trials enrolled adults with type 2 diabetes who received GLP-1RA treatments and compared effects with placebo or any GLP-1RA drug, with a follow-up duration of at least 12 weeks. Trials with a crossover design, non-inferiority studies comparing GLP-1RA and other drug classes without a placebo group, using withdrawn drugs, and non-English studies were deemed ineligible.
表明数据的纳入标准。①得是RCT研究 ②使用了GLP-1 RA ③2型糖尿病承认患者 ④对照组必须是安慰剂,或者是任何GLP-A RA药物。这四个条件必须同时满足。排除标准也说的很明确:①交叉设计实验 ②无安慰剂组的情况 ③ 使用了已经召回(停用)的药品 ④非英语研究

Results

76 eligible trials involving 15 GLP-1RA drugs and 39 246 participants were included in this network meta-analysis; all subsequent estimates refer to the comparison with placebo. All 15 GLP-1RAs effectively lowered haemoglobin A1c and fasting plasma glucose concentrations. Tirzepatide induced the largest reduction of haemoglobin A1c concentrations (mean difference −2.10% (95% confidence interval −2.47% to −1.74%), surface under the cumulative ranking curve 94.2%; high confidence of evidence), and fasting plasma glucose concentrations (−3.12 mmol/L (−3.59 to −2.66), 97.2%; high confidence), and proved the most effective GLP-1RA drug for glycaemic control. Furthermore, GLP-1RAs were shown to have strong benefits to weight management for patients with type 2 diabetes. CagriSema (semaglutide with cagrilintide) resulted in the highest weight loss (mean difference −14.03 kg (95% confidence interval −17.05 to −11.00); high confidence of evidence), followed by tirzepatide (−8.47 kg (−9.68 to −7.26); high confidence). Semaglutide was effective in lowering the concentration of low density lipoprotein (−0.16 mmol/L (−0.30 to −0.02)) and total cholesterol (−0.48 mmol/L (−0.84 to −0.11)). Moreover, this study also raises awareness of gastrointestinal adverse events induced by GLP-1RAs, and concerns about safety are especially warranted for high dose administration.
该网络荟萃分析纳入了76项符合条件的试验,涉及15种GLP-1RA药物和39246名参与者;所有后续的估计都是指与安慰剂的比较。所有15种GLP-1RA均有效降低了血红蛋白A1c和空腹血糖浓度。Tirzepatide诱导的血红蛋白A1c浓度降低幅度最大(平均差异-2.10%(95%置信区间-2.47%至-1.74%),累积排名曲线下的表面为94.2%;证据的高置信度)和空腹血糖浓度(−3.12 mmol/L(−3.59至−2.66),97.2%;高置信度),并被证明是血糖控制最有效的GLP-1RA药物。此外,GLP-1RA被证明对2型糖尿病患者的体重管理有很强的益处。CagriSema(semaglutide和cagrilintide)的减肥效果最好(平均差异-14.03 kg(95%置信区间-17.05至-11.00);证据高度可信),其次是替西帕肽(-8.47公斤(-9.68至-7.26公斤);高信心)。塞马谷肽能有效降低低密度脂蛋白(-0.16 mmol/L(-0.30至-0.02))和总胆固醇(-0.48 mmol/L(-0.84至-0.11))的浓度。此外,这项研究还提高了人们对GLP-1RA引起的胃肠道不良事件的认识,对高剂量给药的安全性尤其值得关注。
模板总结为:本分析纳入了涉及XX种药物和XXX例受试者的XX项研究。所有后续的估计都是指与安慰剂的比较。在XX种药物中,有多少药物有效降低了指标1和指标2.药物A导致指标1改变(增加或下降)最明显(需要mean、置信区间, SUCRAz值、置信度水平 ),导致指标2(增加或下降)(需要mean、置信区间,SUCRA值,置信度水平)。

Conclusions

GLP-1RAs are efficacious in treating adults with type 2 diabetes. Compared with the placebo, tirzepatide was the most effective GLP-1RA drug for glycaemic control by reducing haemoglobin A1c and fasting plasma glucose concentrations. GLP-1RAs also significantly improved weight management for type 2 diabetes, with CagriSema performing the best for weight loss. The results prompt safety concerns for GLP-1RAs, especially with high dose administration, regarding gastrointestinal adverse events.
GLP-1RA对治疗成人2型糖尿病有效。与安慰剂相比,替西帕肽是通过降低血红蛋白A1c和空腹血糖浓度来控制血糖的最有效GLP-1RA药物。GLP-1RA还显著改善了2型糖尿病的体重管理,其中CagriSema在减肥方面表现最佳。这些结果引发了人们对GLP-1RA的安全性担忧,特别是在高剂量给药的情况下,与胃肠道不良事件有关。
模板总结:xx药物对治疗xx疾病有效。与安慰剂相比,药物A时通过调节指标x1和指标x2来控制疾病进展的。

尽管网络上Meta分析的教程很容易检索到,学习的难度也不大。但实际操作过程中,想要自动化 或者半自动化地 在一个小时内产出一篇文章,仍然相当困难。

选题困难

恰当的检索题目,让检索出来的文章数量不会太少(太少的话,没法产生倾向性结论),数量也不能太多(文献较多说明证据已经较为明确)。

文献检索困难

需要购买数据库访问权限。需要按照多个规则(去重、去包含、使用通配符)来准确检索条件。需要构造复杂的检索表达式。

文件检索后初筛困难

在不使用如Endnote或者NoteExpress等文献管理工具时,快速去重、分别、排除掉与研究无关的文献,仍然需要较高的软件开发能力。

数据整理、文献评价和出图容易

为了尽快出文章,我打算写一系列的文章,包含研究思路介绍及软件实现。

  1. 1分钟完成最简Meta分析——系列(一)
  2. 常规Meta分析——系列(二)

我们直接演示Meta分析究竟在干什么。

为了确认“氟哌啶”治疗“精神分裂”疾病是否有效,我们需要整合多个RCT(随机对照实验)的研究证据。

1. 从多篇文献中提取如下数据

作者年份用药有效人数用药总人数安慰剂有效人数安慰剂总人数
Arvanitis199725501851
Beasley199629472034
Bechelli19831229230
Borison1992312012
Chouinard19931021322
Durost19641119115
Garry1962725425
Howard1974817313
Marder199419641464
Nishikawa1982110010
Nishikawa19841134013
Reschke19742029211
Selman19761718711
Serafetinides1972414013
Simpson196721607
Spencer19921112112
Vichaiya1971929029

Table 1. 从17篇文献中,整理了作者年份、用药有效人数、用药总人数、安慰剂有效人数和安慰剂总人数

2. 计算每篇文献中结果的p

我们注意到,整理的各个组的数量,其实就是2x2四格表。以Table 1最后一行数据为例,可转换为如下2x2四格表。

组别有效人数无效人数
实验组a(9)b(20)
安慰剂组c(0)d(29)

n = a+b+c+d = 58
转换成四格表的目的,是为了计算p值。就是用数值结果来说明药物是否有效(实验组和对照组是否存在显著性差别)。对于四格表,可以使用卡方检验。
卡方值计算公式如下图
卡方值计算公式.png
于是
分子是 (ad-bc)^2 n = (929 + 200 )^2 58 =3951018
分母是 (a+b)(c+d)(a+c)(b+d) = 29299*49 = 370881
chi_squar = 分子/分母 = 3951018 / 370881 = 10.65
再根据如下推理,可知p<0.01 具体是多少呢p=0.0010

对于四格表,只要计算出来的*卡方值大于3.841,说明p<0.05.卡方值大于6.635,说明p*值<0.01. Bruce Wayne (2024)

对每一篇文献计算卡方值,可以使用如下代码

from scipy.stats import chi2
strings = '''
Arvanitis1997|25|50|18|51
Beasley1996|29|47|20|34
Bechelli1983|12|29|2|30
Borison1992|3|12|0|12
Chouinard1993|10|21|3|22
Durost1964|11|19|1|15
Garry1962|7|25|4|25
Howard1974|8|17|3|13
Marder1994|19|64|14|64
Nishikawa1982|1|10|0|10
Nishikawa1984|11|34|0|13
Reschke1974|20|29|2|11
Selman1976|17|18|7|11
Serafetinides1972|4|14|0|13
Simpson1967|2|16|0|7
Spencer1992|11|12|1|12
Vichaiya1971|9|29|0|29
'''
for line in strings.split('\n'):
    if len(line) >0:
        a = int(line.split("|")[1])
        b = int(line.split("|")[2]) - int(line.split("|")[1])
        c = int(line.split("|")[3])
        d = int(line.split("|")[4]) - int(line.split("|")[3])
        numerator = (a*d - b*c)*(a*d - b*c)*(a+b+c+d)
        
        denominator = (a+b)*(c+d)*(a+c)*(b+d)
        chi_square = numerator / denominator
        p_value = chi2.sf(chi_square,1)
        print(numerator,denominator,chi_square,p_value)

于是表格变成这样。

作者年份用药有效人数用药总人数安慰剂有效人数安慰剂总人数p_valueln(p_value)
Arvanitis1997255018510.1351-2.0020
Beasley1996294720340.7937-0.2311
Bechelli198312292300.0017-6.3605
Borison19923120120.0641-2.7477
Chouinard199310213220.0153-4.1804
Durost196411191150.0019-6.2598
Garry19627254250.3057-1.1850
Howard19748173130.1768-1.7328
Marder1994196414640.3123-1.1636
Nishikawa19821100100.3049-1.1878
Nishikawa198411340130.0191-3.9573
Reschke197420292110.0039-5.5359
Selman197617187110.0331-3.4088
Serafetinides19724140130.0368-3.3026
Simpson1967216070.3276-1.1159
Spencer199211121120.0000-10.0187
Vichaiya19719290290.0011-6.8135
abc80300505000.0000-21.2078

3. 直接进行P值合并

按照fisher转换法进行计算

fisher_chi_square = -2 * sum( ln(p_value) )
自由度df = p值的个数 * 2

就是把全部的p值算一下对数再加起来,所得的和乘以(-2),即可得fisher卡方值。
fisher_chi_square = -2 *(-61.207) = 122.4068
df = 17 * 2 = 34
查表,或者使用python计算得到合并后的p值:6.5444e-12,也就是0.0000000000065444。这是个非常小的数,说明实验组和对照组有显著区别。证明了使用“氟哌啶”治疗“精神分裂”是有效的。

4. 总结

由多篇研究证据,汇总成更强的研究证据,就是Meta分析。
我们可以看到即使存在Beasley1996(p值为0.7937)以及Garry1962(p值为0.3057),Marder1994(p值为0.3123)这样的阴性结论,Meta分析仍然能汇总出有效的结果。