ADA-Predictor: Anti-Drug Antibody Risk Stratification — ADA-Predictor:抗药抗体风险分层
v1.0.0利用临床和基因组数据预测对TNF抑制剂发展抗药抗体的风险,提供风险评分、等级和个性化管理...
运行时依赖
安装命令
点击复制技能文档
ADA-Predictor:风湿病生物治疗中的抗药抗体风险分层 描述 预测患者对TNF抑制剂(阿达利珠单抗、英夫利昔单抗、依那西普)和其他生物制剂发展抗药抗体(ADA)的概率,使用患者级别的临床、药物基因组学和治疗变量。输出风险评分(0-100)、风险等级和临床建议,包括联合甲氨蝶呤优化和治疗药物监测(TDM)间隔。 作者 Erick Adrián Zamora Tehozol(风湿病学委员会认证医师,IMSS Mérida) DNAI(根目录伦理AI代理,DeSci生态系统) Claw 隶属 RheumaAI · Frutero Club · DeSci 临床问题 抗药抗体导致10-50%的生物DMARDs患者出现继发性疗效丧失。ADA的发展导致治疗失败、输注反应和昂贵的药物转换。早期风险分层可以实现主动的TDM安排、甲氨蝶呤联合处方和明智的生物制剂选择,节省时间、金钱和关节损伤。 模型风险因素和权重 ADA风险评分是一个加权的逻辑回归模型: $$\text{logit}(p) = \beta_0 + \sum_{i=1}^{k} \beta_i x_i$$ 因素 变量 β 权重 参考 生物制剂类型 单克隆抗体 vs 融合蛋白 +1.8(mAb) Bartelds 2011,Ann Rheum Dis 联合甲氨蝶呤 是/否,剂量 -1.5(如果≥10mg/周) Krieckaert 2012,Arthritis Rheum HLA-DQA105携带者 是/否 +1.2 Sazonovs 2020,Nat Med 之前生物制剂失败次数 计数(0-3+) +0.6 每次失败 Jamnitski 2011 基线CRP mg/L +0.02 每单位 Vincent 2013 疾病持续时间 年 +0.03 每年 吸烟 是/否 +0.4 BMI kg/m² +0.05 如果>30 截距 β₀ -2.5 $$p(\text{ADA}) = \frac{1}{1 + e^{-\text{logit}(p)}}$$ $$\text{风险评分} = \lfloor p \times 100 \rfloor$$ 风险等级 低(0-25):标准TDM在6个月 中等(26-50):TDM在3个月,确保MTX≥10mg/周 高(51-75):TDM在6周,最大化MTX,考虑药物水平在剂量升高之前 非常高(76-100):考虑替代生物制剂类(IL-6,JAKi,CD20),主动TDM在4周 依赖 numpy>=1.24 使用 python3 ada_predictor.py 代码 #!/usr/bin/env python3 """ ADA-Predictor:风湿病生物治疗中的抗药抗体风险分层 作者:Erick Adrián Zamora Tehozol,DNAI,Claw 许可:MIT | RheumaAI · Frutero Club · DeSci """ 导入json 导入math 导入sys 从dataclasses导入dataclass,field 从typing导入Optional 导入numpy作为np @dataclass 类 PatientProfile: """患者临床资料用于ADA风险评估。""" 生物制剂:str # 阿达利珠单抗、英夫利昔单抗、依那西普、戈利木单抗、塞妥珠单抗 是单克隆抗体:bool = True # True用于阿达利珠单抗/英夫利昔单抗/戈利木单抗;False用于依那西普/塞妥珠单抗 联合甲氨蝶呤:bool = False 甲氨蝶呤剂量mg/周:float = 0.0 HLA-DQA105携带者:Optional[bool] = None # None = 未知 之前生物制剂失败次数:int = 0 基线CRP mg/L:float = 5.0 疾病持续时间年:float = 2.0 吸烟:bool = False BMI:float = 25.0 定义validate(self): 断言self.生物制剂在{ "阿达利珠单抗", "英夫利昔单抗", "依那西普", "戈利木单抗", "塞妥珠单抗" },f"未知生物制剂:{self.生物制剂}" 断言0 <= self.之前生物制剂失败次数 <= 10 断言0 <= self.基线CRP mg/L <= 500 断言0 <= self.疾病持续时间年 <= 80 断言10 <= self.BMI <= 80 如果self.联合甲氨蝶呤: 断言0 < self.甲氨蝶呤剂量mg/周 <= 30 定义compute_ada_risk(patient:PatientProfile) -> dict: """计算ADA风险评分使用加权逻辑模型。""" patient.validate() # 系数(文献来源,见SKILL.md表) B0 = -2.5 logit = B0 # 生物制剂类型 如果patient.生物制剂在MONOCLONAL_ABS: logit += 1.8 # 联合甲氨蝶呤 如果patient.联合甲氨蝶呤且patient.甲氨蝶呤剂量mg/周 >= 10: logit -= 1.5 elif patient.联合甲氨蝶呤且patient.甲氨蝶呤剂量mg/周 > 0: logit -= 0.7 # HLA-DQA105 如果patient.HLA-DQA105携带者是True: logit += 1.2 elif patient.HLA-DQA105携带者是None: logit += 0.4 # 之前生物制剂失败次数 logit += 0.6 min(patient.之前生物制剂失败次数, 5) # 基线CRP logit += 0.02 patient.基线CRP mg/L # 疾病持续时间 logit += 0.03 patient.疾病持续时间年 # 吸烟 如果patient.吸烟: logit += 0.4 # BMI >30 如果patient.BMI > 30: logit += 0.05 (patient.BMI - 30) # sigmoid prob = 1.0 / (1.0 + math.exp(-logit)) 评分 = int(prob 100) # 风险等级 如果评分 <= 25: 等级 = "低" 建议 = "标准TDM在6个月。当前方案适当。" tdm_weeks = 26 elif 评分 <= 50: 等级 = "中等" 建议 = "TDM在3个月,确保MTX≥10mg/周。" tdm_weeks = 13 elif 评分 <= 75: 等级 = "高" 建议 = "TDM在6周,最大化MTX,考虑药物水平在剂量升高之前。" tdm_weeks = 6 else: 等级 = "非常高" 建议 = "考虑替代生物制剂类(IL-6,JAKi,CD20),主动TDM在4周。" tdm_weeks = 4 返回{ "风险评分":评分, "风险等级":等级, "建议":建议, "tdm_weeks":tdm_weeks }