Ravimite väljatöötamine on keeruline ja pikk protsess, mis hõlmab tuhandete ravimikandidaatide sõelumist ja arvutuslike või eksperimentaalsete meetodite kasutamist müügivihjete hindamiseks. McKinsey sõnul, võib ühe ravimi puhul kuluda 10 aastat ja kuluda keskmiselt 2.6 miljardit dollarit, et läbida haiguse sihtmärgi tuvastamine, ravimite sõeluuringud, ravimi sihtmärgi valideerimine ja lõpuks turuletoomine. Narkootikumide avastamine on selle torujuhtme uurimiskomponent, mis toodab kandidaatravimeid, millel on suurim tõenäosus, et need on tõhusad ja kahjustavad patsiente kõige vähem. Masinõppe (ML) meetodid võivad aidata tuvastada sobivaid ühendeid ravimite avastamise protsessi igas etapis, mille tulemuseks on ravimite eelistamise ja testimise sujuvam määramine, säästes miljardeid ravimiarenduse kulusid (lisateabe saamiseks vaadake AI biofarma uuringutes: aeg keskenduda ja skaleerida).
Ravimi sihtmärgid on tavaliselt bioloogilised üksused, mida nimetatakse valgud, elu ehituskivid. Valgu 3D-struktuur määrab, kuidas see interakteerub ravimühendiga; seetõttu võib valgu 3D-struktuuri mõistmine lisada ravimite väljatöötamise protsessi olulisi täiustusi, skriinides ravimiühendeid, mis sobivad paremini sihtvalgu struktuuriga. Teine valdkond, kus valgu struktuuri ennustamine võib olla kasulik, on valkude mitmekesisuse mõistmine, nii et valime ainult ravimid, mis sihivad selektiivselt spetsiifilisi valke, mõjutamata teisi keha valke (lisateabe saamiseks vaadake Sihthindamise parandamine biomeditsiinilistes uuringutes: GOT-IT soovitused). Sihtvalkude täpsed 3D-struktuurid võivad võimaldada ravimite kavandamist suurema spetsiifilisusega ja väiksema tõenäosusega ristinteraktsioonideks teiste valkudega.
Valkude 3D-struktuuriks voltimise ennustamine on aga keeruline probleem ning traditsioonilised katsemeetodid, nagu röntgenkristallograafia ja NMR-spektroskoopia, võivad olla aeganõudvad ja kulukad. Hiljutised edusammud valguuuringute süvaõppemeetodites on näidanud lubadust kasutada närvivõrke, et ennustada valkude voltimist märkimisväärse täpsusega. Voltimisalgoritmid nagu AlfaFold2, ESMFold, OpenFoldja RoseTTAFold saab kasutada valkude struktuuride täpsete mudelite kiireks koostamiseks. Kahjuks on nende mudelite käitamine arvutuslikult kulukas ja tulemuste võrdlemine tuhandete kandidaatvalgustruktuuride skaalal võib olla tülikas. Skaleeritav lahendus nende erinevate tööriistade kasutamiseks võimaldab teadlastel ja kaubanduslikel uurimis- ja arendusmeeskondadel kiiresti kaasata valgu struktuuri prognoosimise uusimaid edusamme, hallata oma katseprotsesse ja teha koostööd uurimispartneritega.
Amazon SageMaker on täielikult hallatav teenus kvaliteetsete ML-mudelite kiireks ettevalmistamiseks, ehitamiseks, koolitamiseks ja juurutamiseks, koondades laia valikut ML-i jaoks spetsiaalselt loodud võimalusi. See pakub ML-i jaoks täielikult hallatavat keskkonda, eemaldades infrastruktuuri, andmehalduse ja mastaapsuse nõuded, et saaksite keskenduda oma mudelite ehitamisele, koolitusele ja testimisele.
Selles postituses tutvustame SageMakeriga täielikult hallatavat ML-lahendust, mis lihtsustab valgu voltimisstruktuuri prognoosimise töövoogude toimimist. Esmalt arutame lahendust kõrgel tasemel ja selle kasutajakogemust. Järgmisena tutvustame teile, kuidas SageMakeriga hõlpsasti AlphaFold2 ja OpenFoldi arvutustele optimeeritud töövooge seadistada. Lõpuks näitame, kuidas saate jälgida ja võrrelda valgu struktuuri prognoose tüüpilise analüüsi osana. Selle lahenduse kood on saadaval allpool GitHubi hoidla.
Lahenduse ülevaade
Selle lahenduse abil saavad teadlased interaktiivselt käivitada valkude voltimiskatseid, analüüsida 3D-struktuuri, jälgida töö edenemist ja jälgida katseid Amazon SageMaker Studio.
Järgmisel ekraanipildil on näha valgu voltimise töövoo üks kord Amazon SageMaker Studioga. See sisaldab 3D-struktuuri visualiseerimist märkmikus, SageMakeri tööde olekut töövoos ning linke sisendparameetritele ning väljundandmetele ja logidele.
Järgnev diagramm illustreerib kõrgtaseme lahenduse arhitektuuri.
Arhitektuuri mõistmiseks määratleme kõigepealt valgu voltimiskatse põhikomponendid järgmiselt:
- FASTA sihtjärjestuse fail - FASTA formaat on tekstipõhine vorming kas nukleotiidjärjestuste või aminohapete (valgu) järjestuste esitamiseks, milles nukleotiidid või aminohapped on esitatud ühetäheliste koodide abil.
- Geneetilised andmebaasid – Geneetiline andmebaas on üks või mitu geneetiliste andmete komplekti, mis on salvestatud koos tarkvaraga, mis võimaldab kasutajatel geneetilisi andmeid hankida. AlphaFoldi ja OpenFoldi algoritmide käitamiseks on vaja mitut geneetilist andmebaasi, nt BFD, MGnify, PDB70, PDB, Esialgse eelarveprojekti järjed, UniRef30 (FKA UniClust30), UniProtja UniRef90.
- Mitme järjestuse joondamine (MSA) - A järjestuse joondamine on viis valgu primaarsete järjestuste korraldamiseks, et tuvastada sarnasuspiirkondi, mis võivad olla järjestuste vaheliste funktsionaalsete, struktuursete või evolutsiooniliste suhete tagajärg. Prognooside sisendfunktsioonid hõlmavad MSA andmeid.
- Valgu struktuuri ennustamine - Sisendsihtjärjestuste struktuur ennustatakse voltimisalgoritmidega nagu AlfaFold2 ja OpenFold mis kasutavad mitmerajalist trafoarhitektuuri, mis on treenitud tuntud valgumallide põhjal.
- Visualiseerimine ja mõõdikud – Visualiseerige 3D-struktuur nupuga py3Dmol raamatukogu interaktiivse 3D-visualisatsioonina. Mõõdikute abil saate eelkõige hinnata ja võrrelda struktuuriennustusi ruutkeskmise kõrvalekalle (RMSD) ja malli modelleerimise skoor (TM-skoor)
Töövoog sisaldab järgmisi samme.
- Teadlased kasutavad veebipõhist SageMaker ML IDE-d koodibaasi uurimiseks, valgujärjestuse analüüsi töövoogude loomiseks SageMaker Studio sülearvutites ja valgu voltimise torujuhtmete käivitamiseks SageMaker Studio või SageMaker SDK graafilise kasutajaliidese kaudu.
- AlphaFoldi ja OpenFoldi nõutavad geneetilised ja struktuuriandmebaasid laaditakse alla enne torujuhtme seadistamist Amazon SageMakeri töötlemine, lühiajaline arvutusfunktsioon ML-andmete töötlemiseks, et an Amazoni lihtne salvestusteenus (Amazon S3) kopp. Rakenduse SageMaker Processing abil saate korraliku arvutusega käivitada kaua kestnud tööd ilma arvutusklastrit ja salvestusruumi seadistamata ning klastrit sulgemata. Andmed salvestatakse automaatselt määratud S3 ämbri asukohta.
- An Amazon FSx Lusteri jaoks failisüsteem on seadistatud, andmehoidla on S3 ämbri asukoht, kuhu andmebaasid salvestatakse. FSx for Lusteri läbilaskevõime ulatub sadadesse GB/s ja miljonitesse IOPS-i madala latentsusajaga failiotsingu abil. Hindaja töö käivitamisel ühendab SageMaker failisüsteemi FSx for Luster eksemplari failisüsteemi ja käivitab seejärel skripti.
- Amazon SageMakeri torujuhtmed kasutatakse valgu voltimisalgoritmide mitme käigu korraldamiseks. SageMaker Pipelines pakub soovitud visuaalset liidest töö interaktiivseks esitamiseks, edenemise jälgitavuse ja korratavuse jaoks.
- Konveieri sees käitatakse SageMakeri hindajatega kahte arvutuslikult rasket valgu voltimisalgoritmi – AlphaFold ja OpenFold. See konfiguratsioon toetab FSx for Luster failisüsteemi paigaldamist suure läbilaskevõimega andmebaasiotsingu jaoks algoritmides. Üks järelduse käitamine on jagatud kaheks etapiks: MSA ehitamise etapp, mis kasutab optimaalset protsessori eksemplari, ja struktuuri ennustamise etapp GPU eksemplari abil. Need alametapid, nagu SageMakeri töötlemine 2. etapis, on lühiajalised, nõudmisel ja täielikult hallatavad. Tööväljundid, nagu MSA-failid, prognoositud pdb-struktuuri failid ja muud metaandmete failid, salvestatakse määratud S3-kohta. Konveieri saab kavandada nii, et see käivitaks ühe valgu voltimisalgoritmi või nii AlphaFoldi kui ka OpenFoldi pärast ühist MSA konstruktsiooni.
- Valgu voltimise ennustuse käike jälgib automaatselt Amazon SageMakeri katsed edasiseks analüüsiks ja võrdlemiseks. Tööpäevikuid peetakse sees Amazon CloudWatch jälgimiseks.
Eeldused
Selle postituse jälgimiseks ja selle lahenduse käitamiseks peate täitma mitu eeltingimust. Vaadake GitHubi hoidla iga sammu üksikasjaliku selgituse saamiseks.
Käivitage SageMakeris valgu voltimine
Kasutame SageMakeri täielikult hallatavaid võimalusi arvutuslikult raskete valkude voltimistööde tegemiseks ilma suurema infrastruktuuri kuluta. SageMaker kasutab konteineripilte, et käitada kohandatud skripte üldiseks andmetöötluseks, koolituseks ja hostimiseks. Soovi korral saate hõlpsasti käivitada lühiajalise töö, mis käivitab programmi konteineri kujutisega, millel on paar rida SageMaker SDK ilma arvutustaristu isehaldamiseta. Täpsemalt pakub SageMakeri hindaja töö paindlikkust konteineri kujutise, käitamisskripti ja eksemplari konfiguratsiooni valimisel ning toetab lai valik ladustamisvõimalusi, sealhulgas failisüsteemid, nagu FSx for Lustre. Seda arhitektuuri illustreerib järgmine diagramm.
Voltimisalgoritmid, nagu AlphaFold ja OpenFold, kasutavad tundmatute peptiidjärjestuste struktuuri ennustamiseks mitmerajalist trafoarhitektuuri, mis on koolitatud tuntud valgumallide põhjal. Neid ennustusi saab käivitada GPU eksemplaridel, et tagada parim läbilaskevõime ja madalaim latentsusaeg. Nende prognooside sisendfunktsioonid hõlmavad aga MSA andmeid. MSA algoritmid sõltuvad CPU-st ja võivad nõuda mitu tundi töötlemisaega.
Nii MSA kui ka struktuuri prognoosimise etappide käitamine samas arvutuskeskkonnas võib olla kulutõhus, kuna kallid GPU ressursid jäävad MSA etapi töötamise ajal jõude. Seetõttu optimeerime töövoo kaheks etapiks. Esiteks käivitame CPU eksemplaris SageMakeri hinnangu töö, et arvutada MSA joondus konkreetse FASTA sisendjärjestuse ja lähtegeenide andmebaaside alusel. Seejärel käivitame GPU eksemplaris SageMakeri hindaja töö, et ennustada valgu struktuuri antud sisendi MSA joonduse ja voltimisalgoritmiga, nagu AlphaFold või OpenFold.
Käivitage MSA genereerimine
MSA arvutamiseks kaasame kohandatud skripti run_create_alignment.sh
ja create_alignments.py
skript, mis võetakse vastu olemasolevast AlphaFoldi ennustusallikast run_alphafold.py. Pange tähele, et kui AlphaFoldi lähtekoodi värskendatakse, võib seda skripti olla vaja värskendada. Kohandatud skript antakse SageMakeri hindajale läbi skriptirežiim. Konteineri kujutise põhikomponendid, skriptirežiimi juurutamine ja SageMakeri hinnangu töö seadistamine on samuti osa voltimisalgoritmide käitamise järgmisest etapist ja neid kirjeldatakse üksikasjalikumalt järgmises jaotises.
Käivitage AlphaFold
Alustuseks käivitame ühe valgujärjestusega AlphaFoldi struktuuri ennustuse, kasutades SageMakerit. AlphaFoldi töö käitamine hõlmab kolme lihtsat sammu, nagu on näha 01-run_stepbystep.ipynb
. Esiteks loome AlphaFoldi põhjal Dockeri konteineri kujutise dockerfile et ka meie saaksime käivitage AlphaFold SageMakeris. Teiseks koostame skripti run_alphafold.sh
mis juhendab AlphaFoldi käivitamist. Kolmandaks konstrueerime ja käivitame a SageMakeri hindaja koos skripti, konteineri, eksemplari tüübi, andmete ja töö konfiguratsiooniga.
Konteineri pilt
Konteineri kujutise käitusaja nõuet AlphaFoldi (ka OpenFoldi) käitamiseks SageMakeris saab AlphaFoldi Dockerfile'iga oluliselt lihtsustada. Peame lisama vaid käputäie lihtsaid kihte, et installida SageMakeri spetsiifiline Pythoni teegi, et SageMakeri töö saaks konteineri kujutisega suhelda. Vaadake järgmist koodi:
Sisestage skript
Seejärel esitame skripti run_alphafold.sh
see töötab run_alphafold.py AlphaFoldi hoidlast, mis on praegu konteinerisse paigutatud /app/alphafold/run_alphafold.py
. Selle skripti käivitamisel täidab SageMaker keskkonnamuutujatena geneetiliste andmebaaside asukoha ja FASTA sisendjärjestuse (SM_CHANNEL_GENETIC
ja SM_CHANNEL_FASTA
vastavalt). Lisateabe saamiseks vaadake Sisendandmete konfiguratsioon.
Hindaja töö
Järgmisena loome töö SageMakeri hindaja abil, millel on järgmised sisendargumendid, mis juhendavad SageMakerit käivitama konkreetset skripti, kasutades määratud konteinerit koos eksemplari tüübi või arvuga, teie valitud võrguvalikuga ja muude töö parameetritega. vpc_subnet_ids
ja security_group_ids
juhendama tööd jooksma konkreetses VPC-s, kus on FSx for Lusteri failisüsteem, et saaksime SageMakeri töös failisüsteemi ühendada ja sellele juurde pääseda. Väljunditee viitab S3 ämbri asukohale, kuhu AlphaFoldi lõpptoode SageMakeri eduka töö lõpus automaatselt üles laadib. Siin määrame ka parameetri DB_PRESET
, näiteks sissepääs ja juurdepääs run_alphafold.sh
keskkonnamuutujana käitusajal. Vaadake järgmist koodi:
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,
...)
Lõpuks kogume andmed kokku ja anname töökohale teada, kus need asuvad. The fasta
andmekanal on määratletud kui S3 andmesisend, mis laaditakse töö alguses alla S3 asukohast arvutuseksemplari. See võimaldab suurt paindlikkust sisestusjärjestuse haldamisel ja täpsustamisel. Teisest küljest, genetic
andmekanal on määratletud kui a FileSystemInput
mis paigaldatakse eksemplarile töö alguses. Failisüsteemi FSx for Luster kasutamine ligi 3 TB andmete toomiseks väldib andmete korduvat allalaadimist S3 ämbrist arvutuseksemplari. Me kutsume .fit
meetod AlphaFoldi töö käivitamiseks:
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
See on kõik. Esitasime just SageMakerile töö AlphaFoldi käitamiseks. Logid ja väljund, sealhulgas .pdb ennustusfailid, kirjutatakse Amazon S3-sse.
Käivitage OpenFold
OpenFoldi käitamine SageMakeris järgib sarnast mustrit, nagu on näidatud aasta teises pooles 01-run_stepbystep.ipynb
. Esmalt lisame SageMakeri-spetsiifilise teegi saamiseks lihtsa kihi, et muuta konteineri kujutis SageMaker OpenFoldi peale ühilduvaks dockerfile. Teiseks konstrueerime a run_openfold.sh
kui sisenemispunkt SageMakeri tööle. sisse run_openfold.sh
, juhime run_pretrained_openfold.py OpenFoldist, mis on saadaval konteineri pildil samade geneetiliste andmebaasidega, mille me AlphaFoldi ja OpenFoldi mudelikaalude jaoks alla laadisime (--openfold_checkpoint_path
). Sisendandmete asukohtade osas tutvustame geneetiliste andmebaaside kanali ja FASTA kanali kõrval ka kolmandat kanalit, SM_CHANNEL_PARAM
, et saaksime töö defineerimisel ja esitamisel paindlikult edasi anda hindaja konstruktsioonist valitud mudelikaalud. SageMakeri hindaja abil saame hõlpsasti esitada töid erinevatega entry_point
, image_uri
, environment
, inputs
ja muud sama allkirjaga OpenFoldi konfiguratsioonid. Andmekanali jaoks lisame uue kanali, param
, Amazon S3 sisendiks koos samade geneetiliste andmebaaside kasutamisega FSx for Lusteri failisüsteemist ja FASTA faili Amazon S3-st. See võimaldab meil jällegi hõlpsasti määrata töökonstruktsioonis kasutatava mudeli kaalu. Vaadake järgmist koodi:
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)
Lõplikule väljundile juurdepääsuks pärast töö lõpetamist käivitame järgmised käsud:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Kestusaegne jõudlus
Järgmises tabelis on näidatud kulude kokkuhoid vastavalt 57% ja 51% AlphaFoldi ja OpenFoldi puhul, jagades MSA joondus- ja voltimisalgoritmid kaheks tööks, võrreldes ühe arvutustööga. See võimaldab meil arvutada iga töö jaoks õiges suuruses: ml.m5.4xlarge MSA joonduse jaoks ja ml.g5.2xlarge AlphaFoldi ja OpenFoldi jaoks.
töö üksikasjad | Juhtumi tüüp | Sisestage FASTA järjestus | Runtime | Maksma |
MSA joondus + OpenFold | ml.g5.4xsuur | T1030 | 50 min | $1.69 |
MSA joondus + AlphaFold | ml.g5.4xsuur | T1030 | 65 min | $2.19 |
MSA joondus | ml.m5.4xsuur | T1030 | 46 min | $0.71 |
OpenFold | ml.g5.2xsuur | T1030 | 6 min | $0.15 |
AlfaFold | ml.g5.2xsuur | T1030 | 21 min | $0.53 |
Looge SageMakeri torujuhtmete abil korratav töövoog
SageMaker Pipelinesiga saame luua ML-i töövoo, mis hoolitseb andmete haldamise eest etappide vahel, nende käitamise korraldamise ja logimise eest. SageMaker Pipelines pakub meile ka kasutajaliidest, mis võimaldab visualiseerida meie konveieri ja hõlpsasti käitada ML-i töövoogu.
Torujuhe luuakse mitmete kammimise teel samme. Selles torujuhtmes ühendame kolm koolitusetapid, mis nõuavad SageMakeri hindajat. Selles märkmikus määratletud hinnangud on väga sarnased punktis määratletutega 01-run_stepbystep.ipynb
, välja arvatud see, et kasutame oma sisenditele ja väljunditele osutamiseks Amazon S3 asukohti. Dünaamilised muutujad võimaldavad SageMaker Pipelinesil käivitada samme üksteise järel ja samuti lubavad kasutajal ebaõnnestunud samme uuesti proovida. Järgmisel ekraanipildil on kujutatud suunatud atsükliline graafik (DAG), mis annab teavet meie konveieri iga etapi nõuete ja suhete kohta.
Dünaamilised muutujad
SageMaker Pipelines on võimeline võtma kasutaja sisendeid iga konveieri käivitamise alguses. Määratleme järgmised dünaamilised muutujad, mida soovime iga katse ajal muuta:
- FastaInputS3URI – SDK, Boto3 või käsitsi üles laaditud FASTA-faili Amazon S3 URI.
- FastFileName – FASTA faili nimi.
- db_preset – Valik vahel
full_dbs
orreduced_dbs
. - MaxTemplateDate – AlphaFoldi MSA samm otsib saadaolevaid malle enne selle parameetriga määratud kuupäeva.
- MudelPreset – Valige AlphaFoldi mudelite vahel, sealhulgas
monomer
,monomer_casp14
,monomer_ptm
jamultimer
. - NumMultimerPredictionsPerModel – Multimeersüsteemi kasutamisel mudeli kohta käitatavate seemnete arv.
- InferenceInstanceType – Järeldustoimingute jaoks kasutatav eksemplari tüüp (nii AlphaFold kui ka OpenFold). Vaikeväärtus on ml.g5.2xlarge.
- MSAInstanceType – MSA sammu jaoks kasutatav eksemplari tüüp. Vaikeväärtus on ml.m5.4xlarge.
Vaadake järgmist koodi:
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')
SageMakeri konveieri konstrueerimiseks määratakse etappide seeria ja seejärel aheldatakse need kokku kindlas järjekorras, kus eelmise etapi väljundist saab järgmise sammu sisend. Sammud saab käivitada paralleelselt ja määratleda, et need sõltuvad eelmisest etapist. Selles torujuhtmes defineerime MSA sammu, mis on paralleelselt töötavate AlphaFoldi järeldusetapi ja OpenFoldi järeldusetapi sõltuvus. Vaadake järgmist koodi:
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]
Kõigi sammude kokkupanekuks kutsume Pipeline
klassi ja sisestage konveieri nimi, torujuhtme sisendmuutujad ja üksikud sammud:
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')
Käivitage torujuhe
Märkmiku viimases lahtris 02-define_pipeline.ipynb
, näitame, kuidas käitada konveieri SageMaker SDK abil. Varem kirjeldatud dünaamilised muutujad on esitatud järgmiselt:
!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
)
Jälgige katseid ja võrrelge valkude struktuure
Meie katse jaoks kasutame valgujärjestuse näidet CASP14 konkurentsi, mis pakub sõltumatut mehhanismi valgu struktuuri modelleerimise meetodite hindamiseks. Sihtmärk T1030 on tuletatud PDB 6P00 valgust ja selle primaarses järjestuses on 237 aminohapet. Käitame SageMakeri torujuhtme, et ennustada selle sisendjärjestuse valgu struktuuri nii OpenFoldi kui ka AlphaFoldi algoritmidega.
Kui konveier on lõppenud, laadime igast voltimistööst alla prognoositud .pdb-failid ja visualiseerime märkmiku struktuuri, kasutades py3Dmol, nagu märkmikus 04-compare_alphafold_openfold.ipynb
.
Järgmine ekraanipilt näitab AlphaFoldi ennustustöö ennustust.
Prognoositavat struktuuri võrreldakse selle teadaoleva baasviitestruktuuriga esialgse eelarveprojekti koodiga 6poo arhiveeritud sisse RCSB. Analüüsime prognoosi jõudlust esialgse esialgse eelarveprojekti põhikoodi 6poo suhtes kolme mõõdikuga: RMSD, RMSD superpositsiooniga ja malli modelleerimise skoor, nagu on kirjeldatud jaotises Struktuuride võrdlemine.
. | Sisestusjärjestus | Võrdlus | RMSD | Superpositsiooniga RMSD | Malli modelleerimise skoor |
AlfaFold | T1030 | 6poo | 247.26 | 3.87 | 0.3515 |
Nüüd võrreldakse voltimisalgoritme üksteisega mitme FASTA järjestuse jaoks: T1030, T1090ja T1076. Uutel sihtjärjestustel ei pruugi võrdlusandmebaasides olla pdb põhistruktuuri ja seetõttu on kasulik võrrelda voltimisalgoritmide varieeruvust.
. | Sisestusjärjestus | Võrdlus | RMSD | Superpositsiooniga RMSD | Malli modelleerimise skoor |
AlfaFold | T1030 | OpenFold | 73.21 | 24.8 | 0.0018 |
AlfaFold | T1076 | OpenFold | 38.71 | 28.87 | 0.0047 |
AlfaFold | T1090 | OpenFold | 30.03 | 20.45 | 0.005 |
Järgmine ekraanipilt näitab jookse ProteinFoldWorkflow
kolme FASTA sisendjärjestuse jaoks koos SageMaker Pipeline'iga:
Samuti logime mõõdikud rakendusega SageMaker Experiments sama torujuhtme loodud katse uute käitustena:
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)
Seejärel analüüsime ja visualiseerime neid jookse rakenduses Katsed leht SageMaker Studios.
Järgmisel diagrammil on kujutatud RMSD väärtus AlphaFoldi ja OpenFoldi vahel kolme jada jaoks: T1030, T1076 ja T1090.
Järeldus
Selles postituses kirjeldasime, kuidas saate SageMakeri torujuhtmeid kasutada valgu voltimise töövoogude seadistamiseks ja käitamiseks kahe populaarse struktuuriennustusalgoritmiga: AlphaFold2 ja OpenFold. Näitasime mitme töökoha hinnapõhise lahenduse arhitektuuri, mis eraldab MSA genereerimise arvutusnõuded struktuuri prognoosimisest. Samuti tõstsime esile, kuidas saate SageMaker Studios visualiseerida, hinnata ja võrrelda valkude ennustatud 3D-struktuure.
SageMakeris valgu voltimise töövoogudega alustamiseks vaadake näidiskoodi dokumendis GitHub repo.
Autoritest
Michael Hsieh on peamine AI/ML spetsialistilahenduste arhitekt. Ta teeb koostööd HCLS-i klientidega, et edendada nende ML-teekonda AWS-tehnoloogiate ja oma teadmistega meditsiinilise pildistamise alal. Seattle'i siirdajana armastab ta avastada linna suurepärast emakest loodust, nagu matkarajad, maastikuline süstasõit SLU-s ja päikeseloojang Shilshole'i lahes.
Shivam Patel on AWS-i lahenduste arhitekt. Ta on pärit teadus- ja arendustegevuse taustast ning ühendab selle oma äriteadmistega, et lahendada keerulisi probleeme, millega kliendid silmitsi seisavad. Shivam on kõige kirglikum masinõppe, robootika, asjade Interneti ja suure jõudlusega andmetöötluse töökoormuse vastu.
Hasan Poonawala on AWS-i AI/ML-i spetsialistlahenduste vanemarhitekt. Hasan aitab klientidel kavandada ja juurutada masinõpperakendusi AWS-i tootmises. Tal on üle 12-aastane töökogemus andmeteadlase, masinõppe praktiku ja tarkvaraarendajana. Vabal ajal armastab Hasan loodust uurida ning sõprade ja perega aega veeta.
Jasleen Grewal on vanemrakendusteadlane ettevõttes Amazon Web Services, kus ta töötab AWS-i klientidega, et lahendada masinõppe abil reaalseid probleeme, keskendudes eelkõige täppismeditsiinile ja genoomikale. Tal on tugev taust bioinformaatikas, onkoloogias ja kliinilises genoomikas. Ta on kirglik AI/ML-i ja pilveteenuste kasutamise vastu patsientide ravi parandamiseks.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoData.Network Vertikaalne generatiivne Ai. Jõustage ennast. Juurdepääs siia.
- PlatoAiStream. Web3 luure. Täiustatud teadmised. Juurdepääs siia.
- PlatoESG. Autod/elektrisõidukid, Süsinik, CleanTech, Energia, Keskkond päikeseenergia, Jäätmekäitluse. Juurdepääs siia.
- BlockOffsets. Keskkonnakompensatsiooni omandi ajakohastamine. Juurdepääs siia.
- Allikas: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :on
- :on
- :mitte
- : kus
- $ UP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- MEIST
- AC
- kiirendama
- juurdepääs
- pääses
- täpsus
- täpne
- atsükliline
- lisama
- vastu
- edendama
- ettemaksed
- mõjutades
- pärast
- jälle
- vastu
- AI / ML
- algoritm
- algoritme
- joondumine
- Materjal: BPA ja flataatide vaba plastik
- võimaldama
- võimaldab
- mööda
- Ka
- Amazon
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Web Services
- an
- analüüs
- analüüsima
- ja
- Teine
- mistahes
- rakendused
- rakendatud
- arhitektuur
- OLEME
- PIIRKOND
- argumendid
- AS
- hindamine
- At
- automaatselt
- saadaval
- keskmine
- ära
- AWS
- tagasi
- tagapõhi
- baas
- põhineb
- laht
- BE
- sest
- muutub
- enne
- Algus
- on
- Pealegi
- BEST
- Parem
- vahel
- Miljard
- miljardeid
- biomeditsiiniline
- biofarma
- Plokid
- keha
- mõlemad
- tooma
- Toomine
- lai
- ehitama
- Ehitus
- äri
- by
- helistama
- kutsutud
- CAN
- kandidaat
- kandidaadid
- võimeid
- võimeline
- mis
- muutma
- Kanal
- Joonis
- valik
- Linn
- klass
- kliiniline
- lähedal
- Cloud
- pilvteenustest
- Cluster
- kood
- koodi alus
- koodid
- Teevad koostööd
- ühendama
- ühendab
- tuleb
- kaubandus-
- ühine
- edastama
- võrdlema
- võrreldes
- võrdlus
- kokkusobiv
- konkurents
- täitma
- Lõpetatud
- Lõpetab
- keeruline
- komponent
- komponendid
- SEGU
- arvutamine
- Arvutama
- arvutustehnika
- konfiguratsioon
- ehitama
- ehitus
- Konteiner
- sisaldab
- Maksma
- kulude kokkuhoid
- kulud
- Paar
- looma
- loodud
- Praegu
- tava
- Kliendid
- DAG
- andmed
- andmehaldus
- andmetöötlus
- andmeteadlane
- andmebaas
- andmebaasid
- kuupäev
- sügav
- sügav õpe
- vaikimisi
- määratlema
- määratletud
- määratlemisel
- näitama
- Näidatud
- Sõltuvus
- juurutada
- Tuletatud
- kirjeldatud
- Disain
- kavandatud
- soovitud
- üksikasjalik
- Määrama
- määrab
- arendaja
- & Tarkvaraarendus
- erinev
- raske
- avastus
- arutama
- haigus
- mitmekesisus
- jagatud
- laevalaadija
- alla
- lae alla
- uimasti
- Narkootikumide
- ajal
- dünaamiline
- iga
- Ajalugu
- kergesti
- Tõhus
- kumbki
- võimaldama
- lõpp
- üksuste
- kanne
- keskkond
- keskkonna-
- hindama
- lõpuks
- Iga
- näide
- erand
- täidetud
- täitmine
- olemasolevate
- kallis
- kogemus
- eksperiment
- katseid
- teadmised
- selgitus
- uurima
- Avastades
- silmitsi seisnud
- Ebaõnnestunud
- pere
- tunnusjoon
- FUNKTSIOONID
- fail
- Faile
- lõplik
- Lõpuks
- esimene
- Esimest korda
- sobima
- Paindlikkus
- paindlikult
- Keskenduma
- järgima
- Järel
- järgneb
- eest
- formaat
- sõbrad
- Alates
- täis
- täielikult
- funktsionaalne
- edasi
- koguma
- genereerib
- põlvkond
- genoomika
- saama
- antud
- Go
- GPU
- graafik
- suur
- suuresti
- Pool
- käsi
- käputäis
- kahju
- Olema
- he
- raske
- aitama
- aitab
- siin
- Suur
- kõrgetasemeline
- suur jõudlus
- kvaliteetne
- rohkem
- kõrgeim
- Esiletõstetud
- tema
- Hosting
- Lahtiolekuajad
- Kuidas
- Kuidas
- aga
- HTML
- http
- HTTPS
- sajad
- Identifitseerimine
- identifitseerima
- Idle
- if
- illustreerib
- pilt
- pildid
- Imaging
- täitmine
- import
- parandama
- parandusi
- in
- sisaldama
- hõlmab
- Kaasa arvatud
- lisada
- sõltumatud
- eraldi
- info
- Infrastruktuur
- sisend
- sisendite
- sees
- paigaldama
- Näiteks
- interaktiivne
- interaktiivne
- Interface
- sisse
- kehtestama
- asjade Interneti
- IT
- ITS
- töö
- Tööturg
- teekond
- jpg
- lihtsalt
- hoitakse
- Võti
- lüüa
- Teadma
- teadmised
- teatud
- viimane
- Hilinemine
- hiljemalt
- algatama
- kiht
- kihid
- Leads
- õppimine
- kõige vähem
- laskma
- Tase
- Raamatukogu
- elu
- nagu
- tõenäosus
- liinid
- lingid
- kohapeal
- liising
- kohad
- logi
- metsaraie
- Pikk
- armastab
- vähendada
- madalaim
- masin
- masinõpe
- tegema
- juhtima
- juhitud
- juhtimine
- juhtiv
- käsitsi
- mai..
- McKinsey
- mehhanism
- meditsiini-
- meditsiin
- Metaandmed
- meetod
- meetodid
- Meetrika
- miljonid
- ML
- viis
- mudel
- modelleerimine
- mudelid
- Jälgida
- järelevalve
- rohkem
- kõige
- ema
- MOUNT
- palju
- mitmekordne
- nimi
- loodus
- Vajadus
- vajav
- võrgustike loomine
- võrgustikud
- närvivõrgud
- Uus
- uus sihtmärk
- järgmine
- NIH
- eelkõige
- märkmik
- nüüd
- number
- of
- maha
- pakkuma
- Pakkumised
- Hästi
- on
- On-Demand
- ONE
- ainult
- peale
- töö
- optimaalselt
- optimeerima
- valik
- or
- et
- Muu
- meie
- väljund
- üle
- lehekülg
- Parallel
- parameeter
- parameetrid
- osa
- eriline
- partnerid
- sooritama
- Vastu võetud
- kirglik
- tee
- patsient
- patsientidel
- Muster
- kohta
- jõudlus
- torujuhe
- Platon
- Platoni andmete intelligentsus
- PlatoData
- Punkt
- populaarne
- asustatud
- post
- vajadus
- Täpsus
- ennustada
- ennustada
- prognoosimine
- ennustus
- Ennustused
- Valmistama
- eeldused
- esitada
- eelmine
- hind
- esmane
- Peamine
- Eelnev
- prioriteetide
- Probleem
- probleeme
- protsess
- Protsessid
- töötlemine
- Toode
- Produktsioon
- Programm
- Edu
- lubadus
- korralik
- Valk
- Valgud
- anda
- tingimusel
- annab
- panema
- Python
- kiiresti
- R & D
- reaalne
- päris maailm
- hiljuti
- viitab
- piirkondades
- Suhted
- jääma
- tähelepanuväärne
- korratav
- KORDUVALT
- Hoidla
- esindatud
- esindavad
- nõudma
- nõutav
- nõue
- Nõuded
- teadustöö
- Teadlased
- Vahendid
- vastavalt
- tulemuseks
- Tulemused
- robootika
- jooks
- jooksmine
- jookseb
- s
- salveitegija
- SageMakeri torujuhtmed
- sama
- säästmine
- Hoiused
- Skaalautuvus
- skaalautuvia
- Skaala
- teadus
- teadlane
- teadlased
- skoor
- sõelumine
- skripte
- SDK
- Otsing
- Seattle
- Teine
- Osa
- vaata
- seemned
- nähtud
- valik
- vanem
- Jada
- Seeria
- teenus
- Teenused
- komplekt
- Komplektid
- kehtestamine
- seade
- mitu
- ta
- peaks
- näitama
- näidatud
- Näitused
- sulgema
- märkimisväärne
- sarnane
- lihtne
- lihtsustatud
- ühekordne
- So
- tarkvara
- lahendus
- Lahendused
- LAHENDAGE
- allikas
- eriline
- spetsialist
- konkreetse
- eriti
- spetsiifilisus
- määratletud
- Spektroskoopia
- kulutama
- Stage
- algus
- alustatud
- Käivitus
- algab
- olek
- Samm
- Sammud
- ladustamine
- ladustatud
- Sujuvamaks
- tugev
- struktuuriline
- struktuur
- stuudio
- esitamine
- esitama
- esitatud
- edukas
- selline
- sobiv
- Päikeseloojang
- kihilisus
- Toetab
- süsteem
- süsteemid
- tabel
- Võtma
- võtab
- võtmine
- sihtmärk
- eesmärgid
- meeskonnad
- Tehnoloogiad
- šabloon
- malle
- tingimused
- Testimine
- et
- .
- Allikas
- oma
- Neile
- SIIS
- seetõttu
- Need
- nad
- Kolmas
- see
- need
- tuhandeid
- kolm
- Läbi
- läbilaskevõime
- aeg
- aega võttev
- et
- kokku
- töövahendid
- ülemine
- Jälgitavus
- jälgida
- traditsiooniline
- Rong
- koolitatud
- koolitus
- trafo
- tõsi
- kaks
- tüüp
- tüüpiline
- tüüpiliselt
- ui
- mõistma
- mõistmine
- kahjuks
- tundmatu
- ajakohastatud
- laetud
- us
- kasutama
- Kasutatud
- Kasutaja
- User Experience
- Kasutajaliides
- Kasutajad
- kasutusalad
- kasutamine
- kinnitamine
- väärtus
- sort
- eri
- väga
- kaudu
- visualiseerimine
- oli
- Tee..
- we
- web
- veebiteenused
- Veebipõhine
- kaal
- Hästi
- millal
- mis
- kuigi
- Wikipedia
- will
- koos
- jooksul
- ilma
- Töö
- töövoog
- Töövoogud
- töötab
- maailm
- oleks
- kirjalik
- röntgen
- aastat
- sa
- Sinu
- sephyrnet