Phác họa bài post:
ⓐ Viruses.
ⓑ mRNA-based
vaccine.
ⓒ Source code.
ⓓ Tiềm năng?
-
Mở đầu, tôi liệt
kê một vài định nghĩa cách viết tắt để anh/chị tiện theo dõi:
·
DNA:
DeoxyriboNucleic Acid
·
RNA:
RiboNucleic Acid
·
mRNA:
Messenger RNA
·
BNT162b2:
Pfizer & BioNTech mRNA-based vaccine
·
mRNA-1273:
Moderna mRNA-based vaccine
Chúng ta đều biết
là vắc-xin mã hiệu BNT162b2 do 2 công ty Pfizer và BioNTech
phát triển đã được Anh, tiếp theo là Mỹ và gần đây EU, chấp nhận tiêm chủng đại
trà để ngừa SARS-CoV-2. (SARS-CoV-2 là tên của vi-rút đã gây ra đại dịch
COVID-19.) Nguyên lý phát triển vắc-xin BNT162b2 dựa trên nền mRNA.
Vắc-xin mRNA-1273 của Moderna cũng dựa trên nền mRNA. Có lẽ
nhiều anh/chị cũng như tôi không khỏi tò mò về cách mà họ “làm ra” vắc-xin này,
đành rằng chúng ta không phải là dân ngành y cũng không phải là dân ngành sinh
học. Tò mò có lẽ là bản tính cố hữu của dân CNTT!
Vô tình, gần
đây (ngày 27/12/2020) tôi đọc được một bài post của tác giả Bert Hubert,
nói về vấn đề này: https://berthub.eu/articles/posts/reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/
Nếu anh/chị đọc
kỹ bài của Bert Hubert, có lẽ anh/chị khỏi phải đọc phần tiếp theo bài
post của tôi. Tôi chỉ diễn đạt lại một cách nôm na, theo nhận thức của tôi, về cách
làm vắc-xin dựa trên nguyên lý mRNA, theo cách hiểu của một người lập
trình phần mềm (software coder). Nếu anh/chị có thắc mắc thì vui lòng viết
email cho tác giả Bert Hubert nhé 😊 – email của Bert Hubert là bert@hubertnet.nl.
🧬
ⓐ Viruses.
Để chống lại và
phòng ngừa vi-rút, chúng ta dành ra ít phút để tìm hiểu về cơ chế của vi-rút.
① Mã
hóa thông tin sự sống.
Nếu như trong máy tính, chúng ta mã hóa thông tin thành các bit 0, 1 thì sự sống
mã hóa thành 4 nucleotide cơ sở: A, C, G, U/T.
A: Adenine
C: Cytosine
G: Guanine
T: Thymine
U: Uracil
Trong RNA chúng ta viết các ký hiệu là A, C, G, U.
Trong DNA chúng ta viết các ký hiệu là A, C, G, T.
-
➡ RNA của vi khuẩn có
chiều dài khoảng hơn vài triệu nucleotide.
➡ DNA của cơ thể sống
bậc cao có chiều dài tới hàng tỷ nucleotide.
➡ DNA của người có chiều
dài khoảng 750megabyte, gồm nhiều đoạn mã lặp. Nếu có thuật toán nén tốt thì khối
thông tin này sẽ được nén nhỏ xuống còn vài chục megabyte! 😊
-
Khác với các bit máy tính không có trọng lượng, các bit nucleotide có trọng
lượng anh/chị nhé: 0.53 * 10⁻²¹
gram. Chẳng hạn, 1 liều vắc-xin 30 microgram chứa 6*10¹⁶ ký tự! Tính theo đơn vị
byte thì lọ này chứa khoảng 25 petabyte.
② A-xít
a-min (Amino acids). Chỉ có 20 loại a-xít a-min. A-xít a-min được mã
hóa theo nhóm 3 nucleotide một, được gọi là một codon. Ví dụ về
cách viết codon: ‘AAC’, ‘CCG’. Một byte có 8 bit, còn một codon
có 3 nucleotide. Mỗi một bit nucleotide có 4 giá trị khác nhau
(A, C, G, U). Như vậy, nếu tính tổ hợp thì 3 nucleotide sẽ tạo ra 4*4*4
= 64 tổ hợp khác nhau. (Một byte có 28 = 256 tổ hợp khác nhau.)
⚠ Một codon
tương ứng với một a-xít a-min. Vì chỉ có 20 loại a-xít a-min mà lại có 64 tổ hợp
codon nên có nhiều codon tương ứng với một a-xit amin. (Tham chiếu:
DNA and RNA codon tables.)
Các a-xít a-min có thể được liên kết với nhau để tạo thành protein (đạm).
③ RNA. Chuyển sang thuật ngữ máy tính, DNA có
thể xem như bộ nhớ trên đĩa còn RNA đóng vai là bộ nhớ RAM. Cơ thể sống có một
cơ chế “chép” thông tin từ DNA sang các phân tử RNA. Giống như trong máy tính
chúng ta đọc file trên đĩa (DNA) và kết quả đọc được chép vào RAM (RNA). Chúng
ta có thể hiểu nôm na là “máy tính sự sống” xử lý chương trình chạy trên RNA.
“Bộ nhớ RAM” RNA chứa mã nguồn có thể xử lý được (executable). Cũng giống
như RAM, RNA rất mong manh (volatile) trong lúc DNA rất ổn định. (Trong
máy tính, khi ta ngắt điện thì bộ nhớ RAM mất toàn bộ nội dung - trong lúc nội
dung trên đĩa vẫn giữ nguyên.)
Tế bào có một cỗ máy (được gọi là ribosome) có thể dịch mã (translate)
các phân tử RNA thành chuỗi a-xít a-min (protein). Ribosome đọc mã trong
sợi RNA và căn cứ vào mã đọc được để “sản xuất” ra a-xít a-min. Có thể nói ribosome
là “nhà máy tổng hợp protein bên trong tế bào”.
④ Protein. Protein là các phân tử có kích cỡ từ
nhỏ đến rất lớn có thể thực hiện (hoặc kích hoạt) hầu hết mọi phản ứng hóa học,
quá trình vật lý.
➡ Có loại protein chỉ
có ý nghĩa “quản trị nội bộ”. Chẳng hạn như insulin báo hiệu rằng các tế
bào nên thay đổi hành vi của chúng, nhưng chính bản thân insulin lại không
làm hoặc tạo ra bất cứ điều gì.
➡ Có loại protein
đóng vai trò cảm biến, như protein cryptochrome có thể phát hiện ánh
sáng, từ trường. Có loại khác đo được mức pH, đo nhiệt độ, đo mức đường
glucose!
➡ Có loại protein là
men (enzyme) xúc tác phản ứng hóa học để sản sinh ra các phân tử mới.
➡ Có loại protein chỉ
đóng vai “cấu trúc” cho tế bào và các hợp phần của tế bào.
║ Tóm lại, protein là các thành tố cơ
bản của sự sống, vừa có chức năng cảm biến, vừa có chức năng thực thi.
⑤ Tương tác (interaction). Tất nhiên, mọi
thành tố của cơ thể sống tương tác với nhau.
➡ Có loại protein
“chặn” không cho đọc thông tin một khối nào đó của DNA.
➡ Có loại protein “đọc”
thông tin DNA chuyển sang RNA và trên cơ sở đó, ribosome sản sinh ra các
protein mới.
⑥ Phiên mã (transcription). Phiên mã (sao
chép mã) là bước đầu tiên của một số bước biểu hiện gen dựa trên DNA, trong đó
một đoạn DNA cụ thể được sao chép thành RNA (đặc biệt là mRNA) bởi enzyme
RNA polymerase. Tham khảo: Transcription.
Điểm mấu chốt chúng ta cần quan tâm ở đây là “phần mềm sự sống” (life software)
có thể chép một đoạn DNA thành RNA.
⑦ Virus. Vi-rút có RNA và DNA là vật liệu di truyền của chúng.
Nhưng vi-rút không có cỗ máy ribosome.
⚠ Nếu
protein bao bọc phần mềm vi-rút lây nhiễm vào tế bào, thì DNA (hoặc RNA) của
chính nó sẽ chạy trên bộ máy của tế bào sống đó. Nếu thành công, cơ chế này sẽ
biến tế bào thành một nhà máy sản xuất vi-rút mới, khi được thoát ra, chúng có
thể tiếp tục lây nhiễm sang các tế bào khác.
⚠ Vi-rút
không phải là một cơ thể sống, nó là một “phần mềm” “chạy” trên một cơ thể sống.
🧬
ⓑ mRNA-based vaccine.
Ý tưởng chung về
vắc-xin là dạy cho hệ thống miễn dịch cách chống lại mầm bệnh trước khi mầm bệnh
tấn công cơ thể.
① Theo
cách truyền thống, việc này được thực hiện bằng cách tiêm một loại vi-rút đã
suy yếu hoặc mất khả năng (giảm độc lực), cộng với một “chất bổ trợ” để kích hoạt
hệ thống miễn dịch hoạt động.
② Vắc-xin
BNT162b2 trên nền mRNA có cách tiếp cận khác so với cách truyền
thống: lọ vắc-xin chứa vật liệu di truyền mô tả protein SARS-CoV-2 Spike.
(Chữ Spike ở đây là tính từ bổ sung cho SARS-CoV-2 – tạm dịch là Gai.) Bằng
phương pháp hóa học thông minh, vắc-xin đưa vật liệu di truyền này vào một số tế
bào của cơ thể người.
③ Sau
đó, chúng bắt đầu sản sinh ra các protein SARS-CoV-2 Spike với số lượng
đủ lớn để hệ thống miễn dịch của chúng ta được kích hoạt. Đối mặt với các
protein Spike, (cộng với việc có dấu hiệu cho thấy các tế bào đã bị tiếm
quyền), hệ thống miễn dịch của chúng ta phản ứng mạnh mẽ chống lại protein Spike,
đặc biệt là chống lại quá trình tự sinh sôi của nó.
Theo báo cáo của Pfizer & BioNTech, vắc-xin của họ (BNT162b2)
đạt hiệu quả tới 95%.
🧬
ⓒ Source code.
Hẳn nhiên, đọc
mã nguồn của một vắc-xin gây tò mò cho tất cả chúng ta. Vậy thực chất việc này
là như thế nào? Mã nguồn vắc-xin là một dãy các ký tự mã hóa gen, là dãy tổ hợp
các nucleotide: A, C, G, U/T. Anh/chị có thể tải xuống toàn bộ dãy các
ký tự của vắc-xin BTN162b2 tại trang web của WHO: https://mednet-communities.net/inn/db/media/docs/11889.doc (hoặc anh/chị tham khảo file mà tôi đính
kèm).
① Schematic. Tài liệu của WHO cho chúng ta biết dãy
mã nguồn của vắc-xin BNT162b2 gồm 4284 ký tự được chia thành 6 phần theo
thứ tự sau:
|
cap: |
vị trí 1-2 |
|
5’-UTR: |
vị trí 3-54 |
|
sig: |
vị trí 55-102 |
|
S protein_mut: |
vị trí 103-3879 |
|
3’-UTR: |
vị trí 3880-4174 |
|
poly(A): |
vị trí 4175-4284 |
Nhìn vào mô tả trên, chúng ta thấy sự sống lập trình rất chi li, chặt chẽ, giống
hệt như chúng ta lập trình bằng ngôn ngữ máy ASSEMBLY vậy! 😊
Tiếp theo, chúng ta khảo sát từng phần của cấu trúc này nhé.
② Cap. Phần
cap (tạm dịch là chóp) có đúng 2 bit được mã hóa là ‘GA’. Đây là mã báo hiệu phần sau là ‘Executable’
(giống như quy định về file .EXE của DOS phải bắt đầu bằng ‘MZ’ hay script lệnh trên UNIX phải bắt đầu
bằng ‘#!‘).
Mã ‘GA’ báo là phần mã tiếp theo đến từ nhân tế
bào. Tất nhiên, chúng ta biết rằng phần mã tiếp theo là đến từ vắc-xin, chứ
không phải đến từ nhân tế bào. Đây là cách “hợp pháp hóa” đoạn mã. Nếu không như
vậy, phần mã tiếp theo sẽ bị tế bào tìm cách hủy.
③ 5’-UTR. [5’
untranslated region]. Vùng này có tên gọi là vùng không dịch mã (untranslated
region). Như chúng ta biết, thông thường ribosome đọc mã của RNA và
sản xuất ra protein. Nhưng mã vùng này lại làm cho ribosome không sản xuất
ra protein. Sao lại có chuyện như thế được?!
Chúng ta chép đoạn mã này ra ở đây để “khảo sát”:
GAAΨAAACΨAGΨAΨΨCΨΨCΨGGΨCCCCACAGACΨCAGAGAGAACCCGCCACC
Trong dãy ký tự trên, chúng ta thấy một loạt các ký tự Ψ, không phải là một
trong 4 ký tự nucleotide theo quy định là A, C, G, U. Vì sao người ta
đưa Ψ vào, hẳn phải có lý do nào đó chứ?!
Cơ thể của chúng ta luôn có một hệ thống chống vi-rút tấn công. Các tế bào
không hề thích thú gì với các RNA ngoại lai cả và sẽ cố gắng ở mức cao nhất để
hủy diệt các RNA ngoại lai này. Đây có thể coi như “bức tường lửa”, nói theo
ngôn ngữ hệ thống máy tính.
Đây, từ lâu là một vấn đề đối với việc sản xuất vắc xin trên nền mRNA.
Cái chốt chặn đầu tiên nó cần phải vượt qua là “bức tường lửa” này. Qua nhiều
năm thử nghiệm, người ta nhận thấy rằng, nếu U trong RNA được thay thế bằng một
phân tử đã được sửa đổi một chút, hệ thống miễn dịch của chúng ta sẽ mất hứng
thú đánh chặn. Chìa khóa của vấn đề nằm ở đây.
Vì vậy, trong vắc xin BioNTech / Pfizer, mỗi U đã được thay thế bằng chất
1-methyl-3’-pseudouridylyl, ký hiệu là Ψ. Một điều thực sự thông minh là
mặc dù sự thay thế này (Ψ) không làm cho hệ thống miễn dịch của chúng ta nổi giận,
nó được các bộ phận liên quan của tế bào chấp nhận như một nucleotide U thông
thường.
Để thâm nhập hệ thống bảo mật máy tính, người ta vẫn hay dùng mẹo này. (Trên diễn
đàn này tôi tin là có nhiều anh/chị “hắc-cơ mũ trắng. 😊) Khi ta truyền vào hệ thống một đoạn mã
mà hệ an ninh không nhận dạng được thì đoạn mã đó sẽ vượt qua tường lửa và “dữ
liệu” đó hệ thống chấp nhận như bình thường. Nếu đoạn mã đó là một phần mềm
(trường hợp vắc-xin BTN162b2 là một ví dụ) và như vậy hệ thống đã bị
hack.
Rõ ràng ý tưởng chèn Ψ để thay thế U là rất thông minh và thú vị, đúng không
anh/chị?!
💡 Ý
tưởng chèn Ψ là một ý tưởng đột phá trong biology. Đó là thành quả
nghiên cứu của nhà khoa học gốc Hung-ga-ri, bà Katalin Karikó. Mời
anh/chị tham khảo bài post: https://www.statnews.com/2020/11/10/the-story-of-mrna-how-a-once-dismissed-idea-became-a-leading-technology-in-the-covid-vaccine-race/. Bà Katalin Karikó sẽ đoạt được giải
Nobel năm 2021 chăng?
💡 Liệu
có con vi-rút nào sử dụng ý tưởng này để tấn công hệ miễn dịch của chúng ta
không? Khả năng này vô cùng nhỏ, vì “sự sống tự nhiên” ngoài kia không có nhà
máy nào sản xuất ra 1-methyl-3’-pseudouridylyl cả.
Quay trở lại với đoạn mã này, chúng ta tự hỏi: dãy 52 ký tự của 5’-UTR đóng vai trò gì?
Trước hết, chúng ta tìm hiểu cách tế bào “dịch mã” RNA thành protein như thế
nào? Chúng ta cứ tưởng tượng cỗ máy ribosome như máy in 3D cho protein. Ribosome
đọc “kiến trúc” nằm trong sợi RNA, dựa vào thông tin đọc được này nó tiết ra một
chuỗi các a-xít a-min, và chuỗi các a-xít a-min này tạo thành protein.
Để quá trình trên xảy ra, đầu tiên tế bào phải đưa cỗ máy ribosome đặt
trên sợi RNA. Có thể xem chức năng thứ nhất của 5’-UTR là đoạn mã báo cho tế bào đặt ribosome
lên sợi RNA.
Ngoài ra, 5’-UTR còn chứa metadata khác như: điểm
bắt đầu dịch mã (translate) từ đâu, dung lượng bao nhiêu.
④ sig [S
glycoprotein signal peptide (extended leader sequence)]. Bây giờ chúng ta
khảo sát đoạn sig, gồm 48 nucleotide tương đương với
16 codon.
Quay trở lại mục tiêu chính của vắc-xin: kích hoạt hệ thống tế bào sản xuất ra
nhiều protein Spike SARS-CoV-2. Càng nhiều càng tốt.
Đoạn 5’-UTR chứa các metadata như đặt ribosome
lên sợi RNA, xác định điểm bắt đầu dịch mã, dung lượng protein. Vẫn còn thiếu một
thông tin nữa, thưa anh/chị: protein được sản xuất ra sẽ đi về đâu? Thông tin
“địa chỉ đến” này được mã hóa tại sig. Nếu
anh/chị có thời gian xin tham khảo thêm về Signal peptide tại đây: https://en.wikipedia.org/wiki/Signal_peptide.
Trong bài post, tác giả Bert Hubert đã phân tích kỹ về nghệ thuật mã hóa
đoạn signal peptide của vắc-xin BNT162b2. Mục tiêu của đoạn mã
này là làm cho tế bào sinh ra protein một cách hiệu quả nhất.
⑤ S protein_mut [Codon-optimized sequence]. Đoạn
mã dài 3777 nucleotide (tương đương 1259 codon) này là vùng mã
chính để sản xuất ra protein Spike. Đoạn mã gồm các codon được tối
ưu hóa.
║ Bên lề: Các codon được tối
ưu hóa như thế nào lại là một chủ đề thú vị khác. Mời anh/chị tham khảo thêm bài post này (cũng
của Bert Hubert): https://berthub.eu/articles/posts/part-2-reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/. Phần này tác giả liệt kê hàng loạt thuật
toán tối ưu hóa. Một số thuật toán sử dụng thư viện ngôn ngữ lập trình đang
“hot” hiện nay là Python! Tôi cho rằng một đề án tốt nghiệp cho sinh viên CNTT
về tối ưu hóa codon là chuyện đáng để làm quá đi chứ! 😊
⚠ Đáng
chú ý trong đoạn mã tạo protein này, có codon báo hiệu “dừng” sản xuất
protein. Đó là codon trong nguyên bản của vi-rút có mã là ‘UAA’,
còn trong phiên bản vắc-xin là ‘ΨGA’.
⑥ 3’-UTR [3´ untranslated region]. Tiếp sau
đoạn mã “sản xuất protein” S protein_mut
là vùng không dịch mã (untranslated region). Nghĩa là ribosome
khi nhìn thấy đoạn mã này sẽ không tiết ra protein như đoạn trên. Đối với những
ai quan tâm sâu hơn về RNA thì có thể tham khảo một site trên Wikipedia là: https://en.wikipedia.org/wiki/Three_prime_untranslated_region.
Trong tham khảo này, có một câu có thể gây cho chúng ta thất vọng, đó là: “Despite
our current understanding of 3′-UTRs, they are still relative mysteries”.
Vì sao có đoạn mã này trong “phần mềm sự sống” vẫn còn là bí ẩn. (Tôi cho rằng
dù nhân loại có giỏi đến đâu, “sự sống” vẫn luôn chứa rất nhiều phần chúng ta
chưa hiểu được.)
⑦ poly(A)[110-nucleotide poly(A)-tail]. Kết
thúc đoạn mã mRNA là một loạt bit ‘A’.
mRNA được “tái sử dụng” nhiều lần. Nghĩa là ribosome sẽ đọc lại
đoạn mã, lại “sản xuất” ra protein (phép lặp trong lập trình 😊). Mỗi một lần như vậy, một bit ‘A’
ở đuôi sẽ bị mất. Đến khi hết các bit ‘A’ ở đuôi, đoạn mã này sẽ bị loại bỏ khỏi
quy trình tạo protein (điều kiện dừng vòng lặp 😊).
Dãy poly(A)của vắc-xin BNT162b2 gồm 30 bit ‘A’,
10 bit liên kết là ‘GCAUAUGACU’ và tiếp theo là 70 bit ‘A’.
Vì sao họ mã hóa như vậy? Tác giả Bert Hubert phỏng đoán rằng có lẽ đây
là do họ muốn giữ “độc quyền” về cách tăng cường tính biểu hiện của protein mà
vắc-xin của họ tạo ra.
║ Ngoài lề: Như thế nào là biểu hiện
protein (protein expression) là khái niệm chắc nằm ngoài “sự quan tâm” của
ICT-ers. Tôi hiểu một cách nôm na rằng nếu vắc-xin có tính biểu hiện
protein cao →
hệ thống miễn dịch cơ thể có xác suất phản ứng với vắc-xin cao → vắc-xin có hiệu quả cao. Vắc-xin BNT162b2
đạt hiệu quả lên đến 95%.
⑧ Tóm lại, cấu trúc của một mRNA có
thể hình dung như sau:
|
Cap |
5’-UTR |
Start| -coding sequence- |Stop |
3’-UTR |
poly(A) |
|
|
|
|
|
|
Điểm độc đáo của vắc-xin BNT162b2: có lẽ là thay thế nucleotide U
bằng Ψ để “lách” qua tường lửa của tế bào; tối ưu hóa các codon để nâng
cao biểu hiện protein.
🧬
ⓓ Tiềm năng?
Sau khi xem
xong “mã nguồn” của vắc-xin BNT162b2, chúng ta có cảm giác là với cách
làm tương tự, về mặt lý thuyết người ta có thể chữa được mọi bệnh tật! Cái làm
cho tôi ấn tượng nhất, có lẽ là người ta đang chuyển đổi một số vấn đề y học (medicine),
khoa học sự sống (life sciences) thành một câu chuyện liên quan đến phần
mềm (software), liên quan đến mô phỏng (simulation), liên quan đến
tối ưu hóa (optimization).
Tất nhiên, từ việc
hiểu nguyên tắc đến việc đưa ra một cái gì đó ứng dụng được là cả một biển trời
mênh mông. Nói vậy thôi, chứ muốn theo kịp họ thì chúng ta vẫn phải bắt đầu bằng
các bước đi cơ bản nhất chứ nhỉ?!
Lục tìm trong văn bản liên quan đến R&D về khoa học, công nghệ, tôi thấy có
Quyết định 3685/QĐ-BKHCN về “Danh mục các công nghệ chủ chốt của
công nghiệp 4.0” ban hành ngày 3/12/2018. Trong danh mục này, tôi liệt kê
ra một số công nghệ, ít nhiều liên quan đến bài post:
23 Sinh học tổng hợp (Synthetic biology)
24 Công nghệ thần kinh (Neurotechnologies)
25 Tế bào gốc (Stem cells)
26 Xúc tác sinh học (Biocatalysis)
27 Tin sinh học (Bioinformatics)
28 Chip sinh học và cảm biến sinh học (Biochip
and biosensor)
33 Công nghệ giải mã gen
Khảo sát danh
sách trên, tôi có cảm giác chỉ có 2 mục là “27 Tin sinh học (Bioinformatics)”
và “28 Chip sinh học và cảm biến sinh học (Biochip and biosensor)” là có
liên quan đến giới ICT của chúng ta. Tôi không có thông tin của các nhóm nghiên
cứu về các vấn đề này. Không biết là các nhóm nghiên cứu đó đã đi xa đến đâu.
🧬
Nhân đầu năm mới
(dương lịch), thấy có bài post hay nên chia sẻ với anh/chị, ngõ hầu anh/chị
nhâm nhi cà phê, nhàn đọc, cầu mong một năm mới 2021 tốt đẹp hơn nhiều so với
năm 2020. (Liệu có năm nào tệ hơn năm 2020 được không nhỉ?!)
(\_/)
(
•_•)
/
>☕