A gyógyszerfejlesztés egy összetett és hosszú folyamat, amely magában foglalja több ezer gyógyszerjelölt szűrését és számítási vagy kísérleti módszerek alkalmazását a leadek értékelésére. McKinsey szerint, egyetlen gyógyszer 10 évig is eltarthat, és átlagosan 2.6 milliárd dollárba kerül a betegség célpontjának azonosítása, a gyógyszerszűrés, a gyógyszer-célpont validálás és az esetleges kereskedelmi forgalomba hozatal. A gyógyszerkutatás ennek a folyamatnak a kutatási eleme, amely olyan jelölt gyógyszereket állít elő, amelyek a legnagyobb valószínűséggel hatékonyak és a betegeket a legkevesebb károsíthatják. A gépi tanulási (ML) módszerek segíthetnek azonosítani a megfelelő vegyületeket a gyógyszerfelfedezési folyamat minden szakaszában, ami egyszerűbb gyógyszer-prioritizálást és -tesztelést eredményez, ami milliárdos gyógyszerfejlesztési költségeket takarít meg (további információért lásd: A mesterséges intelligencia a biofarmakutatásban: ideje összpontosítani és méretezni).
A gyógyszercélpontok jellemzően biológiai entitások, ún fehérjék, az élet építőkövei. A fehérje 3D szerkezete határozza meg, hogyan lép kölcsönhatásba egy gyógyszervegyülettel; ezért a fehérje 3D szerkezetének megértése jelentős javulást jelenthet a gyógyszerfejlesztési folyamatban azáltal, hogy olyan gyógyszervegyületeket szűrünk, amelyek jobban illeszkednek a célfehérje szerkezetéhez. Egy másik terület, ahol a fehérjeszerkezet előrejelzése hasznos lehet, a fehérjék sokféleségének megértése, így csak olyan gyógyszereket választunk ki, amelyek szelektíven céloznak meg specifikus fehérjéket anélkül, hogy befolyásolnák a szervezet más fehérjéit (további információért lásd: A célértékelés javítása az orvosbiológiai kutatásokban: a GOT-IT ajánlásai). A célfehérjék precíz 3D-s szerkezete nagyobb specifitású gyógyszertervezést tesz lehetővé, és kisebb a valószínűsége a más fehérjékkel való keresztkölcsönhatásoknak.
A fehérjék 3D-s szerkezetükbe való behajtásának előrejelzése azonban nehéz probléma, és a hagyományos kísérleti módszerek, például a röntgenkrisztallográfia és az NMR-spektroszkópia időigényesek és költségesek lehetnek. A fehérjekutatás mély tanulási módszereinek közelmúltbeli fejlődése ígéretesnek bizonyult a neurális hálózatok használatával a fehérje feltekeredésének figyelemre méltó pontosságú előrejelzésére. Hajtogatási algoritmusok, mint pl AlphaFold2, ESMFold, OpenFoldés RoseTTAFold segítségével gyorsan fel lehet építeni a fehérjeszerkezetek pontos modelljeit. Sajnos ezeknek a modelleknek a futtatása számítási szempontból költséges, és az eredményeket nehézkes lehet összehasonlítani több ezer jelölt fehérjeszerkezet skáláján. A különféle eszközök használatára szolgáló méretezhető megoldás lehetővé teszi a kutatók és a kereskedelmi K+F csoportok számára, hogy gyorsan beépítsék a fehérjeszerkezet-előrejelzés legújabb vívmányait, kezeljék kísérleti folyamataikat, és együttműködjenek kutatópartnerekkel.
Amazon SageMaker egy teljes körűen felügyelt szolgáltatás kiváló minőségű ML-modellek gyors előkészítésére, építésére, betanítására és üzembe helyezésére azáltal, hogy az ML-hez tervezett képességek széles körét egyesíti. Teljesen felügyelt környezetet kínál az ML számára, elvonatkoztatva az infrastruktúra, az adatkezelés és a méretezhetőségi követelményektől, így Ön a modellek építésére, betanítására és tesztelésére összpontosíthat.
Ebben a bejegyzésben egy teljesen felügyelt ML-megoldást mutatunk be a SageMakerrel, amely leegyszerűsíti a fehérje hajtogatási szerkezetének előrejelzési munkafolyamatait. Először a megoldásról és a felhasználói élményről beszélünk magas szinten. Ezután végigvezetjük, hogyan állíthat be egyszerűen számításokra optimalizált AlphaFold2 és OpenFold munkafolyamatokat a SageMaker segítségével. Végül bemutatjuk, hogyan követheti nyomon és hasonlíthatja össze a fehérjeszerkezet előrejelzéseit egy tipikus elemzés részeként. A megoldás kódja az alábbiakban érhető el GitHub tárház.
Megoldás áttekintése
Ezzel a megoldással a tudósok interaktívan indíthatnak fehérjehajtogatási kísérleteket, elemezhetik a 3D szerkezetet, nyomon követhetik a munka előrehaladását és nyomon követhetik a kísérleteket Amazon SageMaker Studio.
A következő képernyőkép egy fehérjehajtogatási munkafolyamat egyetlen futtatását mutatja az Amazon SageMaker Studio segítségével. Tartalmazza a 3D-s struktúra megjelenítését egy jegyzetfüzetben, a SageMaker-feladatok futási állapotát a munkafolyamatban, valamint hivatkozásokat a bemeneti paraméterekre és a kimeneti adatokra és naplókra.
A következő diagram a magas szintű megoldás architektúráját mutatja be.
Az architektúra megértéséhez először meghatározzuk a fehérje hajtogatási kísérlet kulcsfontosságú összetevőit a következők szerint:
- FASTA célszekvencia fájl - A FASTA formátum egy szöveg alapú formátum nukleotidszekvenciák vagy aminosav (fehérje) szekvenciák megjelenítésére, amelyben a nukleotidok vagy aminosavak egybetűs kódokkal vannak ábrázolva.
- Genetikai adatbázisok – A genetikai adatbázis egy vagy több genetikai adathalmaz, amelyet szoftverrel együtt tárolnak, hogy lehetővé tegyék a felhasználók számára a genetikai adatok lekérését. Az AlphaFold és OpenFold algoritmusok futtatásához több genetikai adatbázis szükséges, mint pl BFD, MGnify, EKT70, EKT, EKT-seqres, UniRef30 (FKA UniClust30), UniProtés UniRef90.
- Többszörös szekvencia illesztés (MSA) - A szekvencia igazítás A fehérje elsődleges szekvenciáinak elrendezésének módja, hogy azonosítsák azokat a hasonlóság régiókat, amelyek a szekvenciák közötti funkcionális, szerkezeti vagy evolúciós kapcsolatok következményei lehetnek. Az előrejelzések bemeneti jellemzői közé tartoznak az MSA-adatok.
- A fehérjeszerkezet előrejelzése – A bemeneti célszekvenciák szerkezetét hajtogatási algoritmusokkal, pl AlphaFold2 és a OpenFold amelyek ismert fehérjesablonokra kiképzett többsávos transzformátor architektúrát használnak.
- Vizualizáció és mérőszámok – Vizualizálja a 3D-s szerkezetet a py3Dmol könyvtár interaktív 3D vizualizációként. A metrikák segítségével kiértékelheti és összehasonlíthatja a szerkezeti előrejelzéseket, különösen négyzetes átlag eltérés (RMSD) és sablon modellezési pontszám (TM-pontszám)
A munkafolyamat a következő lépéseket tartalmazza:
- A tudósok a webalapú SageMaker ML IDE segítségével felfedezik a kódbázist, fehérjeszekvencia-elemzési munkafolyamatokat készítenek a SageMaker Studio notebookokban, és fehérjehajtogatási folyamatokat futtatnak a SageMaker Studio grafikus felhasználói felületén vagy a SageMaker SDK-n keresztül.
- Az AlphaFold és az OpenFold által igényelt genetikai és szerkezeti adatbázisok letöltése a folyamatbeállítás előtt történik Amazon SageMaker feldolgozás, egy efemer számítási szolgáltatás ML adatfeldolgozáshoz, egy Amazon egyszerű tárolási szolgáltatás (Amazon S3) vödör. A SageMaker Processing segítségével hosszan tartó feladatokat futtathat megfelelő számítással anélkül, hogy bármilyen számítási fürtöt és tárhelyet felállítana, és anélkül, hogy le kellene állítania a fürtöt. Az adatok automatikusan mentésre kerülnek egy megadott S3 vödör helyre.
- An Amazon FSx Lusterhez fájlrendszer van beállítva, az adattár az S3 vödör helye, ahol az adatbázisok mentésre kerülnek. Az FSx for Luster több száz GB/s átviteli sebességre és több millió IOPS-re skálázható alacsony késleltetésű fájllekéréssel. Becslőfeladat indításakor a SageMaker csatlakoztatja az FSx for Luster fájlrendszert a példányfájlrendszerhez, majd elindítja a parancsfájlt.
- Amazon SageMaker csővezetékek protein hajtogatási algoritmusok többszöri futtatására szolgál. A SageMaker Pipelines a kívánt vizuális felületet kínálja az interaktív munkák benyújtásához, az előrehaladás nyomon követéséhez és az ismételhetőséghez.
- Egy folyamaton belül két számításilag nehéz fehérjehajtogatási algoritmus – az AlphaFold és az OpenFold – fut a SageMaker becslésekkel. Ez a konfiguráció támogatja az FSx for Luster fájlrendszer beépítését a nagy áteresztőképességű adatbázis-kereséshez az algoritmusokban. Az egyetlen következtetési futtatás két lépésre oszlik: egy optimális CPU-példányt használó MSA-építési lépésre és egy GPU-példányt használó szerkezet-előrejelzési lépésre. Ezek az allépések, mint a SageMaker Processing a 2. lépésben, átmenetiek, igény szerintiek és teljes mértékben felügyelhetők. A munkakimenet, például az MSA-fájlok, az előre jelzett pdb-struktúrafájlok és az egyéb metaadatfájlok egy megadott S3-helyre kerülnek mentésre. Egy csővezeték megtervezhető egyetlen fehérje hajtogatási algoritmus futtatására, vagy az AlphaFold és az OpenFold is fut egy közös MSA-konstrukció után.
- A fehérjehajtogatás előrejelzésének futtatásait automatikusan nyomon követi Amazon SageMaker kísérletek további elemzéshez és összehasonlításhoz. A munkanaplókat bent vezetik amazonfelhőóra megfigyelésre.
Előfeltételek
A bejegyzés követéséhez és a megoldás futtatásához több előfeltételt is teljesítenie kell. Utal GitHub tárház az egyes lépések részletes magyarázatához.
Futtassa a fehérje hajtogatását a SageMakeren
A SageMaker teljes mértékben felügyelt képességeit használjuk a számításilag nehéz fehérjehajtogatási munkák futtatásához anélkül, hogy nagy infrastrukturális ráfordítást igényelnénk. A SageMaker konténerképeket használ egyéni szkriptek futtatására általános adatfeldolgozáshoz, képzéshez és tárhelyszolgáltatáshoz. Igény szerint egyszerűen elindíthat egy rövid ideig tartó munkát, amely egy olyan programot futtat, amely néhány sorból álló konténerképet tartalmaz. SageMaker SDK önmenedzselés nélkül bármilyen számítási infrastruktúra. Pontosabban, a SageMaker becslő feladat rugalmasságot biztosít a tárolókép, a futtatási parancsfájl és a példánykonfiguráció kiválasztásakor, és támogatja a tárolási lehetőségek széles választéka, beleértve az olyan fájlrendszereket, mint az FSx for Lustre. A következő diagram ezt az architektúrát szemlélteti.
Az olyan hajtogatási algoritmusok, mint az AlphaFold és az OpenFold, többsávos transzformátor-architektúrát használnak, amely ismert fehérjesablonokra van kiképezve az ismeretlen peptidszekvenciák szerkezetének előrejelzésére. Ezek az előrejelzések futtathatók GPU-példányokon a legjobb átviteli sebesség és a legalacsonyabb késleltetés biztosítása érdekében. Ezeknek az előrejelzéseknek a bemeneti jellemzői azonban tartalmazzák az MSA-adatokat. Az MSA algoritmusok CPU-függőek, és több órás feldolgozási időt igényelhetnek.
Az MSA- és a struktúra-előrejelzési lépések ugyanabban a számítástechnikai környezetben történő futtatása költséghatékony lehet, mivel a drága GPU-erőforrások tétlen maradnak, amíg az MSA-lépés fut. Ezért a munkafolyamatot két lépésre optimalizáljuk. Először is futtatunk egy SageMaker becslő feladatot egy CPU-példányon, hogy kiszámoljuk az MSA-illesztést egy adott FASTA bemeneti szekvencia és forrás genetikai adatbázisok alapján. Ezután egy SageMaker becslési feladatot futtatunk egy GPU-példányon, hogy előre jelezzük a fehérje szerkezetét egy adott bemeneti MSA-igazítással és egy hajtogatási algoritmussal, például az AlphaFold vagy az OpenFold.
Futtassa az MSA generálást
Az MSA-számításhoz egyéni szkriptet adunk meg run_create_alignment.sh
és a create_alignments.py
szkript, amelyet a meglévő AlphaFold előrejelzési forrásból vettek át run_alphafold.py. Vegye figyelembe, hogy ezt a szkriptet esetleg frissíteni kell, ha a forrás AlphaFold kódot frissítik. Az egyéni szkript a SageMaker becslő számára a következőn keresztül érhető el script mód. A tárolókép kulcsfontosságú összetevői, a szkript mód megvalósítása és a SageMaker becslési feladat beállítása szintén a hajtogatási algoritmusok futtatásának következő lépésének részét képezik, és a következő szakaszban részletesebben ismertetjük őket.
Futtassa az AlphaFoldot
Kezdjük azzal, hogy egy AlphaFold szerkezeti előrejelzést futtatunk egyetlen fehérjeszekvenciával a SageMaker segítségével. Az AlphaFold-feladat futtatása három egyszerű lépésből áll, amint az itt is látható 01-run_stepbystep.ipynb
. Először is készítünk egy Docker konténerképet az AlphaFold alapján dockerfile hogy mi is tudjuk futtassa az AlphaFoldot a SageMakerben. Másodszor, megszerkesztjük a forgatókönyvet run_alphafold.sh
amely azt utasítja, hogyan kell az AlphaFoldot futtatni. Harmadszor megszerkesztjük és futtatjuk a SageMaker becslő a parancsfájllal, a tárolóval, a példánytípussal, a feladat adataival és konfigurációjával.
Konténer kép
Az AlphaFold Dockerfile-jával jelentősen leegyszerűsíthető az AlphaFold (OpenFold is) SageMakerben való futtatásához szükséges konténerkép futási ideje. Csak néhány egyszerű réteget kell hozzáadnunk a tetejére egy SageMaker-specifikus Python-könyvtár telepítéséhez, hogy a SageMaker-feladat kommunikálni tudjon a tárolóképpel. Lásd a következő kódot:
Beviteli szkript
Ezután megadjuk a forgatókönyvet run_alphafold.sh
hogy fut run_alphafold.py a tárolóban jelenleg elhelyezett AlphaFold adattárból /app/alphafold/run_alphafold.py
. A szkript futtatásakor a genetikai adatbázisok helyét és a bemeneti FASTA szekvenciát a SageMaker környezeti változóként tölti fel (SM_CHANNEL_GENETIC
és a SM_CHANNEL_FASTA
, illetve). További információkért lásd: Bemeneti adatok konfigurációja.
Becslő munka
Ezután egy feladatot hozunk létre egy SageMaker becslő segítségével a következő kulcsfontosságú bemeneti argumentumokkal, amelyek arra utasítják a SageMakert, hogy futtasson egy adott parancsfájlt egy megadott tároló használatával a példánytípussal vagy a számmal, a választott hálózati beállítással és a feladat egyéb paramétereivel. vpc_subnet_ids
és a security_group_ids
utasítsa a jobot, hogy egy adott VPC-n belül fusson, ahol az FSx for Luster fájlrendszer van, hogy felcsatolhassuk és hozzáférhessünk a fájlrendszerhez a SageMaker jobban. A kimeneti útvonal egy S3 gyűjtőhelyre utal, ahová a SageMaker egy sikeres feladat végén automatikusan feltölti az AlphaFold végtermékét. Itt is beállítunk egy paramétert DB_PRESET
például átadni és azon belül elérni run_alphafold.sh
mint környezeti változó futás közben. Lásd a következő kódot:
from sagemaker.estimator import Estimator
alphafold_image_uri=f'{account}.dkr.ecr.{region}.amazonaws.com/sagemaker-studio-alphafold:v2.3.0'
instance_type='ml.g5.2xlarge'
instance_count=1
vpc_subnet_ids=['subnet-xxxxxxxxx'] # okay to use a default VPC
security_group_ids=['sg-xxxxxxxxx']
env={'DB_PRESET': db_preset} # <full_dbs|reduced_dbs>
output_path='s3://%s/%s/job-output/'%(default_bucket, prefix) estimator_alphafold = Estimator(
source_dir='src', # directory where run_alphafold.sh and other runtime files locate
entry_point='run_alphafold.sh', # our script that runs /app/alphafold/run_alphafold.py
image_uri=alphafold_image_uri, # container image to use
instance_count=instance_count, #
instance_type=instance_type,
subnets=vpc_subnet_ids,
security_group_ids=security_group_ids,
environment=env,
output_path=output_path,
...)
Végül összegyűjtjük az adatokat, és tudatjuk a munkával, hogy hol vannak. A fasta
Az adatcsatorna egy S3 adatbemenet, amely egy S3 helyről lesz letöltve a számítási példányba a job elején. Ez nagy rugalmasságot tesz lehetővé a beviteli sorrend kezelésében és meghatározásában. Másrészt a genetic
adatcsatorna meghatározása: a FileSystemInput
amely a feladat elején fel lesz szerelve a példányra. Az FSx for Luster fájlrendszer használata közel 3 TB adat bevitelére elkerüli az adatok ismételt letöltését egy S3 tárolóból egy számítási példányba. Hívjuk a .fit
módszer az AlphaFold munka elindításához:
from sagemaker.inputs import FileSystemInput
file_system_id='fs-xxxxxxxxx'
fsx_mount_id='xxxxxxxx'
file_system_directory_path=f'/{fsx_mount_id}/{prefix}/alphafold-genetic-db' # should be the full prefix from the S3 data repository file_system_access_mode='ro' # Specify the access mode (read-only)
file_system_type='FSxLustre' # Specify your file system type genetic_db = FileSystemInput(
file_system_id=file_system_id,
file_system_type=file_system_type,
directory_path=file_system_directory_path,
file_system_access_mode=file_system_access_mode) s3_fasta=sess.upload_data(path='sequence_input/T1030.fasta', # FASTA location locally
key_prefix='alphafoldv2/sequence_input') # S3 prefix. Bucket is sagemaker default bucket
fasta = sagemaker.inputs.TrainingInput(s3_fasta,
distribution='FullyReplicated',
s3_data_type='S3Prefix',
input_mode='File')
data_channels_alphafold = {'genetic': genetic_db, 'fasta': fasta} estimator_alphafold.fit(inputs=data_channels_alphafold,
wait=False) # wait=False gets the cell back in the notebook; set to True to see the logs as the job progresses
Ez az. Nemrég nyújtottunk be egy munkát a SageMakernek az AlphaFold futtatására. A naplók és a kimenet, beleértve a .pdb előrejelzési fájlokat is, az Amazon S3-ba íródnak.
Futtassa az OpenFoldot
Az OpenFold futtatása a SageMakerben hasonló mintát követ, amint az a második felében látható 01-run_stepbystep.ipynb
. Először hozzáadunk egy egyszerű réteget, hogy megkapjuk a SageMaker-specifikus könyvtárat, hogy a SageMaker konténerképe kompatibilis legyen az OpenFold felett dockerfile. Másodszor megszerkesztjük a run_openfold.sh
mint belépési pont a SageMaker munkához. Ban ben run_openfold.sh
, futtatjuk a run_pretrained_openfold.py az OpenFoldból, ami az elérhető a konténer képén ugyanazokkal a genetikai adatbázisokkal, amelyeket letöltöttünk az AlphaFold és az OpenFold modellsúlyaihoz (--openfold_checkpoint_path
). A bemeneti adatok helye tekintetében a genetikai adatbázisok csatornája és a FASTA csatorna mellett bevezetünk egy harmadik csatornát, SM_CHANNEL_PARAM
, így rugalmasan átadhatjuk a választott modellsúlyokat a becslő konstrukcióból egy munka definiálásakor és benyújtásakor. A SageMaker becslő segítségével könnyen beküldhetünk különböző munkákat entry_point
, image_uri
, environment
, inputs
és más konfigurációk az OpenFoldhoz ugyanazzal az aláírással. Az adatcsatornához hozzáadunk egy új csatornát, param
, Amazon S3 bemenetként, az FSx for Luster fájlrendszerből és az Amazon S3 FASTA fájljából származó azonos genetikai adatbázisok használatával együtt. Ez ismét lehetővé teszi, hogy könnyen megadjuk a modell súlyát a feladatkonstrukcióban. Lásd a következő kódot:
s3_param=sess.upload_data(path='openfold_params/finetuning_ptm_2.pt',
key_prefix=f'{prefix}/openfold_params')
param = sagemaker.inputs.TrainingInput(s3_param,
distribution="FullyReplicated",
s3_data_type="S3Prefix",
input_mode='File') data_channels_openfold = {"genetic": genetic_db, 'fasta': fasta, 'param': param} estimator_openfold.fit(inputs=data_channels_openfold,
wait=False)
A végső kimenet eléréséhez a feladat befejezése után a következő parancsokat futtatjuk:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Futásidejű teljesítmény
A következő táblázat az 57%-os, illetve 51%-os költségmegtakarítást mutatja az AlphaFold és az OpenFold esetében, ha az MSA igazítási és hajtogatási algoritmusait két feladatra osztják fel egyetlen számítási feladathoz képest. Lehetővé teszi, hogy minden feladathoz megfelelő méretű számítást végezzünk: ml.m5.4xlarge az MSA igazításhoz és ml.g5.2xlarge az AlphaFold és az OpenFold esetében.
munka részletei | Példány típusa | Írja be a FASTA szekvenciát | Runtime | Költség |
MSA igazítás + OpenFold | ml.g5.4xnagy | T1030 | 50 perce | $1.69 |
MSA igazítás + AlphaFold | ml.g5.4xnagy | T1030 | 65 perce | $2.19 |
MSA igazítás | ml.m5.4xnagy | T1030 | 46 perce | $0.71 |
OpenFold | ml.g5.2xnagy | T1030 | 6 perce | $0.15 |
AlphaFold | ml.g5.2xnagy | T1030 | 21 perce | $0.53 |
Építsen meg ismételhető munkafolyamatot a SageMaker Pipelines segítségével
A SageMaker Pipelines segítségével létrehozhatunk egy ML munkafolyamatot, amely gondoskodik a lépések közötti adatok kezeléséről, a futtatások összehangolásáról és a naplózásról. A SageMaker Pipelines felhasználói felületet is biztosít számunkra a folyamat megjelenítéséhez és az ML munkafolyamat egyszerű futtatásához.
A csővezeték számos fésülésével jön létre lépések. Ebben a csővezetékben hármat egyesítünk képzési lépések, amelyekhez SageMaker becslő szükséges. Az ebben a jegyzetfüzetben meghatározott becslések nagyon hasonlóak a ben meghatározottakhoz 01-run_stepbystep.ipynb
, azzal a kivétellel, hogy az Amazon S3 helyeit használjuk a bemeneteinkre és kimeneteinkre való mutatásra. A dinamikus változók lehetővé teszik a SageMaker Pipelines számára a lépések egymás utáni futtatását, és lehetővé teszik a felhasználó számára, hogy újra próbálkozzon a sikertelen lépésekkel. A következő képernyőképen egy irányított aciklikus grafikon (DAG) látható, amely információt nyújt a folyamat egyes lépéseihez kapcsolódó követelményekről és azok közötti kapcsolatokról.
Dinamikus változók
A SageMaker Pipelines minden folyamat elején képes fogadni a felhasználói bemeneteket. A következő dinamikus változókat határozzuk meg, amelyeket minden kísérlet során módosítani szeretnénk:
- FastaInputS3URI – SDK-n, Boto3-on keresztül vagy manuálisan feltöltött FASTA fájl Amazon S3 URI-je.
- FastFileName – A FASTA fájl neve.
- db_preset – Válogatás között
full_dbs
orreduced_dbs
. - MaxTemplateDate – Az AlphaFold MSA lépése megkeresi az elérhető sablonokat a paraméter által megadott dátum előtt.
- ModelPreset – Válasszon az AlphaFold modellek közül, beleértve
monomer
,monomer_casp14
,monomer_ptm
ésmultimer
. - NumMultimerPredictionsPerModel – A kifutandó vetőmagok száma modellenként multimer rendszer használata esetén.
- InferenceInstanceType – A következtetési lépésekhez használandó példánytípus (AlphaFold és OpenFold egyaránt). Az alapértelmezett érték ml.g5.2xlarge.
- MSAInstanceType – Az MSA lépéshez használandó példánytípus. Az alapértelmezett érték ml.m5.4xlarge.
Lásd a következő kódot:
fasta_file = ParameterString(name="FastaFileName")
fasta_input = ParameterString(name="FastaInputS3URI")
pipeline_db_preset = ParameterString(name="db_preset",
default_value='full_dbs',
enum_values=['full_dbs', 'reduced_dbs'])
max_template_date = ParameterString(name="MaxTemplateDate")
model_preset = ParameterString(name="ModelPreset")
num_multimer_predictions_per_model = ParameterString(name="NumMultimerPredictionsPerModel")
msa_instance_type = ParameterString(name="MSAInstanceType", default_value='ml.m5.4xlarge')
instance_type = ParameterString(name="InferenceInstanceType", default_value='ml.g5.2xlarge')
A SageMaker folyamat úgy jön létre, hogy lépések sorozatát definiálják, majd összeláncolják azokat egy meghatározott sorrendben, ahol az előző lépés kimenete lesz a következő lépés bemenete. A lépések párhuzamosan futtathatók, és úgy határozhatók meg, hogy függjenek egy előző lépéstől. Ebben a folyamatban definiálunk egy MSA lépést, amely a párhuzamosan futó AlphaFold következtetési lépés és az OpenFold következtetési lépés függősége. Lásd a következő kódot:
step_msa = TrainingStep(
name="RunMSA",
step_args=pipeline_msa_args,
) step_alphafold = TrainingStep(
name="RunAlphaFold",
step_args=pipeline_alphafold_default_args,
)
step_alphafold.add_depends_on([step_msa]) step_openfold = TrainingStep(
name="RunOpenFold",
step_args=pipeline_openfold_args,
)
step_openfold.add_depends_on([step_msa]
Az összes lépés összerakásához hívjuk a Pipeline
osztályt, és adja meg a folyamat nevét, a folyamat bemeneti változóit és az egyes lépéseket:
pipeline_name = f"ProteinFoldWorkflow"
pipeline = Pipeline(
name=pipeline_name,
parameters=[
fasta_input,
instance_type,
msa_instance_type,
pipeline_db_preset
],
steps=[step_msa, step_alphafold, step_openfold],
) pipeline.upsert(role_arn=role, # run this if it's the first time setting up the pipeline
description='Protein_Workflow_MSA')
Futtassa a csővezetéket
A jegyzetfüzet utolsó cellájában 02-define_pipeline.ipynb
, megmutatjuk, hogyan kell futtatni egy folyamatot a SageMaker SDK használatával. A korábban leírt dinamikus változók a következők:
!mkdir ./sequence_input/
!curl 'https://www.predictioncenter.org/casp14/target.cgi?target=T1030&view=sequence' > ./sequence_input/T1030.fasta
fasta_file_name = 'T1030.fasta' pathName = f'./sequence_input/{fasta_file_name}'
s3_fasta=sess.upload_data(path=pathName,
key_prefix='alphafoldv2/sequence_input') PipelineParameters={ 'FastaInputS3URI':s3_fasta, 'db_preset': 'full_dbs', 'FastaFileName': fasta_file_name, 'MaxTemplateDate': '2020-05-14', 'ModelPreset': 'monomer', 'NumMultimerPredictionsPerModel': '5', 'InferenceInstanceType':'ml.g5.2xlarge', 'MSAInstanceType':'ml.m5.4xlarge'
}
execution = pipeline.start(execution_display_name='SDK-Executetd',
execution_description='This pipeline was executed via SageMaker SDK',
parameters=PipelineParameters
)
Kövesse nyomon a kísérleteket és hasonlítsa össze a fehérjeszerkezeteket
Kísérletünkhöz egy példa fehérjeszekvenciát használunk a CASP14 verseny, amely független mechanizmust biztosít a fehérjeszerkezet-modellezés módszereinek értékeléséhez. A célpont T1030 a PDB 6P00 fehérjéből származik, és 237 aminosavat tartalmaz az elsődleges szekvenciában. Futtatjuk a SageMaker folyamatot, hogy megjósoljuk ennek a bemeneti szekvenciának a fehérjeszerkezetét OpenFold és AlphaFold algoritmusokkal.
Amikor a folyamat befejeződött, letöltjük az előre jelzett .pdb fájlokat minden hajtogatási feladatból, és megjelenítjük a struktúrát a jegyzetfüzetben. py3Dmol, mint a füzetben 04-compare_alphafold_openfold.ipynb
.
A következő képernyőképen látható az AlphaFold előrejelzési feladat előrejelzése.
A megjósolt struktúrát összehasonlítja az ismert alap referenciastruktúrával a PDB kóddal 6poo ben archiválva RCSB. Elemezzük az előrejelzési teljesítményt a 6poo alap PDB kódhoz képest három mérőszámmal: RMSD, RMSD szuperpozícióval és sablon modellezési pontszám, amint azt a A szerkezetek összehasonlítása.
. | Beviteli sorrend | Összehasonlítás | RMSD | RMSD szuperpozícióval | Sablon modellezési pontszám |
AlphaFold | T1030 | 6poo | 247.26 | 3.87 | 0.3515 |
A hajtogatási algoritmusokat most több FASTA szekvenciánál hasonlítják össze: T1030, T1090és T1076. Előfordulhat, hogy az új célszekvenciák nem rendelkeznek az alap pdb-struktúrával a referencia-adatbázisokban, ezért hasznos összehasonlítani a hajtogatási algoritmusok közötti variabilitást.
. | Beviteli sorrend | Összehasonlítás | RMSD | RMSD szuperpozícióval | Sablon modellezési pontszám |
AlphaFold | T1030 | OpenFold | 73.21 | 24.8 | 0.0018 |
AlphaFold | T1076 | OpenFold | 38.71 | 28.87 | 0.0047 |
AlphaFold | T1090 | OpenFold | 30.03 | 20.45 | 0.005 |
A következő képernyőkép a futásokat mutatja be ProteinFoldWorkflow
a SageMaker Pipeline három FASTA bemeneti szekvenciájához:
A mérőszámokat a SageMaker Experiments segítségével is naplózzuk, mint a folyamat által létrehozott kísérlet új futtatásait:
from sagemaker.experiments.run import Run, load_run
metric_type='compare:'
experiment_name = 'proteinfoldworkflow'
with Run(experiment_name=experiment_name, run_name=input_name_1, sagemaker_session=sess) as run:
run.log_metric(name=metric_type + "rmsd_cur", value=rmsd_cur_one, step=1)
run.log_metric(name=metric_type + "rmds_fit", value=rmsd_fit_one, step=1)
run.log_metric(name=metric_type + "tm_score", value=tmscore_one, step=1)
Ezután elemezzük és vizualizáljuk ezeket a futtatásokat a kísérletek oldalon a SageMaker Studio-ban.
A következő diagram az AlphaFold és az OpenFold közötti RMSD-értéket mutatja a három szekvencia esetében: T1030, T1076 és T1090.
Következtetés
Ebben a bejegyzésben leírtuk, hogyan használhatja a SageMaker Pipelines-t fehérjehajtogatási munkafolyamatok beállítására és futtatására két népszerű szerkezet-előrejelzési algoritmussal: AlphaFold2 és OpenFold. Bemutattunk egy több feladatból álló, költséghatékony megoldás-architektúrát, amely elválasztja az MSA-generálás számítási követelményeit a szerkezet-előrejelzéstől. Kiemeltük azt is, hogyan lehet megjeleníteni, kiértékelni és összehasonlítani a fehérjék előre jelzett 3D-s szerkezetét a SageMaker Stúdióban.
A SageMaker fehérjehajtogatási munkafolyamatainak megkezdéséhez tekintse meg a mintakódot a GitHub repo.
A szerzőkről
Michael Hsieh vezető AI/ML Specialist Solutions Architect. Együttműködik a HCLS-ügyfelekkel, hogy az AWS-technológiákkal és az orvosi képalkotás terén szerzett szakértelmével előmozdítsák ML-útjukat. Seattle-i átültetésként szereti felfedezni a város által kínált nagyszerű anyatermészetet, mint például a túraútvonalakat, a kajakozást az SLU-ban és a naplementét a Shilshole-öbölben.
Shivam Patel az AWS megoldási építésze. K+F háttérrel rendelkezik, és ezt üzleti tudásával ötvözi, hogy megoldja az ügyfelei előtt álló összetett problémákat. Shivam leginkább a gépi tanulás, a robotika, az IoT és a nagyteljesítményű számítástechnika terhelése iránt érdeklődik.
Hasan Poonawala az AWS vezető AI/ML-specialistája, a Hasan segít az ügyfeleknek gépi tanulási alkalmazások tervezésében és üzembe helyezésében az AWS-en. Több mint 12 éves szakmai tapasztalattal rendelkezik adattudósként, gépi tanulással foglalkozó szakemberként és szoftverfejlesztőként. Szabadidejében Hasan szereti felfedezni a természetet, és időt tölt barátaival és családjával.
Jasleen Grewal Senior Applied Scientist az Amazon Web Servicesnél, ahol az AWS-ügyfelekkel dolgozik, hogy valós problémákat oldjanak meg gépi tanulás segítségével, különös tekintettel a precíziós gyógyászatra és a genomikára. Erős bioinformatikai, onkológiai és klinikai genomika múlttal rendelkezik. Szenvedélyesen használja az AI/ML és a felhőszolgáltatásokat a betegellátás javítása érdekében.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Autóipar / elektromos járművek, Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- BlockOffsets. A környezetvédelmi ellentételezési tulajdon korszerűsítése. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :van
- :is
- :nem
- :ahol
- $ UP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- Rólunk
- AC
- gyorsul
- hozzáférés
- igénybe vett
- pontosság
- pontos
- aciklikus
- hozzá
- fogadott
- előre
- előlegek
- érintő
- Után
- újra
- ellen
- AI / ML
- algoritmus
- algoritmusok
- igazítás
- Minden termék
- lehetővé
- lehetővé teszi, hogy
- mentén
- Is
- amazon
- Amazon SageMaker
- Amazon SageMaker Studio
- Az Amazon Web Services
- an
- elemzés
- elemez
- és a
- Másik
- bármilyen
- alkalmazások
- alkalmazott
- építészet
- VANNAK
- TERÜLET
- érvek
- AS
- értékelés
- At
- automatikusan
- elérhető
- átlagos
- el
- AWS
- vissza
- háttér
- bázis
- alapján
- öböl
- BE
- mert
- válik
- előtt
- Kezdet
- hogy
- kívül
- BEST
- Jobb
- között
- Billió
- milliárd
- orvosbiológiai
- biofarma
- Blocks
- test
- mindkét
- hoz
- Bringing
- széles
- épít
- Épület
- üzleti
- by
- hívás
- hívott
- TUD
- jelölt
- jelöltek
- képességek
- képes
- ami
- változik
- csatorna
- Táblázatos
- választás
- Város
- osztály
- Klinikai
- közel
- felhő
- felhő szolgáltatások
- Fürt
- kód
- kódbázis
- kódok
- együttműködik
- össze
- kombájnok
- jön
- kereskedelmi
- Közös
- kommunikálni
- összehasonlítani
- képest
- összehasonlítás
- összeegyeztethető
- verseny
- teljes
- Befejezett
- Befejezi
- bonyolult
- összetevő
- alkatrészek
- Összetett
- számítás
- Kiszámít
- számítástechnika
- Configuration
- konstrukció
- építés
- Konténer
- tartalmaz
- Költség
- költségmegtakarítás
- kiadások
- Pár
- teremt
- készítette
- Jelenleg
- szokás
- Ügyfelek
- DAG
- dátum
- adatkezelés
- adatfeldolgozás
- adattudós
- adatbázis
- adatbázisok
- találka
- mély
- mély tanulás
- alapértelmezett
- meghatározott
- meghatározott
- meghatározó
- bizonyítani
- igazolták
- Függőség
- telepíteni
- Származtatott
- leírt
- Design
- tervezett
- kívánatos
- részletes
- Határozzuk meg
- meghatározza
- Fejlesztő
- Fejlesztés
- különböző
- nehéz
- felfedezés
- megvitatni
- betegség
- Sokféleség
- megosztott
- Dokkmunkás
- le-
- letöltés
- gyógyszer
- Kábítószer
- alatt
- dinamikus
- minden
- Korábban
- könnyen
- Hatékony
- bármelyik
- lehetővé
- végén
- Szervezetek
- belépés
- Környezet
- környezeti
- értékelni
- végső
- Minden
- példa
- kivétel
- végrehajtott
- végrehajtás
- létező
- drága
- tapasztalat
- kísérlet
- kísérletek
- szakvélemény
- magyarázat
- feltárása
- Feltárása
- szembe
- Sikertelen
- család
- Funkció
- Jellemzők
- filé
- Fájlok
- utolsó
- Végül
- vezetéknév
- első
- megfelelő
- Rugalmasság
- rugalmasan
- Összpontosít
- következik
- következő
- következik
- A
- formátum
- barátok
- ból ből
- Tele
- teljesen
- funkcionális
- további
- gyűjt
- generál
- generáció
- genomika
- kap
- adott
- Go
- GPU
- grafikon
- nagy
- nagymértékben
- fél
- kéz
- maréknyi
- kárt
- Legyen
- he
- nehéz
- segít
- segít
- itt
- Magas
- magas szinten
- nagy teljesítményű
- jó minőségű
- <p></p>
- legnagyobb
- Kiemelt
- övé
- tárhely
- NYITVATARTÁS
- Hogyan
- How To
- azonban
- HTML
- http
- HTTPS
- Több száz
- Azonosítás
- azonosítani
- Idle
- if
- illusztrálja
- kép
- képek
- Leképezés
- végrehajtás
- importál
- javul
- fejlesztések
- in
- tartalmaz
- magában foglalja a
- Beleértve
- bele
- független
- egyéni
- információ
- Infrastruktúra
- bemenet
- bemenet
- belső
- telepíteni
- példa
- interaktív
- kölcsönhatásba lép
- Felület
- bele
- bevezet
- tárgyak internete
- IT
- ITS
- Munka
- Állások
- utazás
- jpg
- éppen
- tartotta
- Kulcs
- rúg
- Ismer
- tudás
- ismert
- keresztnév
- Késleltetés
- legutolsó
- indít
- réteg
- tojók
- vezetékek
- tanulás
- legkevésbé
- hadd
- szint
- könyvtár
- élet
- mint
- valószínűség
- vonalak
- linkek
- helyileg
- elhelyezkedés
- helyszínek
- log
- fakitermelés
- Hosszú
- szeret
- alacsonyabb
- legalacsonyabb
- gép
- gépi tanulás
- csinál
- kezelése
- sikerült
- vezetés
- kezelése
- kézzel
- Lehet..
- McKinsey
- mechanizmus
- orvosi
- orvostudomány
- Metaadatok
- módszer
- mód
- Metrics
- Több millió
- ML
- Mód
- modell
- modellezés
- modellek
- monitor
- ellenőrzés
- több
- a legtöbb
- anya
- SZERELJÜK
- sok
- többszörös
- név
- Természet
- Szükség
- igénylő
- hálózatba
- hálózatok
- neurális hálózatok
- Új
- új célpont
- következő
- NIH
- nevezetesen
- jegyzetfüzet
- Most
- szám
- of
- kedvezmény
- ajánlat
- Ajánlatok
- Rendben
- on
- Igény szerint
- ONE
- csak
- -ra
- működés
- optimálisan
- Optimalizálja
- opció
- or
- érdekében
- Más
- mi
- teljesítmény
- felett
- oldal
- Párhuzamos
- paraméter
- paraméterek
- rész
- különös
- partnerek
- elhalad
- Elmúlt
- szenvedélyes
- ösvény
- beteg
- betegek
- Mintás
- mert
- teljesítmény
- csővezeték
- Plató
- Platón adatintelligencia
- PlatoData
- pont
- Népszerű
- benépesített
- állás
- pontos
- Pontosság
- előre
- jósolt
- előrejelzésére
- előrejelzés
- Tippek
- Készít
- előfeltételek
- be
- előző
- ár
- elsődleges
- Fő
- Előzetes
- fontossági sorrend
- Probléma
- problémák
- folyamat
- Folyamatok
- feldolgozás
- Termékek
- Termelés
- Program
- Haladás
- ígéret
- megfelelő
- Fehérje
- Fehérjék
- ad
- feltéve,
- biztosít
- tesz
- Piton
- gyorsan
- K + F
- igazi
- való Világ
- új
- kifejezés
- régiók
- Kapcsolatok
- marad
- figyelemre méltó
- megismételhető
- TÖBBSZÖR
- raktár
- képviselők
- képviselő
- szükség
- kötelező
- követelmény
- követelmények
- kutatás
- kutatók
- Tudástár
- illetőleg
- kapott
- Eredmények
- robotika
- futás
- futás
- fut
- s
- sagemaker
- SageMaker csővezetékek
- azonos
- megtakarítás
- Megtakarítás
- skálázhatóság
- skálázható
- Skála
- Tudomány
- Tudós
- tudósok
- pontszám
- szűrés
- szkriptek
- sdk
- Keresés
- Seattle
- Második
- Rész
- lát
- magok
- látott
- kiválasztás
- idősebb
- Sorozat
- Series of
- szolgáltatás
- Szolgáltatások
- készlet
- Szettek
- beállítás
- felépítés
- számos
- ő
- kellene
- előadás
- mutatott
- Műsorok
- Állítsa le
- jelentős
- hasonló
- Egyszerű
- egyszerűsített
- egyetlen
- So
- szoftver
- megoldások
- Megoldások
- SOLVE
- forrás
- speciális
- szakember
- különleges
- kifejezetten
- sajátosság
- meghatározott
- spektroszkópia
- költ
- Színpad
- kezdet
- kezdődött
- Kezdve
- kezdődik
- Állapot
- Lépés
- Lépései
- tárolás
- memorizált
- áramvonalas
- erős
- szerkezeti
- struktúra
- stúdió
- benyújtása
- beküldése
- benyújtott
- sikeres
- ilyen
- megfelelő
- napnyugta
- ráhelyezés
- Támogatja
- rendszer
- Systems
- táblázat
- Vesz
- tart
- bevétel
- cél
- célok
- csapat
- Technologies
- sablon
- sablonok
- feltételek
- Tesztelés
- hogy
- A
- The Source
- azok
- Őket
- akkor
- ebből adódóan
- Ezek
- ők
- Harmadik
- ezt
- azok
- ezer
- három
- Keresztül
- áteresztőképesség
- idő
- időigényes
- nak nek
- együtt
- szerszámok
- felső
- Nyomon követhetőség
- vágány
- hagyományos
- Vonat
- kiképzett
- Képzések
- transzformátor
- igaz
- kettő
- típus
- tipikus
- jellemzően
- ui
- megért
- megértés
- sajnálatos módon
- ismeretlen
- frissítve
- feltöltve
- us
- használ
- használt
- használó
- User Experience
- felhasználói felület
- Felhasználók
- használ
- segítségével
- érvényesítés
- érték
- fajta
- különféle
- nagyon
- keresztül
- megjelenítés
- volt
- Út..
- we
- háló
- webes szolgáltatások
- web-alapú
- súly
- JÓL
- amikor
- ami
- míg
- Wikipedia
- lesz
- val vel
- belül
- nélkül
- Munka
- munkafolyamat
- munkafolyamatok
- művek
- világ
- lenne
- írott
- röntgen
- év
- te
- A te
- zephyrnet