病原體變異株監測 (Pathogen Variant Surveillance)
使用時機
任何時候,答案取決於病原體族群現在的樣子:哪些譜系正在流行、某個譜系是否正在增長、一個譜系名稱目前代表什麼,或者一個檢測目標是否仍然匹配。
規則
切勿憑記憶陳述正在流行的譜系,也切勿憑記憶寫出任何譜系名稱。
同時會有三件事情出錯,而只有第一件是普通的知識截止日期問題:
- 名稱的問世時間晚於訓練資料。 Pango 指定清單承載超過 6,200 個名稱,且持續增長。
- 命名法是一個動態的資料結構,而非靜態的慣例。
XFG是一個重組體,只能透過alias_key.json解析;PQ.17解別名為XDV.1.5.1.1.8.1.17。這兩個擴展都無法透過推理得出——映射關係是一個會變動的檔案。 - 先前的知識不僅會過時,還會被撤回。 目前
lineage_notes.txt中有 294 個名稱已被撤回或重新指定。PC.2現在是LF.7.9;XFG.20已被完全撤回。一個記住的譜系事實不僅可能陳舊,更可能完全錯誤。
此技能報告的每一個數字,都是由即時資料庫實例回傳的計數,並標記了其資料版本。
範圍
為研究目的進行的監測資料分析。此技能描述的是已被收集與提交的序列;它不產生臨床解釋、疫情應對建議或公共衛生指導,且序列計數並非病例計數。
實例
一個 API 形式涵蓋所有病原體。--instance 指定一個已驗證的部署;--base-url 可連接到任何其他 LAPIS 實例。
| 實例 | 主機 | 譜系欄位 | 已建立索引 |
|---|---|---|---|
sars-cov-2 | lapis.cov-spectrum.org (公開 GenBank 資料) | pangoLineage | 是 |
h5n1, h3n2, h1n1pdm, influenza-a | lapis.genspectrum.org | clade | 否 |
rsv-a, rsv-b, mpox, measles, dengue, west-nile, hmpv, ebola-zaire, ebola-sudan, cchf | lapis.pathoplexus.org | 各異 | 各異 |
每個實例的欄位名稱都不相同,且絕不應假設。 每個腳本在運行時都會讀取 /sample/databaseConfig,並從實例實際宣告的欄位中選取採集日期、提交日期和譜系欄位。dateFrom= 在 SARS-CoV-2 上是正確的,但在 H5N1 上會得到 400 錯誤,因為其採集日期是 sampleCollectionDateRangeLower。
腳本
cd skills/pathogen-variant-surveillance/scripts
| 腳本 | 回答的問題 |
|---|---|
resolve_lineage.py | 這個名稱還存在嗎?它代表什麼?它源自哪個譜系? |
lineage_prevalence.py | 這個譜系每週佔所有序列的多少比例?它在增長嗎? |
mutation_profile.py | 它帶有哪些突變?與另一個譜系相比有何不同? |
reporting_lag.py | 資料需要回溯多久才能被信賴? |
所有四個腳本都接受 --format table|tsv|json,並將來源資訊(實例、資料版本、已解析的欄位名稱、篩選條件)輸出至 stderr,因此使用 > out.tsv 可以保持資料乾淨並讓來源資訊可視。
從資料開始,而非從記憶中的清單開始
# 不預設名稱:發現該時間窗口內實際流行的譜系
python3 lineage_prevalence.py --top 5 --where country=USA --weeks 12
注意:發現該時間窗口內最常見的 5 個 pangoLineage 值: XFG.1.1, XFG.23.1.3, PY.1.1.1, XFJ.3.1.2, PQ.17
這是回答「目前流行什麼?」時正確的第一個指令。一開始就指定譜系名稱,預設了你已經知道哪些是重要的,而這個技能存在的目的正是為了消除這種假設。
使用名稱前先檢查
python3 resolve_lineage.py XFG.23.1.3 PQ.17 PC.2 NOTALINEAGE
query status unaliased parent recombinant_of descendants sequences detail
XFG.23.1.3 current XFG.23.1.3 XFG.23.1 LF.7+LP.8.1.2 6 317 S:A1174V, on C29137T branch
PQ.17 current XDV.1.5.1.1.8.1.17 NB.1.8.1 23 931 Alias of XDV.1.5.1.1.8.1.17
PC.2 withdrawn B.1.1.529.2.86.1.1.16.1.7.2.1.2 LF.7.2.1 4 25 now LF.7.9; Redesignated as LF.7.9
NOTALINEAGE unknown NOTALINEAGE 0 n/a no such name in the live nomenclature
(detail 欄位已簡化;實際的每一行還會引用其譜系提案來源。)
如果任何名稱的狀態是「已撤回」(withdrawn) 或「未知」(unknown),腳本會回傳結束代碼 1,這可以作為手稿譜系清單的檢查關卡。請注意 PC.2:它已在源頭被撤回,但仍有 25 條序列帶有此標籤,因為資料庫實例的指定更新滯後於命名更新。這兩個事實都是真實的,且都重要。
盛行率與增長
python3 lineage_prevalence.py