2.19
知識分子
The Intellectual
圖源:pixabay
撰文 | 周葉斌
責編 | 徐卓君
● ● ●
中國人完成兩針疫苗接種的比例超過了90%,高于很多發達國家。但另一方面,很多國人接種上一針疫苗已是一年以前,截止今年11月,80歲以上老人第三針的接種率只有40%出頭——而國外有些老年人如今已是接種了第5針疫苗。
那么,新冠疫苗到底應該打幾針?以后,我們需要每年都接種一次嗎?
為什么疫苗的保護力不斷下降?
新冠疫苗最初上市時均以兩針型為主,即接種完兩針就算完成了全程接種。不過當時的臨床試驗驗證的是疫苗對新冠原始毒株的作用;上市之初面對的主要是免疫逃逸有限的阿爾法毒株。而有效性較高的mRNA疫苗也在當時表現出了很好的阻斷感染能力,例如在臨床試驗中有效性在95%左右,即降低輕癥為主的新冠疾病風險95%。在投入應用后,隨著疫苗接種率提升,歐美等地的感染率也出現下降 [1-3]。
但隨著后續跟蹤數據的不斷出現,我們發現疫苗接種對新冠感染的阻斷能力比較短暫,也很難維持。這主要是兩個原因造成,一是疫苗阻斷新冠感染的機理;二是新冠病毒出現了以免疫逃逸為方向的演變方向。
疫苗阻斷新冠感染主要依賴中和抗體,后者本身就是指可以阻斷病原體進入細胞的一類抗體。中和抗體和所有抗體一樣都需由B系淋巴細胞分泌。維持對新冠病毒的高滴度中和抗體意味著要維持大量特異識別新冠病毒的B細胞,再由后者不斷生產抗體。這會是一個非常“耗能”的過程,甚至在進化上會是一種劣勢。因此,和針對其它病原體的抗體一樣,新冠疫苗接種后形成的中和抗體,在沒有遇到對應抗原(如新冠病毒或再度加強接種)的情況下隨時間會自然衰減。
于是隨著時間的推移,我們在現實中觀察到,疫苗防感染的有效性出現下滑,突破性感染不斷增加。
2021年底開始,奧密克戎突變株又通過免疫逃逸給疫苗的防感染帶來了新的挑戰。新冠病毒通過S蛋白與人體ACE2受體結合感染人體細胞,中和抗體也是與S蛋白結合,特別是和S蛋白的RBD區域結合來阻斷這一過程。可奧密克戎突變株在S蛋白上出現了大量突變,導致過往感染或疫苗接種帶了的中和抗體滴度大減,防感染的能力更是捉襟見肘。
而且奧密克戎的進化還在不斷繼續,像北京遇到了BF.7亞株,國外不少地方還有BQ.1,XBB等亞株取代之前的主流毒株BA.5,這些新出現的亞株均以免疫逃逸過往主流病毒株為新方向。中和抗體隨時間推移出現下降、病毒在免疫逃逸方向上的進化,二者疊加導致如今疫苗阻斷感染的能力有限且維系的時間也很短。
雖然疫苗的防感染能力下降較快,防重癥的有效性維持時間目前看來長久一些。
例如一項基于美國退伍軍人醫療系統的研究發現,對于免疫功能正常的人來說,接種完三針疫苗(mRNA疫苗為主),無論是德爾塔還是奧密克戎時期,新冠住院風險在5個月的時間范圍內都較低 [4]:
圖. 非免疫抑制人群接種完三針疫苗后新冠住院風險處于低水平
防重癥有效性維持較久也符合免疫學機理,因為疾病的發展需要時間,在一定程度上給了疫苗打下的免疫記憶反應機會——記憶B細胞可以被激活產生更多抗體,細胞免疫也能起作用。
新加坡:三針疫苗,只是獲得了最低保護
感染新冠病毒后的臨床表現在人群中差異巨大。在兩級——全程無癥狀以及嚴重到導致死亡的病例之外,中間還有感冒般的輕癥,癥狀較重需要住院治療等各種“光譜”。
從醫學角度看癥狀嚴重的情況才是需要去研發疫苗來防范的,沒有人在為普通感冒研發疫苗,也沒有人嘗試去阻斷感冒的傳播。因此我們考慮疫苗接種需要基于重癥防護效力如何,是否維持得足夠好。而從這個角度思考,我們需要綜合審視人群的免疫基礎與重癥風險。
參考香港遇到奧密克戎以后各年齡段分疫苗接種情況的病死率風險 [5]:
附圖.香港分年齡段疫苗接種情況的病死率
沒有接種過疫苗的80歲以上老人,病死率高達14.6%;接種完兩針滅活疫苗,病死率仍然有3.76%。可以說由于老齡老人感染新冠后病死風險很高,兩針的完全接種并不足夠。
接種完三針滅活疫苗,80歲以上老人的病死率才剛到2%以下。而對于40-49歲的中年人,接種完三針疫苗,病死率已經在萬分之一了。
所以基于不同人群重癥風險的基礎不同,疫苗接種策略可能也要有所區分。從香港的數據中我們也能看到兒童與年輕人作為低危人群,病死率非常低。
但是,除此之外還有重癥、住院等風險,兒童與年輕人病死率很低,可重癥住院的比例會比病死更高,疫苗接種仍然是有必要的。
而且我們需要從重癥風險與完善免疫基礎兩個方面綜合考慮疫苗接種方案。像研究顯示隨著接種mRNA疫苗次數的增加,對各病毒株的中和抗體滴度都有增加。這些抗體增加反映了人體免疫反應更為優化、完善 [6]:
圖. 接種1、2、3針某mRNA疫苗后對各突變株中和抗體滴度變化
此外,不同的疫苗在刺激免疫反應的能力上不同,表現出來的有效性有差異,在完善人體免疫基礎上也不盡相同。巴西曾經做過兩針滅活疫苗基礎上各種增強針的比較 [7]:
圖. 不同疫苗增強針比較
無論是針對德爾塔(左圖)還是奧密克戎(右圖)的中和抗體滴度,第三針接種免疫原性更高的mRNA疫苗都高于再接種一針滅活疫苗。不難推斷,采用高效疫苗能獲得更好的免疫基礎,也能讓我們面對病毒時更為放心。
從防重癥的角度出發考慮疫苗接種,我們希望做到的是無論哪個年齡段的人都能在被病毒感染前已經有不錯的免疫基礎,其中高危人群的免疫基礎更要強化到重癥率、病死率都維持在較低的水平。
可以參考新加坡的做法,當下新加坡衛生部門不再簡單數接種疫苗的針數,而是定下了一個最低保護的概念,完成三針高效的mRNA疫苗或Novavax重組蛋白疫苗接種(不愿意接種高效疫苗的人完成四針滅活疫苗也可以),被認為獲得了最低保護。而在最低保護之上,還有一個接種到最新的標準,那就是至少完成最低保護的疫苗接種且上一針接種在一年以內 [8]。
對于所有人最低保護可以算作獲得了必要的免疫防護基礎,但考慮到老年人重癥風險更高且疫苗隨時間有效性會下降,高危人群還有極強的接種到最新的必要性。
特殊人群的特別考量
相對國際上的新冠疫苗接種,我國目前的接種計劃存在一定的“一刀切”現象,不足以做到為所有人完善免疫基礎。
這一方面表現為高齡老人接種率太低,截至11月28日,80歲以上老人一針,兩針與加強針覆蓋率分別為76.6%、65.8%和40% [9]。參考香港該年齡段老年人接種滅活疫苗后的感染病死率,一針與兩針顯然不能算足夠高效的保護,甚至在三針的時候還要考慮與高效疫苗比有差距。
除了高齡老人的防護不足,我國目前的接種計劃對一些特殊人群也缺乏針對性的措施。疫苗是通過激發人體免疫反應來起到防護作用的,可是有些人會因各種原因處于免疫抑制狀態,疫苗在這些人身上的作用往往會更弱一些。
像美國人口中約3%的人屬于中到重度免疫抑制,包括了接受過器官移植的人、腫瘤患者、接受過骨髓移植的人、使用免疫抑制劑治療自身免疫疾病的患者、先天的免疫缺陷、HIV未使用抗病毒治療獲得良好控制的人、接受腎透析的人等等。他(她)們感染后重癥風險更高。同時,參考美國CDC收集的63項免疫抑制人群中接種兩針mRNA疫苗的抗體轉陽率分析 [10]:
圖. 免疫抑制人群接種疫苗后抗體轉陽率更低
免疫抑制人群接種完兩針mRNA疫苗,新冠抗體轉陽率——疫苗誘導免疫反應的一個指標,明顯低于健康人群。對于這樣的特殊人群,我們不能認為他(她)們接種了兩針或三針疫苗就獲得了和普通人群一樣的保護。
在歐美乃至港臺地區,免疫抑制人群要比普通人群多接種一針。例如普通人群接種兩針算是完成基礎免疫,而免疫抑制人群建議在兩針后隔一個月再接種一針,三針才算完成基礎免疫。之后加強免疫的推廣也往往比普通人群更優先。
在如今社會逐漸開放,疫情升溫之際,這一人群的防護弱點亟需引起中國防疫部門的關注。
新冠疫苗到底需要打幾針?
我們再來看文章開頭提出的問題:新冠疫苗到底該打幾針?
答案或許是因人而異。
首先我們需要在整個人群里建立一個相對完善的免疫基礎——這是對所有健康普通人群來說的。
從國外的經驗來看,這至少需要接種三針比較高效的新冠疫苗才能完成,因此,理想狀態所有人都應該接種至少三針高效疫苗,其中至少最后一針應是能增加突變株識別廣度的多價疫苗。這是為所有人打下一個必要的免疫基礎。
其次,高危人群會需要額外的免疫強化。免疫抑制人群應該基于免疫學研究調整接種方案,通過額外增加接種針數,將他(她)們的實際防護水平與一般人群拉近。而老年人也可能要更早開展增強針接種。
例如在歐美,一些老人目前已經是接種了第5針新冠疫苗。在疫苗上市時,他(她)們作為高危人群,優先接種了前兩針疫苗。隨著時間推移,突破性感染增多,在德爾塔時期又開展了第一針增強針,到今年上半年面對免疫逃逸嚴重的奧密克戎,第二針增強針推出。最近隨著免疫識別更廣譜的二價疫苗推出,老年人面臨可能的冬季疫情高峰,也是優先接種二價疫苗的人群——即有些人的第五針疫苗。
我們可以看到這里面每一針增強針都是對應疫情的變化,而且是考慮到老年人作為高危人群,感染后重癥風險更高,是一種針對性的防護措施。
我們的疫苗接種計劃需要轉變觀點,對于不同人群要考慮最終的防護程度如何,而不是大家都打了幾針。
再次,隨著時間的推移,疫苗的有效性——包括那些更持久的防護重癥有效性也是會出現下滑的,這也是疫苗接種中需要注意的。原本有效性相對較低的疫苗問題更為突出。巴西曾經跟蹤過兩針滅活疫苗防重癥的有效性,發現在老年人中接種第二針三個月后就開始顯著下滑,采用更高效的mRNA疫苗做第三針能將防重癥有效性提升到更高水平且維持時間也更久 [12]。
因此,我國將60歲以上老年人接種第三針的間隔縮短到3個月是非常有必要的。兩針疫苗對老人防護本身就不夠,縮短第三針間隔可以讓更多老人盡快完善防護,也能趕在兩針防護效果出現下滑前做加強。
如果考慮我國疫苗接種的現狀,表面上疫苗接種率很高,但老年人接種率偏低,即使完成了三針接種的人,很多接種完上一針也過去很久。
面對如今來勢洶洶的奧密克戎疫情,我們至少面臨著老年人、免疫抑制人群防護不夠,以及很多人的免疫防護已經隨時間出現大幅下滑,這兩大威脅。
日前,中國剛剛開始為60歲老年人群體、具有較嚴重基礎性疾病群體、感染高風險人群和免疫力低下人群接種第四針。
從國外新冠疫苗的接種情況來看,不少地方的增強針接種明顯落后于基礎免疫,而第二針增強針接種比第一針增強針的接納度更低。這既有一些國家公衛機構與民眾溝通缺乏有效性,未能闡述清楚多次接種疫苗的作用與意義,也有短時間內推出多針疫苗后民眾無可避免地對不斷需要接種感到厭倦,也就是疫苗疲勞。
這種疫苗疲勞意味著公衛決策者不能指望民眾每三四個月或半年擼起袖子打一針新冠疫苗。同時,我們還不能忽略現在新冠病毒已經把免疫逃逸作為一個主要的進化方向,而且演變速度異常快。阿爾法與德爾塔突變株在全球占據主導的時間長達半年,可主流奧密克戎亞株加速到幾乎三四個月一變 [13]。
考慮到上述兩個因素,我們需要打下去的疫苗即便面對病毒突變的不確定性,也要能在較長時間內防護重癥。參考流感疫苗以及正在研發晚期的RSV疫苗,新冠疫苗長期可行的接種計劃應該是在建立了較強的基礎免疫之外,每年提供一次加強,重點向高危人群推廣。這需要每年加強的那一針有效防護重癥的時間在6個月乃至更久一些,以應對整個潛在的流行季節(假設新冠演變得與大多數呼吸道傳染病一樣,高發于秋冬季)。
這也讓采用真正高效的疫苗變得更為重要,因為不采用更為高效的疫苗,很難做到這一點。
此外,參考新加坡應對奧密克戎近一年的情況 [8]:
圖. 新加坡三次奧密克戎疫情峰值逐漸減弱
每一個新的奧密克戎突變株的影響都在逐漸減弱,且當地病死率一直維持在較低水平。這是因為在應對第一次奧密克戎之前,當地已經通過大量接種高效疫苗獲得了良好的免疫基礎。之后的自然感染就不會造成嚴重健康威脅,反而在感染過程中不斷增強了當地人群的免疫水平,限制了之后的疫情發展。
最近國內不少人包括一些專家廣泛引用新加坡為例,但新加坡防疫的成功是建立在高效疫苗+高接種率的良好免疫基礎之上的。不盡快提升我國老年人的疫苗接種率,以及采用更高效的疫苗完善所有國民的免疫基礎,新加坡的事例對我們的實際參考意義恐怕不會很大。
參考文獻:(上下滑動可瀏覽)
1.https://www.nejm.org/doi/full/10.1056/nejmoa2034577
2.https://www.nejm.org/doi/full/10.1056/nejmoa2035389
3.https://www.cdc.gov/media/releases/2021/p0329-COVID-19-Vaccines.html
4.https://jamanetwork.com/journals/jama/fullarticle/2796892
5.https://www.covidvaccine.gov.hk/pdf/death_analysis.pdf
6.https://www.fda.gov/media/159493/download
7.https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(22)00094-0/fulltext
8.https://www.moh.gov.sg/covid-19/statistics
9.https://www.mca.gov.cn/article/xw/mtbd/202212/20221200045237.shtml
10.https://www.cdc.gov/vaccines/acip/meetings/downloads/slides-2021-08-13/02-COVID-Dooling-508.pdf
11.https://www.biorxiv.org/content/10.1101/2022.10.31.514636v1
12.https://www.nature.com/articles/s41591-022-01701-w
13.https://www.cdc.gov/vaccines/acip/meetings/downloads/slides-2022-09-01/07-COVID-Swanson-508.pdf
制版編輯 | 于松儀
今主流的技術中,可以分為前端和后端兩個門類。
前端:簡單的理解就是和用戶打交道
后端:主要用于組織數據
而前端就Web開發方向來說, 分為三門語言, HTML、CSS、JavaScript
語言 | 作用 |
HTML | 描述頁面的結構,類似于動物的骨架 |
CSS | 渲染技術,使得頁面更好看,也可以一定程度的讓頁面動起來 |
JavaScript | 實現和后端的交互, 數據驗證、收發等功能 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
上面面的一段代碼既表示一段HTML的結構, 它表示生成了一個空白的HTML網頁
組成HTML的元素稱為標簽,標簽的結構分為兩種
下面這段HTML代碼包含的標簽解釋如下
<!DOCTYPE html> 是一種HTML5的規范寫法,在HTML發展過程中還有以下的幾種聲明方式
<!DOCTYPE html> html5規范, html的第一行必須為此值
<!--html4 嚴格版-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"<http://www.w3.org/TR/html4/strict.dtd>">
<!--html4 過渡版-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"<http://www.w3.org/TR/html4/loose.dtd>">
<!--html4 框架版-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"<http://www.w3.org/TR/html4/frameset.dtd>">
關于html4的聲明類型,可以參考:
<https://www.w3.org/TR/html4/sgml/dtd.html>
<!--lang屬性表示使用英文,如果是中文,可以改成zh, 非嚴格屬性也可以不寫-->
<html lang="en">
</html>
<!--規定字符集使用UTF-8, UTF-8 涵蓋全球所有的國際和民族的文字和大量圖像, UTF-8 規定一個字符占3個字節-->
<meta charset="UTF-8">
tml2pdf
Selenium 通過使用 WebDriver 支持市場上所有主流瀏覽器的自動化。 Webdriver 是一個 API 和協議,它定義了一個語言中立的接口,用于控制 web 瀏覽器的行為。 每個瀏覽器都有一個特定的 WebDriver 實現,稱為驅動程序。 驅動程序是負責委派給瀏覽器的組件,并處理與 Selenium 和瀏覽器之間的通信。
這種分離是有意識地努力讓瀏覽器供應商為其瀏覽器的實現負責的一部分。 Selenium 在可能的情況下使用這些第三方驅動程序, 但是在這些驅動程序不存在的情況下,它也提供了由項目自己維護的驅動程序。
Selenium 框架通過一個面向用戶的界面將所有這些部分連接在一起, 該界面允許透明地使用不同的瀏覽器后端, 從而實現跨瀏覽器和跨平臺自動化。
# selenium 驅動
https://selenium-python.readthedocs.io/installation.html#drivers
https://selenium-python.readthedocs.io/api.html
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.16.1</version>
</dependency>
// 獲取 java 版本
String version=System.getProperty("java.specification.version");
// 獲取系統類型
String platform=System.getProperty("os.name", "");
platform=platform.toLowerCase().contains("window") ? "win" : "linux";
// 當前程序目錄
String current=System.getProperty("user.dir");
System.out.println("current:" + current);
// firefox 運行參數配置
FirefoxOptions options=new FirefoxOptions();
// 無頭模式
options.addArguments("--headless");
// 最大化
options.addArguments("--start-maximized");
FirefoxDriver browser=new FirefoxDriver(options);
Path url=Paths.get(current, "..", "index.html");
System.out.println("url:" + url.toString());
// NOTE 要使用 file 協議
browser.get(String.format("file://%s", url.toString()));
// 打印設置
PrintOptions print=new PrintOptions();
Pdf pdf=browser.print(print);
// pdf base64 內容
String content=pdf.getContent();
// 解碼內容
Base64.Decoder decoder=Base64.getDecoder();
byte[] buffer=decoder.decode(content);
try {
// 將 byte 寫入文件
Path file=Paths.get(String.format("java%s_%s.pdf", version, platform));
Files.write(file, buffer);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
browser.quit();
}
selenium/java11_linux.pdf · yjihrp/linux-html2pdf-demo - Gitee.com
selenium/java11_win.pdf · yjihrp/linux-html2pdf-demo - Gitee.com
測試結果
下一篇 6-LINUX HTML 轉 PDF-selenium-python
*請認真填寫需求信息,我們會在24小時內與您取得聯系。