Gyorsítsa fel a fehérjeszerkezet előrejelzését az Amazon SageMaker ESMFold nyelvi modelljével

Gyorsítsa fel a fehérjeszerkezet előrejelzését az Amazon SageMaker ESMFold nyelvi modelljével

A fehérjék számos biológiai folyamatot irányítanak, például enzimaktivitást, molekuláris transzportot és sejttámogatást. A fehérje háromdimenziós szerkezete betekintést nyújt a működésébe és más biomolekulákkal való kölcsönhatásba. A fehérjeszerkezet meghatározására szolgáló kísérleti módszerek, mint például a röntgenkrisztallográfia és az NMR-spektroszkópia, drágák és időigényesek.

Ezzel szemben a közelmúltban kifejlesztett számítási módszerek gyorsan és pontosan megjósolhatják egy fehérje szerkezetét annak aminosavszekvenciájából. Ezek a módszerek kritikusak olyan fehérjék esetében, amelyeket nehéz kísérletileg tanulmányozni, mint például a membránfehérjék, amelyek számos gyógyszer célpontjai. Ennek egyik jól ismert példája az AlphaFold, egy mély tanuláson alapuló algoritmus, amelyet a pontos előrejelzéseiért ünnepeltek.

ESMFold egy másik nagyon pontos, mély tanuláson alapuló módszer, amelyet a fehérje szerkezetének aminosavszekvenciájából történő előrejelzésére fejlesztettek ki. Az ESMFold egy nagy fehérjenyelvi modellt (pLM) használ gerincként, és végpontokig működik. Az AlphaFold2-vel ellentétben nem igényel keresést ill Több szekvencia igazítás (MSA) lépésben, és nem támaszkodik külső adatbázisokra az előrejelzések generálásához. Ehelyett a fejlesztőcsapat az UniRef fehérjeszekvenciáinak millióira tanította a modellt. A képzés során a modell figyelmi mintákat alakított ki, amelyek elegánsan reprezentálják a szekvenciában szereplő aminosavak közötti evolúciós kölcsönhatásokat. A pLM használata MSA helyett akár 60-szor gyorsabb előrejelzési időt tesz lehetővé, mint a többi korszerű modell.

Ebben a bejegyzésben a Hugging Face előre betanított ESMFold modelljét használjuk Amazon SageMaker hogy megjósoljuk a nehézlánc szerkezetét trastuzumabEgy monoklonális antitest először fejlesztette ki Genentech betegségek kezelésére HER2-pozitív emlőrák. A fehérje szerkezetének gyors előrejelzése hasznos lehet, ha a kutatók tesztelni akarják a szekvencia-módosítások hatását. Ez potenciálisan a betegek túlélésének javulásához vagy kevesebb mellékhatáshoz vezethet.

Ez a bejegyzés egy példa a Jupyter-jegyzetfüzetre és a kapcsolódó szkriptekre a következőkben GitHub tárház.

Előfeltételek

Javasoljuk, hogy ezt a példát egy Amazon SageMaker Studio jegyzetfüzet a PyTorch 1.13 Python 3.9 CPU-optimalizált képfájl futtatása ml.r5.xlarge példánytípuson.

Vizualizálja a trastuzumab kísérleti szerkezetét

Kezdésként használjuk a biopython könyvtárat és egy segédszkriptet a trastuzumab szerkezet letöltéséhez a RCSB Protein Data Bank:

from Bio.PDB import PDBList, MMCIFParser
from prothelpers.structure import atoms_to_pdb target_id = "1N8Z"
pdbl = PDBList()
filename = pdbl.retrieve_pdb_file(target_id, pdir="data")
parser = MMCIFParser()
structure = parser.get_structure(target_id, filename)
pdb_string = atoms_to_pdb(structure)

Ezután használjuk a py3Dmol könyvtár a szerkezet interaktív 3D vizualizációként való megjelenítéséhez:

view = py3Dmol.view()
view.addModel(pdb_string)
view.setStyle({'chain':'A'},{"cartoon": {'color': 'orange'}})
view.setStyle({'chain':'B'},{"cartoon": {'color': 'blue'}})
view.setStyle({'chain':'C'},{"cartoon": {'color': 'green'}})
view.show()

A következő ábra a Protein Data Bank (PDB) 3N1Z 8D fehérjeszerkezetét mutatja be. Ezen a képen a trastuzumab könnyű lánca narancssárga, a nehéz lánc kék (a változó régióval világoskék), a HER2 antigén pedig zöld.

Accelerate protein structure prediction with the ESMFold language model on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Először az ESMFold segítségével megjósoljuk a nehéz lánc (B lánc) szerkezetét annak aminosavszekvenciájából. Ezután összehasonlítjuk az előrejelzést a fent bemutatott kísérletileg meghatározott szerkezettel.

Jósolja meg a trastuzumab nehézlánc szerkezetét annak szekvenciájából az ESMFold segítségével

Használjuk az ESMFold modellt a nehéz lánc szerkezetének előrejelzésére, és hasonlítsuk össze a kísérleti eredménnyel. Kezdésként egy előre beépített notebook-környezetet fogunk használni a Studioban, amely számos fontos könyvtárat tartalmaz, például PyTorch, előre telepítve. Bár használhatunk gyorsított példánytípust a notebook elemzés teljesítményének javítására, ehelyett nem gyorsított példányt használunk, és az ESMFold előrejelzést futtatjuk egy CPU-n.

Először betöltjük az előre betanított ESMFold modellt és tokenizátort innen Átölelő Arc Hub:

from transformers import AutoTokenizer, EsmForProteinFolding tokenizer = AutoTokenizer.from_pretrained("facebook/esmfold_v1")
model = EsmForProteinFolding.from_pretrained("facebook/esmfold_v1", low_cpu_mem_usage=True)

Ezután átmásoljuk a modellt az eszközünkre (ebben az esetben a CPU-ra), és beállítunk néhány modellparamétert:

device = torch.device("cpu")
model.esm = model.esm.float()
model = model.to(device)
model.trunk.set_chunk_size(64)

A fehérjeszekvencia elemzésre való előkészítéséhez tokenizálnunk kell. Ez lefordítja az aminosav-szimbólumokat (EVQLV…) az ESMFold modell által is értelmezhető numerikus formátumba (6,19,5,10,19,…):

tokenized_input = tokenizer([experimental_sequence], return_tensors="pt", add_special_tokens=False)["input_ids"]
tokenized_input = tokenized_input.to(device)

Ezután a tokenizált bemenetet a módba másoljuk, előrejelzést készítünk, és az eredményt fájlba mentjük:

with torch.no_grad():
notebook_prediction = model.infer_pdb(experimental_sequence)
with open("data/prediction.pdb", "w") as f:
f.write(notebook_prediction)

Ez körülbelül 3 percet vesz igénybe egy nem gyorsított példánytípuson, például egy r5 esetén.

Az ESMFold előrejelzés pontosságát a kísérleti szerkezettel való összehasonlítással ellenőrizhetjük. Ezt a US-Align eszköz, amelyet a Michigani Egyetem Zhang Labja fejlesztett ki:

from prothelpers.usalign import tmscore tmscore("data/prediction.pdb", "data/experimental.pdb", pymol="data/superimposed")

PDBchain1 PDBchain2 TM-Score
data/prediction.pdb:A data/experimental.pdb:B 0.802

A sablon modellezési pontszám (TM-score) a fehérjeszerkezetek hasonlóságának felmérésére szolgáló mérőszám. Az 1.0 pont tökéletes egyezést jelez. A 0.7 feletti pontszámok azt jelzik, hogy a fehérjéknek ugyanaz a gerincszerkezete. A 0.9 feletti pontszámok azt jelzik, hogy a fehérjék funkcionálisan cserélhető későbbi használatra. A TM-Score 0.802 elérése esetén az ESMFold előrejelzés valószínűleg megfelelő lenne olyan alkalmazásokhoz, mint a szerkezetpontozás vagy a ligandumkötési kísérletek, de előfordulhat, hogy nem megfelelő olyan felhasználási esetekben, mint pl. molekuláris helyettesítés amelyek rendkívül nagy pontosságot igényelnek.

Ezt az eredményt az igazított struktúrák megjelenítésével tudjuk érvényesíteni. A két szerkezet nagy, de nem tökéletes átfedést mutat. A fehérjeszerkezet előrejelzése egy gyorsan fejlődő terület, és sok kutatócsoport egyre pontosabb algoritmusokat fejleszt!

Telepítse az ESMFoldot SageMaker következtetési végpontként

A modellkövetkeztetés notebookban való futtatása megfelelő a kísérletezéshez, de mi van, ha integrálnia kell a modellt egy alkalmazással? Vagy egy MLOps csővezeték? Ebben az esetben jobb megoldás, ha a modellt következtetési végpontként telepíti. A következő példában az ESMFoldot SageMaker valós idejű következtetési végpontként telepítjük egy gyorsított példányon. A SageMaker valós idejű végpontjai méretezhető, költséghatékony és biztonságos módot kínálnak a gépi tanulási (ML) modellek üzembe helyezésére és tárolására. Az automatikus skálázással beállíthatja a végpontot futtató példányok számát, hogy megfeleljen az alkalmazás igényeinek, optimalizálva a költségeket és biztosítva a magas rendelkezésre állást.

Az előre épített SageMaker konténer átölelő archoz megkönnyíti a mély tanulási modellek telepítését a gyakori feladatokhoz. Azonban az olyan újszerű felhasználási esetekben, mint a fehérjeszerkezet előrejelzése, meg kell határoznunk egy szokást inference.py parancsfájlt a modell betöltéséhez, az előrejelzés futtatásához és a kimenet formázásához. Ez a szkript nagyjából ugyanazt a kódot tartalmazza, amelyet a notebookunkban is használtunk. Létrehozunk továbbá a requirements.txt fájlt, hogy meghatározzon néhány Python-függőséget a végpontunk számára. Az általunk létrehozott fájlokat a GitHub tárház.

A következő ábrán a trastuzumab nehézláncának kísérleti (kék) és előre jelzett (piros) szerkezete nagyon hasonló, de nem azonos.

Accelerate protein structure prediction with the ESMFold language model on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Miután létrehoztuk a szükséges fájlokat a code könyvtárat, a SageMaker segítségével telepítjük a modellünket HuggingFaceModel osztály. Ez egy előre beépített tárolót használ, hogy leegyszerűsítse a Hugging Face modellek SageMaker rendszerbe való telepítésének folyamatát. Vegye figyelembe, hogy a végpont létrehozása akár 10 percet is igénybe vehet, a rendelkezésre állástól függően ml.g4dn példánytípusok régiónkban.

from sagemaker.huggingface import HuggingFaceModel
from datetime import datetime huggingface_model = HuggingFaceModel(
model_data = model_artifact_s3_uri, # Previously staged in S3
name = f"emsfold-v1-model-" + datetime.now().strftime("%Y%m%d%s"),
transformers_version='4.17',
pytorch_version='1.10',
py_version='py38',
role=role,
source_dir = "code",
entry_point = "inference.py"
) rt_predictor = huggingface_model.deploy(
initial_instance_count = 1,
instance_type="ml.g4dn.2xlarge",
endpoint_name=f"my-esmfold-endpoint",
serializer = sagemaker.serializers.JSONSerializer(),
deserializer = sagemaker.deserializers.JSONDeserializer()
)

Amikor a végpont telepítése befejeződött, újra elküldhetjük a fehérjeszekvenciát, és megjeleníthetjük az előrejelzés első néhány sorát:

endpoint_prediction = rt_predictor.predict(experimental_sequence)[0]
print(endpoint_prediction[:900])

Mivel a végpontunkat egy gyorsított példányra telepítettük, az előrejelzés csak néhány másodpercet vesz igénybe. Az eredmény minden sora egyetlen atomnak felel meg, és tartalmazza az aminosav azonosságot, három térbeli koordinátát és egy pLDDT pontszám az adott helyen az előrejelzési megbízhatóságot reprezentálja.

PDB_GROUP ID ATOM_LABEL RES_ID CHAIN_ID SEQ_ID CARTN_X CARTN_Y CARTN_Z FOGLALKOZÁS PLDDT ATOM_ID
ATOM 1 N GLU A 1 14.578 -19.953 1.47 1 0.83 N
ATOM 2 CA GLU A 1 13.166 -19.595 1.577 1 0.84 C
ATOM 3 CA GLU A 1 12.737 -18.693 0.423 1 0.86 C
ATOM 4 CB GLU A 1 12.886 -18.906 2.915 1 0.8 C
ATOM 5 O GLU A 1 13.417 -17.715 0.106 1 0.83 O
ATOM 6 cg GLU A 1 11.407 -18.694 3.2 1 0.71 C
ATOM 7 cd GLU A 1 11.141 -18.042 4.548 1 0.68 C
ATOM 8 OE1 GLU A 1 12.108 -17.805 5.307 1 0.68 O
ATOM 9 OE2 GLU A 1 9.958 -17.767 4.847 1 0.61 O
ATOM 10 N VAL A 2 11.678 -19.063 -0.258 1 0.87 N
ATOM 11 CA VAL A 2 11.207 -18.309 -1.415 1 0.87 C

Ugyanazt a módszert használva, mint korábban, azt látjuk, hogy a notebook és a végpont előrejelzése azonos.

PDBchain1 PDBchain2 TM-Score
data/endpoint_prediction.pdb:A data/prediction.pdb:A 1.0

Amint az a következő ábrán látható, a jegyzetfüzetben (piros) és a végpont által (kék) generált ESMFold előrejelzések tökéletes igazodást mutatnak.

Accelerate protein structure prediction with the ESMFold language model on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Tisztítsuk meg

A további költségek elkerülése érdekében töröljük a következtetési végpontunkat és a tesztadatokat:

rt_predictor.delete_endpoint()
bucket = boto_session.resource("s3").Bucket(bucket)
bucket.objects.filter(Prefix=prefix).delete()
os.system("rm -rf data obsolete code")

Összegzésként

A számítási fehérjeszerkezet-előrejelzés kritikus eszköz a fehérjék működésének megértéséhez. Az alapkutatáson kívül az olyan algoritmusok, mint az AlphaFold és az ESMFold, számos alkalmazási területtel rendelkeznek az orvostudományban és a biotechnológiában. Az e modellek által generált szerkezeti betekintések segítenek jobban megérteni a biomolekulák kölcsönhatását. Ez jobb diagnosztikai eszközökhöz és terápiákhoz vezethet a betegek számára.

Ebben a bejegyzésben bemutatjuk, hogyan telepítheti az ESMFold fehérjenyelvi modellt a Hugging Face Hubból méretezhető következtetési végpontként a SageMaker segítségével. A Hugging Face modellek SageMakeren történő telepítésével kapcsolatos további információkért lásd: Használja Hugging Face-t az Amazon SageMakerrel. További fehérjetudományi példákat is találhat a Félelmetes fehérjeelemzés az AWS-en GitHub repó. Kérjük, írjon nekünk megjegyzést, ha van más példa, amelyet szeretne látni!


A szerzőkről

Accelerate protein structure prediction with the ESMFold language model on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Brian hűséges az Amazon Web Services globális egészségügyi és élettudományi csapatának vezető AI/ML megoldások építésze. Több mint 17 éves tapasztalattal rendelkezik a biotechnológia és a gépi tanulás terén, és szenvedélyesen segíti az ügyfeleket a genomikai és proteomikai kihívások megoldásában. Szabadidejében szívesen főz és étkezik barátaival és családjával.

Accelerate protein structure prediction with the ESMFold language model on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Shamika Ariyawansa AI/ML Specialist Solutions Architect az Amazon Web Services globális egészségügyi és élettudományi csapatában. Szenvedélyesen dolgozik az ügyfelekkel, hogy felgyorsítsa a mesterséges intelligencia és az ML elterjedését azáltal, hogy technikai útmutatást ad, és segít nekik az innovációban és biztonságos felhőmegoldások kiépítésében az AWS-en. A munkán kívül szeret síelni és terepezni.

Yanjun QiYanjun Qi az AWS Machine Learning Solution Lab vezető alkalmazott tudományos menedzsere. Megújítja és alkalmazza a gépi tanulást, hogy segítse az AWS-ügyfeleket az AI és a felhő alkalmazásának felgyorsításában.

Időbélyeg:

Még több AWS gépi tanulás