Nota traducătorului
Bună. Dacă aveți observații referitoare la corectitudinea traducerii - în principal legat de chimie și biologie, trimiteți-mi un mesaj. Titlul original este Reverse Engineering Source Code of the BioNTech/Pfizer Vaccine: Part 2, autorul fiind Bert Hubert.
Ultima modificare: 2021-01-03 18:00:00
Timp necesar: 10 de minute
TLDR: nu avem
Toate informațiile despre vaccinul BNT162b2 de pe această pagină au ca sursă acest document publicat de World Health Organization.
Aceasta este o pagină actualizată constant. Reveniți pentru a avea actualizări.
Pe scurt: vaccinul ARNm a fost optimizat de fabricant schimbând anumite părți ale ARN de la (de exemplu) UUU la UUC iar oamenii își doresc să înțeleagă logica din spatele acestor modificări. Această provocare este asemănătoare cu criptografia și operațiunile de reverse engineering cu care matematicienii și inginerii se confruntă constant. Pe această pagină veți găsi toate detaliile pentru a vedea CUM a fost optimizat vaccinul.
Am considerat că va fi un puzzle amuzant, dar tocmai ce am fost informat că procedura de optimizare și documentarea ei este extrem de amuzantă pentru cercetători, aceasta ajutându-i să genereze noi proteine și vaccinuri.
Deci, dacă vrei să contribui la cercetarea în domeniul vaccinurilor, citește în continuare.
Iată lista celor mai bune rezultate obținute de algoritmii de optimizare:
Nume | Scor | Autor | Comentariu |
---|---|---|---|
dnachisel | 91.08% | Erik Brauer | DNAChisel algorithm |
dnachisel | 90.9% | Pedro José Pereira Vieito | DNAChisel algorithm |
remap | 88.5% | Howard Chu | Map every codon to an amino acid, pick the best codon for that amino acid |
dnachisel | 79.5% | Naomi Jacobs | DNAChisel algorithm |
codon mapping | 79.4% | Harry Harpel | A simple static codon mapping |
most-frequent.py | 78.3% | Seo Sanghyeon | Codon frequency optimization using python_codon_tables |
3rd-cg.py | 60.8% | Peter Kuhar | If third position is already 'G' or 'C', no change. Otherwise replace third position by a C, if protein still matches, done. Otherwise try a G. |
3rd-gc.go | 53.1% | bert hubert | If third position is already 'G' or 'C', no change. Otherwise replace third position by a G, if protein still matches, done. Otherwise try a C. |
Nop | 27.6% | Does not do any optimization at all |
Puteți trimite actualizări ale rezultatelor la bert@hubertnet.nl or @PowerDNS_Bert.
Ar trebui să fim recunoscători BioNTech pentru publicarea acestor informații. Și, desigur, ar trebui să mulțumim unui mare număr de cercetători care timp de zeci de ani au muncit pentru a ajunge la punctul la care acest vaccin poate fi produs. Este extraordinar.
ceste realizări m-au făcut să vreau să înțeleg totul despre acest vaccin. Am scris articolul Reverse Engineering al codului sursă al vaccinului SARS-CoV-2 BioNTech/Pfizer (original Reverse Engineering the source code of the BioNTech/Pfizer SARS-CoV-2 Vaccine) care descrie oarecum în detaliu ARNm al vaccinului. Vă va fi de ajutor să citiți acea postare înainte de a merge mai departe. Promit că o veți găsi interesantă.
Dar acea postare a lăsat unele întrebări și abia acum lucrurile devin fascinante.
Vaccinul conține cod ARN care generează o versiune modificată va proteinei SARS-CoV-2.
Codul ARN al vaccinului este oricum modificat față de cel original, al virusului. Această modificare este realizată de fabricant, pe baza înțelegerii modului în care funcționează natura.
Și din pe baza cercetărilor făcute, se pare că aceste modificări fac vaccinul mult mult mai eficient. Ar fi mult mai interesant dacă am înțelege aceste modificări. AR putea explica de ce vaccinul Moderna are nevoie de 100 de micrograme de substanță activă și cel BioNTech doar de 30.
Iată codul care generează începutul proteinei S în cazul virusului șî al vaccinului. Semnele de exclamare arată modificările.
Virus: AUG UUU GUU UUU CUU GUU UUA UUG CCA CUA GUC UCU AGU CAG UGU GUU Vaccin: AUG UUC GUG UUC CUG GUG CUG CUG CCU CUG GUG UCC AGC CAG UGU GUU ! ! ! ! ! ! ! ! ! ! ! ! !
ARN este un șir (serios, chiar e) de caractere caracteristice ARN - A, C, G și U. Nu există grupare fizică, dar corect este să facem analiza în grupuri de 3.
Fiecare grup (numit codon) are un aminoacid corespunzător (notat cu o literă mare). Un șir de aminoacizi formează o proteină. Iată cum arată rzultatul:
Virus: AUG UUU GUU UUU CUU GUU UUA UUG CCA CUA GUC UCU AGU CAG UGU GUU M F V F L V L L P L V S S Q C V Vaccine: AUG UUC GUG UUC CUG GUG CUG CUG CCU CUG GUG UCC AGC CAG UGU GUU ! ! ! ! ! ! ! ! ! ! ! ! !
Aici putem vedea cădeși codonii sunt diferiți, aminoacidul este același, Există 4*4*4 variante de codoni dar numai 20 de aminoacizi. Aceasta înseamnă că un codon poate fi schimbat în ceilalți și să rezulte același aminoacid.
Vedem că al doilea codon, UUU, a fost schimbat în UUC. Modificarea este de fapt adăugarea unui C. Al treilea codon este modificat din GUU în GUG, modificarea fiind adăugarea unui G.
Se știe că un procent mai mare din caracterele G și C îmbunătățește eficiența unui vaccin ARNm.
Acum, dacă asta ar fi totul, acesta ar putea fi finalul paginii. "Algoritmul de a schimba codoni pentru a avea mai mulți G și C". Dar ajungem la al nouălea codon care modifică CCA în CCU.
În cele ~4000 de caractere ale vaccinului, aceasta se întâmplă de multe ori.
Scopul este: găsiți un algoritm care modifică ARN-ul aflat în libertate în cel din vaccinul BNT162b2. Deoarece toată lumea vrea să înțeleagă cum ARN-ul viral ajunge într-un vaccin eficient. Algoritmul nu trebuie să reproducă exact codul ARN, dar ar fi plăcut să obținem ceva similar, în același timp fiind și minimalist.
Pentru a vă ajuta, am convertit datele în mai multe formate, așa cum este descris pe pagina GitHub page.
Atenție: în aceste fișiere U despre care s-a vorbit mai sus apare ca T. U și T sunt reprezentarea în ARN și ADN ale aceleiași informații.
Cel mai bun punct de pornire poate fi fișierul cu ambele reprezentări, alăturate - 'side-by-side.csv'. Acesta conține variantele originală și modificată pentru fiecare codon:
abspos,codonOrig,codonVaccine 0,ATG,ATG 3,TTT,TTC 6,GTT,GTG ... 3813,TAC,TAC 3816,ACA,ACA 3819,TAA,TGA
Există o tabelă de echivalențe care arată ce codoni pot fi schimbați fără a modifica secvența de aminoacizi. Aceasta se găsește în codon-table-grouped.csv. Există și o versiune vizuală aici.
[N. traducătorului: imaginea de mai jos conține tablea de echivalențe, adăungată pentru ușurința urmăririi conținutului]
Pe GitHub se găsește 3rd-gc.go (și 3rd-gc.py).
Acestea implementează un algoritm simplu, care funcționează astfel:
Sau, în golang:
// base case, don't do anything our = vir // don't do anything if codon ends on G or C already if(vir[2] == 'G' || vir[2] =='C') { fmt.Printf("Codon ended on G or C already, not doing anything.") } else { prop = vir[:2]+"G" fmt.Printf("Attempting G substitution, new candidate '%s'. ", prop) if(c2s[vir] == c2s[prop]) { fmt.Printf("Amino acid still the same, done!") our = prop } else { fmt.Printf("Oops, amino acid changed. Trying C, new candidate '%s'. ", prop) prop = vir[:2]+"C" if(c2s[vir] == c2s[prop]) { fmt.Printf("Amino acid still the same, done!") our=prop } } }
Rezultatul acestui algoritm este destul de slab - 53.1% identic cu vaccinul ARNm, dar e un punct de plecare.
La dezvoltarea algoritmului fiți siguri să vă bazați doar pe ARN-ul virusului. Nu trișați, uitându-vă la ARN BioNTech!
Dacă aveți un scor de peste 53.1% trimiteți-mi prin e-mail un link la cod pe adresa bert@hubertnet.nl (sau @PowerDNS_Bert) și îl voi adăuga la lista liderilor aflată la începutul paginii.
Ca în cazul oricărei forme de reverse engineering sau criptanaliză, ajută să înțelegem ce analizăm.
Utilizarea GC
Cunoaștem că scopul 'optimizării codonilor' este să avem mai mult C și G în vaccinul ARNm. Oricum, există o limită. În cazul ADN, G și C au o legătură foarte puternică, putând ajunge la punctul la care dacă sunt mult prea multe nucleotide, ADN-ul nu se mai poate replica eficient.
Deci unele modificări pot fi făcute pentru a scădea numărul de GC dintr-un lanț ADN, dacă acesta este prea mare.
Am avut o ciripitură pe această temă mai devreme.
Optimizarea codonilor
Unii codoni sunt rari în ADN-ul uman sau în anumite celule. Unii codoni pot fi înlocuiți cu alții doar pentru că sunt mai frecvenți în anumite celule.
Am avut o ciripitură pe această temă mai devreme.
Până aici am studiat doar codonii. Dar ARN-ul nu cunoaște nimic despre codoni, nu există marcaje care să spună unde începe și unde se încheie un codon. Dar totdeauna primul codon corespunzător unei proteine este ATG (sau AUG în cazul ARN).
ARN se pliază pentru a junge să aibă o anume formă. Această formă îl ajută să evite sistemul imunitar și să îmbunătățească generarea de aminoacizi. Aceasta depinde doar de secvența de nucleotide și nu de anumiți codoni.
Secvențele ARN pot fi trimise la acest server al Institutului de Chimie Teoretică al Unversității din Viena care va plia ARN-ul. Acest server este extrem de avansat șî realizează o mulțime de calcule.
Această pagină Wikipedia descrie funcționarea sa.
Poate exista situația în care anumite optimizări îmbunătățesc plierea.
Am fost informat și că acest document furnizat de Moderna (al doilea producător de vaccin bazat pe ARNm) poate fi relevantă: structura mRNA reglează expresia proteinelor prin schimbări în înjumătățirea timpului de viață funcțional (engl structure regulates protein expression through changes in functional half-life).