What Are Snowflake IDs?
Credit by: Wei-Yu Chen (感謝分享)
本文介紹了 Universal Unique Identifiers(UUIDs)的用途及其重要性,UUID 以固定且標準的方式為每個物件產生出獨立的 ID,且 產生出來的 ID 幾乎不可能會重複導致發生碰撞。
通常 UUID 由幾個部分組合而成,像是以時間、執行節點的 MAC address,或以 MD5 hash 來生成。UUID 以 128 bits 的數字組成,為了更方便識別及操作,通常都會以十六進制來表示,總長度為 36 個字(加上連字符號 -)。也因用來產生 UUID 的亂數種子包含了時間、節點資訊等參數,所以 UUID 也具有獨特性,在分散式系統執行也不容易發生碰撞。
而為了避免在你的 apps 裡實作 UUID 的產生機制,常見會使用兩種作法,分別是:Persistence Layer Generated ID 和 ID Servers。一種使用 Database 自動產生出來的序號來作為識別物件的 ID(如 MongoDB 的 ObjectID、MySQL 的 AUTO_INCREMENT ... 等),另一種是使用獨立的 ID server 來產生物件的 ID。
以 Database 來作為序號產生器會碰到一個問題,當你在每次建立新物件時,都會需要向資料庫讀取這個物件的「自動產生 ID」,假設應用程式的規模一大,效能勢必會大受影響。
而使用 ID server(也就是本文主要介紹的 Snowflake IDs)去產生 UUID 的話,就可利用架構於 app 以外的第三方序號產生器。以 Twitter 來說,平均每秒鐘有九千個推文,在高峰期間更甚至會出現一秒 143199 則推文的流量,他們所需要的 UUID 不僅要能夠支援龐大的架構,也需要在以非常快的速度產生出 ID,這也是 Snowflake 專案的由來。
因此,Twitter 以這幾個參數來組成 UUID:
- 保留不使用的位元,固定為 0 - 共 1 位
- Timestamp(以毫秒為單位) - 共 41 位
- 機器 ID - 共 10 位
- 序列號 - 從 0 ~ 4095 依序重複使用 - 共 12 位
雖然說以 ID servers 來產生 UUID 之後,效能還是會被這種架構拖累(必須在建立物件就去向 ID server 發送請求,並等待產生出來的 ID),但這種作法和資料庫系統相比起來已經讓效能降低的問題變得更輕微。
在本文當中介紹了三種常見的 ID 產生方式:在 local app 端產生 ID、在資料庫產生 ID、集中式的 ID server 產生 ID,這些策略的選擇也根據你的使用情境而定,畢竟沒有一種一套打天下的解決方案,在選擇時仍須衡量每個專案的需求。
https://betterprogramming.pub/uuid-generation-snowflake-identifiers-unique-2aed8b1771bc
時間序列資料特性 在 林靜儀醫師 Facebook 的最讚貼文
今天最後花一點時間寫我對於「4/6前就有個案發病」這條新聞的看法。
先說結論: 我認為不可能。
引述今天指揮中心的說明:
發言人莊人祥今(17)日更正,該病患是在4/6就有上呼吸道症狀,但拖了很久,後來 #參考PCR與Ct值做了修正,推測發病日應為5/14,並非一開始公布的4/6。
https://www.ettoday.net/amp/amp_news.php7?news_id=1983975
先從彰化的群聚來看病毒🦠擴散速度:「彰化縣衛生局指出,葡萄家族群聚案的開端是爸爸與媽媽5月6日到台北市萬華,媽媽與大女兒5月9日出現身體不適,並在5月13日確診,媽媽確診時Ct值為11.65,病毒量相當高,因此研判應是在萬華交貨時染疫且幾天內發病。之後爸爸、大兒子、大媳婦、二兒子及女婿也都採檢確診,外孫則是在今上午確診。」
彰化群聚案有三場聚餐與喜宴甚至刮痧,就在 #一週內造成群聚14人感染,證明這個病毒強烈到傳染力;如果有某個案 「4/6前就有感染」卻因為有「4/30去萬華玩」收到細胞簡訊確診,那4/6-4/30整整二週,這個人是怎麼躲的,可以完全不造成旁邊親友感染(甚至親友都沒有症狀)?🧐
再看之前就提出的病毒DNA序列,機師旅館案、萬華和羅東這幾個群聚的 #病毒序列相同,以RNA病毒容易突變的特性,若社區「早就有傳染好幾輪」,那DNA序列會出現差異。(圖片來自三立新台灣加油)
最後看這些群聚的幾個指標個案ct值,ct值越高,表示病毒濃度較低,反之ct值低,通常顯示感染初期,病毒量高。以資料來看(藍筆圈起來),諾富特群聚個案的ct值有到26-35,而萬華茶藝館16-25,而獅子會前會長ct值18。還是比較符合諾富特群聚➡️ 萬華群聚➡️ 獅子會群聚的途徑,而獅子會群聚接觸者比較容易匡列,目前看來已經收尾,比較糟的是萬華群聚往外擴散了。(圖片來自三立新台灣加油)
張上淳教授今天也定調:
同一病毒株、不是平行感染
張上淳:現為一條傳播鏈社區大群聚
https://www.cna.com.tw/amp/news/firstnews/202105175007.aspx
最早發病個案在4/6? 莊人祥:他應該是其他病毒
https://www.ctwant.com/amp/article/117798
時間序列資料特性 在 國家衛生研究院-論壇 Facebook 的最讚貼文
【mRNA疫苗臨床試驗95%有效! mRNA疫苗會是COVID-19的救世主嗎?】:發表在新英格蘭醫學期刊(NEJM)上的兩篇論文提到【註1】,兩個mRNA疫苗臨床研究分別收案3萬多人與4萬多人,在打完疫苗之後的兩個月追蹤當中,施打疫苗讓COVID-19感染率減少了95%!【註3】
在本文開始前,在此先簡述說明一下「分子生物學的中心法則」,建立對DNA、RNA、mRNA的基礎認識。
■分子生物學的中心法則 (central dogma)(圖1)
用最簡單最直接的方式來描述的話,生物體的遺傳訊息是儲存在細胞核的DNA中,每次細胞分裂時,DNA可以複製自己 (replication),因而確保每一代的細胞都帶有同樣數量的DNA。
而當細胞需要表現某個基因時,會將DNA的訊息轉錄 (transcribe) 到RNA上頭,再由RNA轉譯 (translate) 到蛋白質,而由蛋白質執行身體所需要的功能。這也就是所謂的分子生物學的中心法則 (central dogma)。
對於最終會製造成蛋白質的基因來說,RNA是扮演了中繼的角色,也就是說遺傳訊息本來儲存在 DNA 上頭,然後經過信使 RNA (messenger RNA, mRNA) 的接棒,最後在把這個訊息傳下去,製造出蛋白質。【註4】
■冠狀病毒的基因組由RNA構成
RNA不如DNA穩定,複製過程容易出錯,因此一般RNA病毒的基因組都不大。但冠狀病毒鶴立雞群,基因組幾乎是其他RNA病毒的三倍長,是所有RNA病毒中最大、最複雜的種類。
冠狀病毒還能以重組RNA的方式,相當頻繁地產生變異,但是基因組中位在最前端的RNA序列相對穩定,因為其中有掌控病毒蛋白酶與RNA聚合酶的基因,一旦發生變異,冠狀病毒很可能無法繼續繁衍。
目前抗病毒藥物的研發策略之一,正是設法抑制病毒RNA複製酶(RdRp)。而最前端的RNA序列也是現階段以反轉錄聚合酶連鎖反應(RT-PCR)檢驗新冠病毒時鎖定的目標。中央研究院院士賴明詔表示,不同病毒的核酸序列當中還是有各自的獨特變異,正好用來區分是哪一種冠狀病毒。【註5】
■SARS-CoV-2是具有3萬個鹼基的RNA病毒
中國科學院的《國家科學評論》(National Science Review)期刊【註2】,2020年3月發表《關於SARS-CoV-2的起源和持續進化》論文指出,現已發生149個突變點,並演化出L、S亞型。
病毒會變異的原因可略分成兩種:
▶一是「自然演變」
冠狀病毒是RNA病毒,複製精準度不如DNA病毒精準度高,只要出現複製誤差,就是變異。
▶二是「演化壓力」
當病毒遇到抗體攻擊,就會想辦法朝有抗藥性的方向演變,找出生存之道。【註6】
■mRNA 疫苗是一種新型預防傳染病的疫苗
近期,美國莫德納生物技術公司(Moderna)與輝瑞公司(Pfizer),皆相繼宣布其COVID-19 mRNA疫苗的研究成果。
莫德納公司在2020年11月30日宣布他們的mRNA-1273疫苗在三期臨床試驗達到94.1%(p<0.0001)的超高保護力,受試者中約四成為高風險族群(患糖尿病或心臟病等),7000人為高齡族群(65歲以上),另也包含拉丁裔與非裔族群(報告中未提到亞洲裔)。
傳統大藥廠輝瑞公司,亦在美國時間11月18日發佈令人振奮的新聞稿:他們的RNA疫苗(BNT162b2)三期臨床試驗已達設定終點,保護力高達95%(p<0.0001)。該試驗包含了4萬名受試者,其中約有四成受試者為中高齡族群(56~85歲),而亞洲裔受試者約占5%。
■mRNA疫苗為什麼可以對抗病毒?
為什麼mRNA疫苗會有用?就讓我們先從疫苗的原理「讓白血球以為有外來入侵者談起」。
在過往,疫苗策略大致上可分為兩種:
● 將病毒的屍體直接送入人體,如最早的天花疫苗(牛痘,cowpox)、小兒麻痺疫苗(沙克疫苗,polio vaccines)、肺結核疫苗(卡介苗,Bacillus Calmette-Guérin, BCG)以及流感疫苗等。
✎補正
卡介苗 BCG(Bacillus Calmette-Guerin vaccine) :卡介苗是一種牛的分枝桿菌所製成的活性疫苗,經減毒後注入人體,可產生對結核病的抵抗力,一般對初期症候的預防效果約85%,主要可避免造成結核性腦膜炎等嚴重併發症。
▶以流感疫苗為例,科學家通常先讓病毒在雞胚胎大量繁殖後,再將其殺死,也有部分藥廠會再去除病毒屍體上的外套膜(envelope),進一步降低疫苗對人體可能產生的副作用後,再製成疫苗。
● 將病毒的蛋白質面具,裝在另一隻無害的病毒上再送入人體,如伊波拉病毒(Ebola virus disease, EVD)疫苗等。
▶以伊波拉病毒疫苗為例,科學家會剪下伊波拉病毒特定的醣蛋白(glycoproteins)基因,置換入砲彈病毒(Rhabdoviridae)的基因組中,使砲彈病毒長出伊波拉病毒的醣蛋白面具。
上述例子都是將致命病毒的部分殘肢送入人體,當病毒被樹突細胞(dendritic cells)或巨噬細胞(macrophages)等抗原呈現細胞(antigen-presenting cell, APC)吃掉後,再由細胞將病毒殘肢吐出給其他白血球,進而活化整個免疫系統,然而,mRNA疫苗採取了更奇詭的路數 - 「讓人體細胞自己生產病毒殘肢!」
■mRNA 疫苗設計原理(圖2)
將人工設計好可轉譯出病毒蛋白質片段的mRNA,包裹於奈米脂質顆粒中,送入淋巴結組織內,奈米脂質顆粒會在細胞中釋出RNA,使人體細胞能自行產出病毒蛋白質片段,呈現給其他白血球,活化整個免疫系統。
■mRNA疫苗設計流程(圖3)
1「科學家獲得病毒的全基因序列」
因社群媒體的發達、公衛專家、病毒研究者以及期刊編輯的努力,這次的COVID-19病毒序列很快的被發表;中國北京疾病管制局的研究團隊,挑選了九位患者,其中有八位,都有前往華南海鮮市場的病史,並從這些患者採取了呼吸道分泌物的檢體,運用次世代定序 (NGS,Next Generation Sequencing) 的方式,拼湊出新型冠狀病毒全部與部分的基因序列。並陸續將這些序列資料,提供給全世界的病毒研究者交互確認,修正序列的錯誤。
2「解析病毒基因群裡所有的功能,選定目標蛋白質(Covid-19病毒棘蛋白質)」
以冠狀病毒為例,通常會選病毒表面的棘狀蛋白(spike protein)。因為棘蛋白分布於病毒表面,可作為白血球的辨識目標,同時病毒需透過棘蛋白和人體細胞受體(receptor)結合,進而撬開人體細胞,因此以病毒繁殖的策略而言,此處的蛋白質結構較穩定。
3「製造要送入人體的mRNA,挑選出會製造棘蛋白的mRNA進行修飾」
挑選會轉譯(translation)出目標蛋白質的mRNA,並進行各項修飾,以提高該人工mRNA在細胞裡被轉譯成蛋白質的效率。如:輝瑞的mRNA疫苗(BNT162b1)選用甲基化(methylation)後的偽尿嘧啶(1-methyl-pseudouridine)取代mRNA裡的原始尿嘧啶(uracil, U),有助於提升mRNA的穩定性,並提高mRNA被轉譯成病毒棘蛋白的效率。
4「將人工mRNA裹入特殊載體,將mRNA包裹入特殊載體顆粒中」
因為mRNA相當脆弱且容易被分解,因此需要對載體進行包裹和保護。然而,有了載體後,接踵而來的問題是「該怎麼送到正確的位置(淋巴結)?」。而輝瑞和莫德納不約而同地都選用了奈米脂質顆粒(lipid nanoparticles)包裹mRNA載體,奈米脂質顆粒通常由帶電荷的脂質(lipid)、膽固醇(cholesterol)或聚乙二醇(polyethylene glycol, PEG)修飾過的脂質等組成,可以保護RNA,並將mRNA送到抗原呈現細胞豐富的淋巴結組織。
5「包覆mRNA的奈米脂質顆粒,注射在肌肉組織」
使其能循環到淋巴結,被淋巴結中的細胞吃掉。奈米脂質顆粒釋放出mRNA,使細胞產出病毒蛋白質片段,進而呈現給其他白血球並活化整個免疫系統。【註7】
mRNA可將特定蛋白質的製造指示送至細胞核糖體(ribosomes)進行生產。mRNA 疫苗會將能製造新冠病毒棘狀蛋白的 mRNA 送至人體內,並不斷製造棘狀蛋白,藉此驅動免疫系統攻擊與記憶此類病毒蛋白,增加人體對新冠病毒的免疫力,最終 mRNA 將被細胞捨棄。
值得注意的是,由於 mRNA 疫苗並無攜帶所有能製造新冠病毒的核酸(nucleic acid),且不會進入人體細胞核,所以施打疫苗無法使人感染新冠病毒。
Pfizer、BioNTech 研發的 BNT162b2 是美國第 1 個取得 EUA 的 mRNA 疫苗,施打對象除成年人,還包含 16 歲以上非成年人。且相比 Moderna 製造的 mRNA-1273 疫苗,患者施打第 2 劑 BNT162b2 的副作用較輕微。
Moderna 也不遑多讓,mRNA-1273 於 2020 年 12 月中取得 EUA,且具備在 -20°C 儲存超過 30 天的優勢。在臨床試驗中,使用 mRNA-1273 的 196 位受試者皆無演變成重度 COVID-19,相較安慰劑組中卻有 30 人最終被標為重度 COVID-19 患者。【註8】
為了觸發免疫反應,許多疫苗會將一種減弱或滅活的細菌注入我們體內。mRNA疫苗並非如此。相反,該疫苗教會我們的細胞如何製造出一種蛋白質,甚至一種蛋白質片段,從而觸發我們體內的免疫反應。如果真正的病毒進入我們的身體,這種產生抗體的免疫反應可以保護我們免受感染。【註9】
【Reference】
▶DNA的英文全名是Deoxyribonucleic acid,中文翻譯為【去氧核糖核酸】
▶RNA 的英文全名是 Ribonucleic acid,中文翻譯為【核糖核酸】。
1.來源
➤➤資料
∎【註1】
Baden LR, El Sahly HM, Essink B, et al. Efficacy and Safety of the mRNA-1273 SARS-CoV-2 Vaccine. N Engl J Med. 2020 Dec 30:NEJMoa2035389. doi: 10.1056/NEJMoa2035389. Epub ahead of print. PMID: 33378609; PMCID: PMC7787219.
https://www.nejm.org/doi/full/10.1056/NEJMoa2035389
Polack FP, Thomas SJ, Kitchin N, et al. Safety and Efficacy of the BNT162b2 mRNA Covid-19 Vaccine. N Engl J Med. 2020 Dec 31;383(27):2603-2615. doi: 10.1056/NEJMoa2034577. Epub 2020 Dec 10. PMID: 33301246; PMCID: PMC7745181.
https://www.nejm.org/doi/full/10.1056/NEJMoa2034577
∎【註2】
Xiaoman Wei, Xiang Li, Jie Cui, Evolutionary perspectives on novel coronaviruses identified in pneumonia cases in China, National Science Review, Volume 7, Issue 2, February 2020, Pages 239–242, https://doi.org/10.1093/nsr/nwaa009
∎【註3】
▶蘇一峰 醫師:https://www.facebook.com/bsbipoke
▶中時新聞網 「mRNA疫苗臨床試驗95%有效 醫:哪國搶到就能結束比賽」:
https://www.chinatimes.com/realtimenews/20210104004141-260405?chdtv
∎【註4】
( 台大醫院 National Taiwan University Hospital-基因分子診斷實驗室)「DNA、RNA 以及蛋白質」:https://www.ntuh.gov.tw/gene-lab-mollab/Fpage.action?muid=4034&fid=3852
∎【註5】
《科學人》粉絲團 - 「新冠病毒知多少?」:https://sa.ylib.com/MagArticle.aspx?id=4665
∎【註6】
(報導者 The Reporter)【肺炎疫情關鍵問答】科學解惑 - 10個「為什麼」,看懂COVID-19病毒特性與防疫策略:https://www.twreporter.org/a/covid-19-ten-facts-ver-2
∎【註7】
科學月刊 Science Monthly - 「讓免疫系統再次偉大!mRNA疫苗會是COVID-19的救世主嗎?」:https://www.scimonth.com.tw/tw/article/show.aspx?num=4823&page=1
∎【註8】
GeneOnline 基因線上 「4 大 COVID-19 疫苗大解密!」 :https://geneonline.news/index.php/2021/01/04/4-covid-vaccine/
∎【註9】
(CDC)了解mRNA COVID-19疫苗
https://chinese.cdc.gov/coronavirus/2019-ncov/vaccines/different-vaccines/mrna.html
➤➤照片
∎【註4】:
圖1、分子生物學中心法則
∎【註7】:
圖2:mRNA 疫苗設計原理
圖3:mRNA 疫苗設計流程圖
2. 【國衛院論壇出版品 免費閱覽】
▶國家衛生研究院論壇出版品-電子書(PDF)-線上閱覽:
https://forum.nhri.org.tw/publications/
3. 【國衛院論壇學術活動】
▶https://forum.nhri.org.tw/events/
#國家衛生研究院 #國衛院 #國家衛生研究院論壇 #國衛院論壇 #衛生福利部 #疾病管制署 #COVID-19 #mRNA疫苗 #新英格蘭醫學醫學期刊 #NEJM
衛生福利部 / 疾病管制署 - 1922防疫達人 / 財團法人國家衛生研究院 / 國家衛生研究院-論壇