教程(16):監(jiān)管路徑——把插件放進(jìn)申報信封)
虛擬器官插件開發(fā)教程16監(jiān)管路徑——把插件放進(jìn)申報信封版本聲明塊監(jiān)管文本ICH E14/S7B QA Step 42022-02-21、FDA Federal Register 2022-18515、FDAMA 2.02022-12-29 簽署、FDA《減少臨床前安全性評價動物試驗路線圖》2025-04media/186092及第一年進(jìn)展報告2026-04-20media/191986、歐委會 C(2026) 3497工具/軟件Python 3.11 PyYAML 6.x申報附錄生成心臟插件口徑見第 17 篇、肝插件見第 18 篇、驗證見第 15 篇本文目標(biāo)把插件的仿真輸出落成一份模型能進(jìn)申報信封的合規(guī)骨架并說清它在監(jiān)管里的真實地位——支持性證據(jù)不是強(qiáng)制替代一句話結(jié)論一個心臟安全插件要進(jìn)申報靠的不是CiPA 取代了 TQT而是 ICH E14/S7B QA 把多電流 iPSC-CM ECG 的非臨床綜合風(fēng)險評估納入totality of evidence證據(jù)整體作為支持性證據(jù)——把模型描述含出處 DOI如 CiPAORdv1.0 的10.3389/fphys.2017.00616、輸入溯源、驗證結(jié)果Li 202010.1002/cpt.1647口徑、限制聲明四件套用build_appendix()從 YAML 渲染成 Markdown就是申報附錄的最小可交付。〇、本篇要解決的認(rèn)知問題我的插件算出來的 qNet/肝細(xì)胞損失監(jiān)管到底認(rèn)不認(rèn)它的確切地位是什么CiPA 已經(jīng)取代 TQT 研究這句話能不能寫進(jìn)申報材料模型自帶的驗證第 15 篇和申報文檔本篇是什么關(guān)系為什么缺一不可FDAMA 2.0 與 FDA 2025 路線圖給插件替代動物實驗提供了多大的政策空間邊界又在哪一份能被審評員接受的模型申報附錄到底要包含哪幾塊怎么把它自動化生成一、機(jī)制解析模型證據(jù)在監(jiān)管鏈條里的真實坐標(biāo)先破一個流傳很廣的誤解。CiPA 官網(wǎng)的原話是CiPA 的相關(guān)工作 “was used to inform the ICH E14/S7B Implementation Working Group”被用于為 ICH E14/S7B 實施工作組提供參考。“inform是提供參考輸入”不是取代。E14/S7B QA 的措辭也是非臨床綜合風(fēng)險評估CiPA 式多電流阻滯 hiPSC-CM 臨床 ECG可作為totality of evidence的一部分支持促心律失常風(fēng)險評估。這里的關(guān)鍵詞是 totality of evidence證據(jù)整體首現(xiàn)給英文——模型是證據(jù)鏈里的一環(huán)而不是替代整條鏈。更要注意 CiPA 的 Steering TeamFDA/HESI/CSRC/SPS/EMA/Health Canada/日本 NIHS/PMDA在官網(wǎng)掛了明確 Disclaimer不提供背書或認(rèn)證。這條免責(zé)恰好反過來指導(dǎo)我們——模型必須自帶驗證包因為沒有一個權(quán)威機(jī)構(gòu)會替你的模型簽字。把監(jiān)管坐標(biāo)拆成三層插件開發(fā)者要各就各位層文本/事實對插件的意義表述紅線臨床 ECGE14/S7B QA 以C-QTc 為主要分析接受TQT 替代路徑QA 5.1 與 6.1你的 in silico 結(jié)論要與 C-QTc/I 期 ECG 證據(jù)互證禁寫CiPA 已正式取代 TQT/成為強(qiáng)制方法非臨床綜合多電流 iPSC-CM ECG 納入 totality of evidence支持性插件輸出定位為支持性證據(jù)寫支持性/weight of evidence不寫決定性算法使用細(xì)則IWG第二階段 QA 主題如何使用促心律失常預(yù)測算法/模型結(jié)果概念文仍在制定模型進(jìn)申報有路但細(xì)則未定寫算法使用細(xì)則仍在制定再看 NAM新 approaches methodologies新途徑學(xué)方法這股東風(fēng)給插件開發(fā)者開了多大的窗。FDAMA 2.02022-12-29 簽署把法規(guī)措辭從 “animal tests”動物試驗改為 “nonclinical tests or studies”非臨床試驗或研究并點名了替代技術(shù)細(xì)胞基檢測、microphysiological systems (MPS), such as organ-on-a-chip微生理系統(tǒng)如器官芯片、computer/algorithmic models計算機(jī)/算法模型、類器官、高通量篩選與組學(xué)。注意——computer models 是被法定點名的類別之一這正是虛擬器官插件的合法性錨點。FDA 2025-04 路線圖進(jìn)一步設(shè)定3-5 年內(nèi)讓動物研究從默認(rèn)變例外起點是單抗2025-12-02 發(fā)布了取消非腫瘤單抗 6 個月 NHP 毒理的精簡草案2026-04-20 宣布第一年目標(biāo)達(dá)成。歐盟側(cè)有 Directive 2010/63/EU3Rs 錨點、歐委會 C(2026) 3497 化學(xué)品安全性評估動物試驗逐步退出路線圖以及 REACH2.0 修訂第 25 條動物試驗僅作last resort最后手段。這里必須給替代動物實驗這句話劃紅線政策方向是減少依賴DILIsym 官方定位原話就是 “reducing reliance on animal testing”REACH 的措辭是最后手段都不是已全面禁止。寫申報材料時用支持減少/替代部分動物試驗絕不寫已全面禁止動物試驗。最后是文檔落點。一個插件的仿真結(jié)果要變成審評員手里的證據(jù)需要申報四件套┌──────────────── 模型申報附錄四件套 ────────────────┐ │ (1) 模型描述 name/version/DOI/license/intended_use │ ← 鐵律 23出處與許可鎖死 │ (2) 輸入溯源 IC50/PBPK暴露/參照集每個帶 provenance │ ← 鐵律 110單位批次 │ (3) 驗證結(jié)果 靈敏度/特異度/錯分率 不確定度(第15篇) │ ← Li 2020 10.1002/cpt.1647 │ (4) 限制聲明 支持性地位 / 無背書 / 單指標(biāo)不足 │ ← 鐵律 9監(jiān)管表述克制 └────────────────────────────────────────────────────────┘第 15 篇教的是算出驗證數(shù)字本篇教的是把數(shù)字連同它的邊界一起裝進(jìn)信封。兩者是同一條證據(jù)鏈的兩端只有驗證數(shù)字沒有限制聲明是越權(quán)宣稱只有文檔框架沒有驗證數(shù)字是空殼。二、完整代碼與逐行剖析申報附錄的正確做法是結(jié)構(gòu)化數(shù)據(jù)YAML與渲染Markdown分離。YAML 是單一事實源可版本控制、可被注冊表引用Markdown 是給人和審評員看的成品。下面這段把四件套從一份 YAML 檔案渲染成 Markdown可運(yùn)行、帶自檢。代碼 1申報檔案模板與生成器YAML 單一事實源 → Markdown# -*- coding: utf-8 -*-申報附錄生成器一份 YAML 模型檔案 - Markdown 申報附錄四件套骨架importyaml# 這是單一事實源。生產(chǎn)環(huán)境它由模型注冊表(第19篇)與驗證管線(第15篇)自動填充# 這里手寫一份最小心臟插件檔案字段嚴(yán)格對應(yīng)申報四件套。TEMPLATE_YAML model: # (1) 模型描述 name: cardiotox-CiPAORdv1.0 version: 1.2.0 doi: 10.3389/fphys.2017.00616 # 模型出處 DOI 必須鎖死(鐵律2)錯一處全盤證據(jù)失效 license: GPL-3.0 (FDA/CiPA R code) # 許可證登記(鐵律3)GPL 代碼要鏈接隔離 intended_use: 非臨床綜合風(fēng)險評估中的支持性證據(jù)不替代 TQT(ICH E14/S7B totality of evidence) inputs: # (2) 輸入溯源 - {name: hERG IC50, source: 濕測電壓鉗, unit: nM, provenance: GLP lab / batch R-2043} - {name: 游離藥濃度, source: PBPK (PK-Sim v12), unit: uM, provenance: 第11篇 CSV 契約} - {name: TdP 分層參照, source: CiPA 28, unit: category 0/1/2, provenance: github.com/FDA/CiPA} validation: # (3) 驗證結(jié)果(第15篇口徑) principle: Li 2020, CPT 107:322-332, doi:10.1002/cpt.1647 dataset: CiPA 28 (TdP 0/1/2) sensitivity: 0.83 specificity: 0.80 misclassification: 0.19 uncertainty: 2000 參數(shù)抽樣 - qNet 置信區(qū)間(compute_qNet_CI 口徑) limitations: # (4) 限制聲明 - CiPA 證據(jù)在 ICH E14/S7B 為 totality of evidence 支持性地位算法/模型使用細(xì)則 QA 仍在制定 - 本模型不提供監(jiān)管背書(CiPA 官方 Disclaimer) - 單 hERG 不足以判風(fēng)險須多電流投票(復(fù)極儲備) defbuild_appendix(doc:dict)-str:mdoc[model]L[# 模型申報附錄%s%m[name],,## 1. 模型描述]L.append(- 名稱/版本**%s** / %s%(m[name],m[version]))# DOI 用行內(nèi)代碼包裹避免被 Markdown 里的下劃線吃掉格式也提醒讀者這是鎖死字段L.append(- 出處 DOI%s 許可證%s%(m[doi],m[license]))L.append(- 預(yù)期用途%s%m[intended_use])# intended_use 是監(jiān)管用途聲明必須與地位一致L[,## 2. 輸入溯源,| 輸入 | 來源 | 單位 | 溯源批次 |,|---|---|---|---|]foritindoc[inputs]:# 每行一個 provenance可追溯性是鐵律10的文檔化落點缺批次證據(jù)不可復(fù)現(xiàn)L.append(| %s | %s | %s | %s |%(it[name],it[source],it[unit],it[provenance]))vdoc[validation]L[,## 3. 驗證結(jié)果,- 方法學(xué)%s%v[principle],- 數(shù)據(jù)集%s%v[dataset]]# 三件套以點估計呈現(xiàn)但下面緊跟不確定度一句話防止審評員把點估計當(dāng)鐵板數(shù)字L.append(- 靈敏度 / 特異度 / 錯分率**%.2f / %.2f / %.2f**%(v[sensitivity],v[specificity],v[misclassification]))L.append(- 不確定度%s%v[uncertainty])L[,## 4. 限制聲明]forlimindoc[limitations]:L.append(- %s%lim)# 限制聲明是合規(guī)剎車越誠實越能過審評return\n.join(L)if__name____main__:docyaml.safe_load(TEMPLATE_YAML)# 先驗證 YAML 合法再生成——CI 里這一步失敗就不許出報告mdbuild_appendix(doc)print(md)assert10.3389/fphys.2017.00616inmdandtotality of evidenceinmdassert| hERG IC50 |inmdand0.83inmdprint(\n[selfcheck] 申報附錄四件套齊全可解析、可渲染)逐行看關(guān)鍵設(shè)計。為什么intended_use要寫支持性證據(jù)不替代 TQT因為監(jiān)管地位是模型的合同用途一旦你在檔案里把它寫成決定性或替代 TQT就是越權(quán)宣稱審評會直接退回。為什么許可證 GPL-3.0 要顯式登記進(jìn)申報檔案因為模型代碼的許可證決定了你商用交付的合法路徑第 19 篇的 SBoM 治理正是從這里長出來的。為什么驗證塊后面必須跟限制聲明塊而不是收尾因為 CiPA 官方不提供背書模型的可靠性敘述必須自帶邊界——單 hERG 判風(fēng)險會過度分檔第 05 篇、算法使用細(xì)則仍在制定第 16 篇機(jī)制這些不寫出來反而顯得不專業(yè)。代碼 2把驗證數(shù)字從注冊表自動灌進(jìn)檔案與第 19 篇審計合一申報檔案最容易造假/過時的地方是驗證數(shù)字手填。正確做法是讓檔案從一個只讀的注冊表派生本節(jié)先演示從字典讀驗證指標(biāo)→校驗范圍→渲染的最小閉環(huán)完整 SQLite 版見第 19 篇。# -*- coding: utf-8 -*-驗證數(shù)字不手填從一個事實源讀入并做范圍校驗越界即拒絕出報告。defassert_metric(name,val,lo0.0,hi1.0):# 申報級衛(wèi)生靈敏度/特異度/錯分率必須在 [0,1]NaN 或 1 直接判定為上游管線出錯ifvalisNoneornot(lovalhi):raiseValueError(驗證指標(biāo) %s%r 越界應(yīng)在[%s,%s]疑似上游未收斂%(name,val,lo,hi))returnvaldefbuild_from_registry(reg):reg 來自模型注冊表(第19篇)或驗證管線(第15篇)的導(dǎo)出字典。vreg[validation]forkin(sensitivity,specificity,misclassification):assert_metric(k,v[k])# 三個點估計逐個校驗任一越界整份檔案作廢# 錯分率與靈敏/特異度非獨(dú)立這里做一致性交叉核對1 - 準(zhǔn)確率 近似量級# 若三者自相矛盾(如靈敏度0.83特異度0.80錯分率卻寫0.01)說明數(shù)字被手改過要人審implied_err1-(v[sensitivity]v[specificity])/2ifabs(implied_err-v[misclassification])0.25:raiseAssertionError(錯分率與靈敏/特異度不自洽請回到第15篇重算)print(檔案可簽發(fā)靈敏度%.2f 特異度%.2f 錯分率%.2f%(v[sensitivity],v[specificity],v[misclassification]))returnTrueif__name____main__:reg{validation:{sensitivity:0.83,specificity:0.80,misclassification:0.19}}assertbuild_from_registry(reg)bad{validation:{sensitivity:1.4,specificity:0.8,misclassification:0.19}}try:build_from_registry(bad);raiseSystemExit(應(yīng)攔截越界指標(biāo))exceptValueErrorase:print([selfcheck] 越界指標(biāo)被攔截:,str(e)[:40])為什么加自洽性交叉核對申報造假最常見不是數(shù)字算錯是數(shù)字被事后手改到互相矛盾。用靈敏度與特異度的均值粗估錯分量級偏差超閾值就強(qiáng)制回退到第 15 篇重算——這是把人工誠信降級成機(jī)器可檢。手寫檔案 vs 派生檔案手寫派生推薦驗證數(shù)字來源人在文檔里敲注冊表/驗證管線只讀導(dǎo)出版本一致性易與代碼脫節(jié)與模型 DOI/版本綁定審計可追溯無每條 run 有哈希快照第19篇三、常見報錯與排查現(xiàn)象申報里寫CiPA 已正式取代 TQT。根因把政策方向誤讀為已生效法規(guī)。解法E14/S7B QA 只接受 C-QTc 為主要分析、TQT 替代路徑見 QA 5.1/6.1模型是 totality of evidence 的支持性證據(jù)算法使用細(xì)則的第二階段 QA 仍在制定。措辭改成作為支持性證據(jù)納入證據(jù)整體?,F(xiàn)象yaml.safe_load(TEMPLATE_YAML)報 parser error。根因模板里混用了未加引號的冒號或 Tab 縮進(jìn)。解法值里含:或#的整串加雙引號只用空格縮進(jìn)先在 CI 跑一遍safe_load再出報告?,F(xiàn)象附錄生成成功但缺限制聲明。根因把驗證結(jié)果當(dāng)成終點。解法四件套是硬約束limitations列表為空時生成器應(yīng)報錯而非省略第 4 節(jié)——CiPA 官方 Disclaimer 決定了沒有邊界敘述的模型檔案不完整?,F(xiàn)象把減少動物試驗寫成已全面禁止動物試驗。根因誤讀 REACH。解法REACH 第 25 條是last resort最后手段“DILIsym 官方定位是reducing reliance on animal testing”寫支持減少/替代部分動物試驗引用 FDAMA 2.0 與 FDA 2025 路線圖的政策表述?,F(xiàn)象驗證指標(biāo)靈敏度 1 或為 NaN 仍被寫進(jìn)附錄。根因上游未收斂。解法用代碼 2 的assert_metric做范圍閘門越界即拒絕簽發(fā)。四、動手練習(xí)把TEMPLATE_YAML的intended_use改成決定性證據(jù)可完全替代 TQT 研究運(yùn)行生成器。判定標(biāo)準(zhǔn)文檔雖能渲染但你應(yīng)能在評審時一眼指出它違反鐵律 9——正確做法是改回支持性證據(jù)/totality of evidence。把misclassification從 0.19 改成 0.01運(yùn)行代碼 2。判定標(biāo)準(zhǔn)AssertionError(錯分率與靈敏/特異度不自洽…)被觸發(fā)。新增一個inputs條目{name:ALT 代理閾值,source:機(jī)制模型,unit:fraction,provenance:第18篇}。判定標(biāo)準(zhǔn)Markdown 第 2 節(jié)表格出現(xiàn) 4 行且 YAML 仍可safe_load。五、小結(jié)與下一篇預(yù)告本篇把插件輸出→申報證據(jù)這條路走完模型在 ICH E14/S7B 里的地位是 totality of evidence 的支持性證據(jù)CiPA 官方不背書所以模型必須自帶驗證包FDAMA 2.0/FDA 2025 路線圖/歐盟 C(2026) 3497 給出了減少動物試驗的政策窗口但邊界是最后手段不是全面禁止。申報落點是四件套——模型描述、輸入溯源、驗證結(jié)果、限制聲明用build_appendix()從 YAML 派生、用范圍與自洽校驗把守。驗證數(shù)字怎么來在第 15 篇詳述檔案字段如何被注冊表統(tǒng)一治理在第 19 篇展開。下一篇第 17 篇進(jìn)入實戰(zhàn)把這套契約與文檔落地成一個端到端可跑、帶 CiPA 28 子集回歸的心臟安全插件 cardiotox。本篇認(rèn)知問題回顯FAQQ1ICH E14/S7B QA 下心臟安全插件算出的 qNet 在監(jiān)管里是什么地位A屬于非臨床綜合風(fēng)險評估的一部分作為 totality of evidence證據(jù)整體的支持性證據(jù)C-QTc 是臨床主要分析TQT 替代路徑見 QA 5.1/6.1。它是支持性不是決定性且如何使用算法/模型的第二階段 QA 仍在制定。Q2能不能寫CiPA 已經(jīng)取代 TQTA不能。CiPA 官網(wǎng)原話是其工作was used to inform the ICH E14/S7B Implementation Working Group為工作組提供參考且官方聲明不提供背書。正確表述是CiPA 式多電流 iPSC-CM ECG 證據(jù)納入 totality of evidence 作為支持CiPA 已取代 TQT屬過頭表述。Q3為什么申報附錄里必須包含限制聲明和模型出處 DOIACiPA 官方不提供監(jiān)管背書所以模型必須自帶驗證與邊界敘述。出處 DOI如 CiPAORdv1.0 的 10.3389/fphys.2017.00616錯一處會讓整條申報證據(jù)失效限制聲明寫明支持性地位、無背書、單 hERG 不足以判風(fēng)險缺它檔案不完整。Q4FDAMA 2.0 與 FDA 2025 路線圖給插件多大政策空間邊界在哪AFDAMA 2.02022-12-29 簽署點名 computer/algorithmic models 與器官芯片MPS, organ-on-a-chip為合法替代技術(shù)把a(bǔ)nimal tests改為nonclinical tests or studiesFDA 2025 路線圖欲在 3-5 年讓動物研究從默認(rèn)變例外。邊界是減少依賴/最后手段不是已全面禁止動物試驗措辭要克制。Q5申報附錄的四件套具體指什么怎么自動生成A模型描述name/version/DOI/license/intended_use、輸入溯源每個帶單位與批次、驗證結(jié)果靈敏度/特異度/錯分率不確定度、限制聲明。用build_appendix()從一份 YAML 單一事實源渲染成 Markdownyaml.safe_load先驗合法性指標(biāo)越界即拒絕簽發(fā)。