Lægemiddeludvikling er en kompleks og lang proces, der involverer screening af tusindvis af lægemiddelkandidater og brug af beregningsmæssige eller eksperimentelle metoder til at evaluere kundeemner. Ifølge McKinsey, kan et enkelt lægemiddel tage 10 år og koste i gennemsnit 2.6 milliarder dollars at gå igennem identifikation af sygdomsmål, lægemiddelscreening, lægemiddelmålvalidering og eventuel kommerciel lancering. Lægemiddelopdagelse er forskningskomponenten i denne pipeline, der genererer kandidatlægemidler med størst sandsynlighed for at være effektive med mindst mulig skade på patienter. Maskinlæring (ML)-metoder kan hjælpe med at identificere egnede forbindelser på hvert trin i lægemiddelopdagelsesprocessen, hvilket resulterer i mere strømlinet lægemiddelprioritering og -testning, hvilket sparer milliarder i lægemiddeludviklingsomkostninger (for mere information, se AI i biofarmaforskning: En tid til at fokusere og skalere).
Drug targets kaldes typisk biologiske enheder proteiner, livets byggesten. 3D-strukturen af et protein bestemmer, hvordan det interagerer med en lægemiddelforbindelse; Derfor kan en forståelse af protein 3D-strukturen tilføje væsentlige forbedringer til lægemiddeludviklingsprocessen ved at screene for lægemiddelforbindelser, der passer bedre til målproteinstrukturen. Et andet område, hvor forudsigelse af proteinstruktur kan være nyttig, er at forstå mangfoldigheden af proteiner, så vi kun udvælger lægemidler, der selektivt målretter mod specifikke proteiner uden at påvirke andre proteiner i kroppen (for mere information, se Forbedring af målvurdering i biomedicinsk forskning: GOT-IT anbefalingerne). Præcise 3D-strukturer af målproteiner kan muliggøre lægemiddeldesign med højere specificitet og lavere sandsynlighed for kryds-interaktioner med andre proteiner.
Men at forudsige, hvordan proteiner foldes ind i deres 3D-struktur, er et vanskeligt problem, og traditionelle eksperimentelle metoder som røntgenkrystallografi og NMR-spektroskopi kan være tidskrævende og dyre. Nylige fremskridt inden for deep learning-metoder til proteinforskning har vist lovende at bruge neurale netværk til at forudsige proteinfoldning med bemærkelsesværdig nøjagtighed. Foldealgoritmer som AlphaFold2, ESMFold, OpenFoldog RoseTTAFold kan bruges til hurtigt at bygge præcise modeller af proteinstrukturer. Desværre er disse modeller beregningsmæssigt dyre at køre, og resultaterne kan være besværlige at sammenligne i omfanget af tusindvis af kandidatproteinstrukturer. En skalerbar løsning til brug af disse forskellige værktøjer vil give forskere og kommercielle R&D-teams mulighed for hurtigt at indarbejde de seneste fremskridt inden for forudsigelse af proteinstrukturer, styre deres eksperimenteringsprocesser og samarbejde med forskningspartnere.
Amazon SageMaker er en fuldt administreret tjeneste til at forberede, bygge, træne og implementere ML-modeller af høj kvalitet hurtigt ved at samle et bredt sæt af funktioner, der er specialbygget til ML. Det tilbyder et fuldt administreret miljø til ML, der fjerner kravene til infrastruktur, datastyring og skalerbarhed, så du kan fokusere på at bygge, træne og teste dine modeller.
I dette indlæg præsenterer vi en fuldt administreret ML-løsning med SageMaker, der forenkler driften af workflows til forudsigelse af proteinfoldningsstruktur. Vi diskuterer først løsningen på højt niveau og dens brugeroplevelse. Dernæst guider vi dig gennem, hvordan du nemt opsætter computeroptimerede arbejdsgange for AlphaFold2 og OpenFold med SageMaker. Til sidst demonstrerer vi, hvordan du kan spore og sammenligne forudsigelser af proteinstruktur som en del af en typisk analyse. Koden til denne løsning er tilgængelig i det følgende GitHub repository.
Løsningsoversigt
I denne løsning kan forskerne interaktivt starte proteinfoldningseksperimenter, analysere 3D-strukturen, overvåge arbejdets fremskridt og spore eksperimenterne i Amazon SageMaker Studio.
Følgende skærmbillede viser en enkelt kørsel af et proteinfoldningsworkflow med Amazon SageMaker Studio. Det inkluderer visualisering af 3D-strukturen i en notesbog, kørselsstatus for SageMaker-jobbene i arbejdsgangen og links til inputparametrene og outputdata og logfiler.
Følgende diagram illustrerer løsningsarkitekturen på højt niveau.
For at forstå arkitekturen definerer vi først nøglekomponenterne i et proteinfoldningseksperiment som følger:
- FASTA målsekvensfil - Den FASTA format er et tekstbaseret format til at repræsentere enten nukleotidsekvenser eller aminosyre(protein)sekvenser, hvor nukleotider eller aminosyrer er repræsenteret ved hjælp af enkeltbogstavskoder.
- Genetiske databaser – En genetisk database er et eller flere sæt af genetiske data, der er gemt sammen med software for at gøre det muligt for brugere at hente genetiske data. Der kræves flere genetiske databaser for at køre AlphaFold og OpenFold algoritmer, som f.eks BFD, MGnify, FBF70, FBF, PDB-følger, UniRef30 (FKA UniClust30), UniProtog UniRef90.
- Multipel sekvensjustering (MSA) - A sekvensjustering er en måde at arrangere de primære sekvenser af et protein for at identificere regioner med lighed, der kan være en konsekvens af funktionelle, strukturelle eller evolutionære forhold mellem sekvenserne. Inputfunktionerne til forudsigelser inkluderer MSA-data.
- Forudsigelse af proteinstruktur – Strukturen af input-målsekvenser forudsiges med foldealgoritmer som AlphaFold2 , OpenFold der bruger en multitrack transformer-arkitektur trænet på kendte proteinskabeloner.
- Visualisering og målinger – Visualiser 3D-strukturen med py3Dmol bibliotek som en interaktiv 3D-visualisering. Du kan bruge metrics til at evaluere og sammenligne strukturforudsigelser, især rod-middel-kvadrat afvigelse (RMSD) og skabelon modellering Score (TM-score)
Arbejdsgangen indeholder følgende trin:
- Forskere bruger den webbaserede SageMaker ML IDE til at udforske kodebasen, bygge proteinsekvensanalysearbejdsgange i SageMaker Studio-notebooks og køre proteinfoldningspipelines via den grafiske brugergrænseflade i SageMaker Studio eller SageMaker SDK.
- Genetiske og strukturdatabaser, der kræves af AlphaFold og OpenFold, downloades før pipeline-opsætning ved hjælp af Amazon SageMaker-behandling, en flygtig beregningsfunktion til ML-databehandling, til en Amazon Simple Storage Service (Amazon S3) spand. Med SageMaker Processing kan du køre et langvarigt job med en ordentlig beregning uden at opsætte nogen computerklynge og lager og uden at skulle lukke klyngen ned. Data gemmes automatisk til en specificeret S3-bøtteplacering.
- An Amazon FSx til Luster filsystemet er sat op, hvor datalageret er S3-bucket-placeringen, hvor databaserne gemmes. FSx for Luster kan skaleres til hundredvis af GB/s gennemstrømning og millioner af IOPS med filhentning med lav latens. Når du starter et estimatorjob, monterer SageMaker FSx for Luster-filsystemet til instansfilsystemet og starter derefter scriptet.
- Amazon SageMaker Pipelines bruges til at orkestrere flere serier af proteinfoldningsalgoritmer. SageMaker Pipelines tilbyder en ønsket visuel grænseflade til interaktiv jobindsendelse, sporbarhed af fremskridt og repeterbarhed.
- Inden for en pipeline køres to beregningsmæssigt tunge proteinfoldningsalgoritmer – AlphaFold og OpenFold – med SageMaker-estimatorer. Denne konfiguration understøtter montering af et FSx for Luster-filsystem til databasesøgning med høj kapacitet i algoritmerne. En enkelt slutningskørsel er opdelt i to trin: et MSA-konstruktionstrin ved hjælp af en optimal CPU-instans og et strukturforudsigelsestrin ved hjælp af en GPU-instans. Disse undertrin, ligesom SageMaker Processing i Trin 2, er flygtige, on-demand og fuldt administreret. Joboutput såsom MSA-filer, forudsagte pdb-strukturfiler og andre metadatafiler gemmes på en specificeret S3-placering. En pipeline kan designes til at køre en enkelt proteinfoldningsalgoritme eller køre både AlphaFold og OpenFold efter en fælles MSA-konstruktion.
- Kørsler af proteinfoldningsforudsigelsen spores automatisk af Amazon SageMaker-eksperimenter til yderligere analyse og sammenligning. Jobloggene opbevares amazoncloudwatch til overvågning.
Forudsætninger
For at følge dette indlæg og køre denne løsning, skal du have gennemført flere forudsætninger. Der henvises til GitHub repository for en detaljeret forklaring af hvert trin.
Kør proteinfoldning på SageMaker
Vi bruger de fuldt administrerede funktioner i SageMaker til at køre regnemæssigt tunge proteinfoldningsjob uden megen infrastrukturoverhead. SageMaker bruger containerbilleder til at køre brugerdefinerede scripts til generisk databehandling, træning og hosting. Du kan nemt starte et kortvarigt job on-demand, der kører et program med et containerbillede med et par linjer af SageMaker SDK uden selv at administrere nogen computerinfrastruktur. Specifikt giver SageMaker estimator-jobbet fleksibilitet, når det kommer til valg af containerbillede, kørescript og instanskonfiguration og understøtter en bred vifte af opbevaringsmuligheder, herunder filsystemer såsom FSx for Lustre. Følgende diagram illustrerer denne arkitektur.
Foldealgoritmer som AlphaFold og OpenFold bruger en multitrack transformer-arkitektur trænet på kendte proteinskabeloner til at forudsige strukturen af ukendte peptidsekvenser. Disse forudsigelser kan køres på GPU-instanser for at give den bedste gennemstrømning og laveste latenstid. Inputfunktionerne for disse forudsigelser inkluderer imidlertid MSA-data. MSA-algoritmer er CPU-afhængige og kan kræve flere timers behandlingstid.
At køre både MSA- og strukturforudsigelsestrinene i det samme computermiljø kan være omkostningsineffektivt, fordi de dyre GPU-ressourcer forbliver inaktive, mens MSA-trinnet kører. Derfor optimerer vi arbejdsgangen i to trin. Først kører vi et SageMaker-estimatorjob på en CPU-instans specifikt for at beregne MSA-justering givet en bestemt FASTA-inputsekvens og genetiske kildedatabaser. Derefter kører vi et SageMaker-estimatorjob på en GPU-instans for at forudsige proteinstrukturen med en given input MSA-justering og en foldealgoritme som AlphaFold eller OpenFold.
Kør MSA generation
Til MSA-beregning inkluderer vi et brugerdefineret script run_create_alignment.sh
, create_alignments.py
script, der er overtaget fra den eksisterende AlphaFold-forudsigelseskilde run_alphafold.py. Bemærk, at dette script muligvis skal opdateres, hvis AlphaFold-kildekoden er opdateret. Det brugerdefinerede script leveres til SageMaker-estimatoren via script-tilstand. Nøglekomponenterne i containerbilledet, implementering af script-tilstand og opsætning af et SageMaker-estimatorjob er også en del af det næste trin i at køre foldealgoritmer og beskrives yderligere i det følgende afsnit.
Kør AlphaFold
Vi starter med at køre en AlphaFold-strukturforudsigelse med en enkelt proteinsekvens ved hjælp af SageMaker. At køre et AlphaFold-job involverer tre enkle trin, som det kan ses i 01-run_stepbystep.ipynb
. Først bygger vi et Docker-containerbillede baseret på AlphaFold's Dockerfil så vi også kan køre AlphaFold i SageMaker. For det andet konstruerer vi scriptet run_alphafold.sh
der instruerer, hvordan AlphaFold skal køres. For det tredje konstruerer og kører vi en SageMaker estimator med scriptet, containeren, instanstypen, dataene og konfigurationen for jobbet.
Containerbillede
Kørselskravet for et containerbillede til at køre AlphaFold (også OpenFold) i SageMaker kan i høj grad forenkles med AlphaFolds Dockerfile. Vi behøver kun at tilføje en håndfuld simple lag ovenpå for at installere et SageMaker-specifikt Python-bibliotek, så et SageMaker-job kan kommunikere med containerbilledet. Se følgende kode:
Indtast script
Så leverer vi scriptet run_alphafold.sh
der løber run_alphafold.py fra AlphaFold-lageret, der i øjeblikket er placeret i containeren /app/alphafold/run_alphafold.py
. Når dette script køres, vil placeringen af de genetiske databaser og input-FASTA-sekvensen blive udfyldt af SageMaker som miljøvariable (SM_CHANNEL_GENETIC
, SM_CHANNEL_FASTA
, henholdsvis). For mere information, se Indtastningsdatakonfiguration.
Estimator job
Dernæst opretter vi et job ved hjælp af en SageMaker-estimator med følgende nøgleinputargumenter, som instruerer SageMaker om at køre et specifikt script ved hjælp af en specificeret container med instanstypen eller antallet, din valgte netværksmulighed og andre parametre for jobbet. vpc_subnet_ids
, security_group_ids
instruer jobbet til at køre inde i en specifik VPC, hvor FSx for Luster-filsystemet er i, så vi kan montere og få adgang til filsystemet i SageMaker-jobbet. Outputstien refererer til en S3-bucket-placering, hvor det endelige produkt fra AlphaFold vil blive uploadet til ved afslutningen af et vellykket job af SageMaker automatisk. Her sætter vi også en parameter DB_PRESET
, for eksempel at blive sendt ind og tilgås inden for run_alphafold.sh
som en miljøvariabel under kørsel. Se følgende kode:
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,
...)
Til sidst samler vi dataene og fortæller jobbet, hvor de er. Det fasta
datakanal er defineret som et S3-datainput, der vil blive downloadet fra en S3-lokation til computerforekomsten i begyndelsen af jobbet. Dette giver stor fleksibilitet til at styre og specificere inputsekvensen. På den anden side genetic
datakanal er defineret som en FileSystemInput
der vil blive monteret på instansen i begyndelsen af jobbet. Brugen af et FSx for Luster-filsystem som en måde at bringe tæt på 3 TB data ind på, undgår gentagne gange at downloade data fra en S3-bøtte til en computerinstans. Vi kalder .fit
metode til at starte et AlphaFold-job:
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
Det er det. Vi har netop sendt et job til SageMaker om at køre AlphaFold. Logfilerne og output inklusive .pdb-forudsigelsesfiler vil blive skrevet til Amazon S3.
Kør OpenFold
At køre OpenFold i SageMaker følger et lignende mønster, som vist i anden halvdel af 01-run_stepbystep.ipynb
. Vi tilføjer først et simpelt lag for at få det SageMaker-specifikke bibliotek til at gøre containerbilledet SageMaker kompatibelt oven på OpenFolds Dockerfil. For det andet konstruerer vi en run_openfold.sh
som en indgang til SageMaker-jobbet. I run_openfold.sh
, vi kører run_pretrained_openfold.py fra OpenFold, som er tilgængelig i containerbilledet med de samme genetiske databaser, som vi downloadede til AlphaFold og OpenFolds modelvægte (--openfold_checkpoint_path
). Med hensyn til inputdataplaceringer introducerer vi udover den genetiske databasekanal og FASTA-kanalen en tredje kanal, SM_CHANNEL_PARAM
, så vi fleksibelt kan videregive de valgte modelvægte fra estimatorkonstruktionen, når vi definerer og indsender et job. Med SageMaker-estimatoren kan vi nemt sende jobs med forskellige entry_point
, image_uri
, environment
, inputs
, og andre konfigurationer til OpenFold med samme signatur. For datakanalen tilføjer vi en ny kanal, param
, som en Amazon S3-input sammen med brugen af de samme genetiske databaser fra FSx for Luster-filsystemet og FASTA-filen fra Amazon S3. Dette giver os igen mulighed for nemt at specificere modelvægten, der skal bruges fra jobkonstruktionen. Se følgende kode:
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)
For at få adgang til det endelige output, efter at jobbet er fuldført, kører vi følgende kommandoer:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Runtime ydeevne
Følgende tabel viser omkostningsbesparelserne på 57 % og 51 % for henholdsvis AlphaFold og OpenFold ved at opdele MSA-justerings- og foldealgoritmerne i to job sammenlignet med et enkelt beregningsjob. Det giver os mulighed for at beregne den rigtige størrelse for hvert job: ml.m5.4xlarge til MSA-justering og ml.g5.2xlarge til AlphaFold og OpenFold.
Job Detaljer | Forekomst Type | Indtast FASTA-sekvens | Runtime | Koste |
MSA-justering + OpenFold | ml.g5.4xlarge | T1030 | 50 mins | $1.69 |
MSA-justering + AlphaFold | ml.g5.4xlarge | T1030 | 65 mins | $2.19 |
MSA justering | ml.m5.4xstor | T1030 | 46 mins | $0.71 |
OpenFold | ml.g5.2xlarge | T1030 | 6 mins | $0.15 |
AlphaFold | ml.g5.2xlarge | T1030 | 21 mins | $0.53 |
Byg en gentagelig arbejdsgang ved hjælp af SageMaker Pipelines
Med SageMaker Pipelines kan vi skabe et ML-workflow, der tager sig af styring af data mellem trin, orkestrering af deres kørsler og logning. SageMaker Pipelines giver os også en brugergrænseflade til at visualisere vores pipeline og nemt køre vores ML-workflow.
En pipeline skabes ved at rede et antal af trin. I denne pipeline kombinerer vi tre træningstrin, som kræver en SageMaker-estimator. Estimatorerne, der er defineret i denne notesbog, ligner meget dem, der er defineret i 01-run_stepbystep.ipynb
, med den undtagelse, at vi bruger Amazon S3-lokationer til at pege på vores input og output. De dynamiske variabler tillader SageMaker Pipelines at køre trin efter hinanden og tillader også brugeren at prøve mislykkede trin igen. Følgende skærmbillede viser en Directed Acyclic Graph (DAG), som giver information om kravene til og relationerne mellem hvert trin i vores pipeline.
Dynamiske variabler
SageMaker Pipelines er i stand til at tage brugerinput ved starten af hver pipelinekørsel. Vi definerer følgende dynamiske variable, som vi gerne vil ændre under hvert eksperiment:
- FastaInputS3URI – Amazon S3 URI af FASTA-filen uploadet via SDK, Boto3 eller manuelt.
- FastFileName – Navnet på FASTA-filen.
- db_forudindstillet – Valg mellem
full_dbs
orreduced_dbs
. - MaxTemplateDate – AlphaFolds MSA-trin vil søge efter de tilgængelige skabeloner før den dato, der er angivet af denne parameter.
- Forudindstillet model – Vælg mellem AlphaFold-modeller inklusive
monomer
,monomer_casp14
,monomer_ptm
ogmultimer
. - AntalMultimerForudsigelserPerModel – Antal frø, der skal køres pr. model ved brug af multimersystem.
- InferenceInstanceType – Forekomsttype til brug for slutningstrin (både AlphaFold og OpenFold). Standardværdien er ml.g5.2xlarge.
- MSAInstanceType – Forekomsttype til brug for MSA-trin. Standardværdien er ml.m5.4xlarge.
Se følgende kode:
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')
En SageMaker-pipeline er konstrueret ved at definere en række trin og derefter kæde dem sammen i en bestemt rækkefølge, hvor outputtet fra et tidligere trin bliver input til det næste trin. Trin kan køres parallelt og defineres til at have en afhængighed af et tidligere trin. I denne pipeline definerer vi et MSA-trin, som er afhængigheden af et AlphaFold-inferenstrin og OpenFold-inferenstrin, der kører parallelt. Se følgende kode:
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]
For at samle alle trinene, kalder vi Pipeline
klasse og angiv et pipelinenavn, pipelineinputvariabler og de individuelle trin:
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ør rørledningen
I den sidste celle i notesbogen 02-define_pipeline.ipynb
, viser vi, hvordan man kører en pipeline ved hjælp af SageMaker SDK. De dynamiske variabler, vi beskrev tidligere, leveres som følger:
!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
)
Spor eksperimenter og sammenlign proteinstrukturer
Til vores eksperiment bruger vi et eksempel på proteinsekvens fra CASP14 konkurrence, som giver en uafhængig mekanisme til vurdering af metoder til proteinstrukturmodellering. Målet T1030 er afledt af PDB 6P00-proteinet og har 237 aminosyrer i den primære sekvens. Vi kører SageMaker-pipelinen for at forudsige proteinstrukturen af denne inputsekvens med både OpenFold- og AlphaFold-algoritmer.
Når pipelinen er færdig, downloader vi de forudsagte .pdb-filer fra hvert foldejob og visualiserer strukturen i notesbogen vha. py3Dmol, som i notesbogen 04-compare_alphafold_openfold.ipynb
.
Følgende skærmbillede viser forudsigelsen fra AlphaFold-forudsigelsesjobbet.
Den forudsagte struktur sammenlignes med dens kendte basisreferencestruktur med PDB-kode 6 poo arkiveret i RCSB. Vi analyserer forudsigelsesydelsen i forhold til den grundlæggende PDB-kode 6poo med tre metrics: RMSD, RMSD med superposition og skabelonmodelleringsscore, som beskrevet i Sammenligning af strukturer.
. | Indtastningssekvens | Sammenligning med | RMSD | RMSD med superposition | Skabelon Modeling Score |
AlphaFold | T1030 | 6 poo | 247.26 | 3.87 | 0.3515 |
Foldealgoritmerne sammenlignes nu med hinanden for flere FASTA-sekvenser: T1030, T1090og T1076. Nye målsekvenser har muligvis ikke basis-pdb-strukturen i referencedatabaser, og det er derfor nyttigt at sammenligne variabiliteten mellem foldealgoritmer.
. | Indtastningssekvens | Sammenligning med | RMSD | RMSD med superposition | Skabelon Modeling Score |
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 |
Følgende skærmbillede viser kørslen af ProteinFoldWorkflow
for de tre FASTA-inputsekvenser med SageMaker Pipeline:
Vi logger også metrics med SageMaker Experiments som nye kørsler af det samme eksperiment skabt af pipelinen:
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)
Vi analyserer og visualiserer derefter disse kørsler på Eksperimenter side i SageMaker Studio.
Følgende diagram viser RMSD-værdien mellem AlphaFold og OpenFold for de tre sekvenser: T1030, T1076 og T1090.
Konklusion
I dette indlæg beskrev vi, hvordan du kan bruge SageMaker Pipelines til at opsætte og køre proteinfoldnings-workflows med to populære strukturforudsigelsesalgoritmer: AlphaFold2 og OpenFold. Vi demonstrerede en priseffektiv løsningsarkitektur med flere job, der adskiller beregningskravene til MSA-generering fra strukturforudsigelse. Vi fremhævede også, hvordan du kan visualisere, evaluere og sammenligne forudsagte 3D-strukturer af proteiner i SageMaker Studio.
For at komme i gang med proteinfoldningsarbejdsgange på SageMaker, se prøvekoden i GitHub repo.
Om forfatterne
Michael Hsieh er Principal AI/ML Specialist Solutions Architect. Han arbejder med HCLS-kunder for at fremme deres ML-rejse med AWS-teknologier og hans ekspertise inden for medicinsk billeddannelse. Som en Seattle-transplantation elsker han at udforske den store modernatur, byen har at byde på, såsom vandrestier, kajaksejlads i SLU og solnedgangen ved Shilshole Bay.
Shivam Patel er Solutions Architect hos AWS. Han kommer fra en baggrund i R&D og kombinerer dette med sin forretningsviden til at løse komplekse problemer, som hans kunder står over for. Shivam er mest passioneret omkring arbejdsbelastninger inden for maskinlæring, robotteknologi, IoT og højtydende computing.
Hasan Poonawala er Senior AI/ML Specialist Solutions Architect hos AWS, Hasan hjælper kunder med at designe og implementere maskinlæringsapplikationer i produktion på AWS. Han har over 12 års erhvervserfaring som dataforsker, maskinlæringspraktiker og softwareudvikler. I sin fritid elsker Hasan at udforske naturen og tilbringe tid med venner og familie.
Jasleen Grewal er Senior Applied Scientist hos Amazon Web Services, hvor hun arbejder med AWS-kunder for at løse problemer i den virkelige verden ved hjælp af maskinlæring, med særligt fokus på præcisionsmedicin og genomik. Hun har en stærk baggrund inden for bioinformatik, onkologi og klinisk genomik. Hun brænder for at bruge AI/ML og cloud-tjenester til at forbedre patientbehandlingen.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- Om
- AC
- fremskynde
- adgang
- af udleverede
- nøjagtighed
- præcis
- acykliske
- tilføje
- vedtaget
- fremme
- fremskridt
- påvirker
- Efter
- igen
- mod
- AI / ML
- algoritme
- algoritmer
- tilpasning
- Alle
- tillade
- tillader
- sammen
- også
- Amazon
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Web Services
- an
- analyse
- analysere
- ,
- En anden
- enhver
- applikationer
- anvendt
- arkitektur
- ER
- OMRÅDE
- argumenter
- AS
- vurdering
- At
- automatisk
- til rådighed
- gennemsnit
- væk
- AWS
- tilbage
- baggrund
- bund
- baseret
- Bugt
- BE
- fordi
- bliver
- før
- Begyndelse
- være
- udover
- BEDSTE
- Bedre
- mellem
- Billion
- milliarder
- biomedicinsk
- BioPharma
- Blocks
- krop
- både
- bringe
- Bringe
- bred
- bygge
- Bygning
- virksomhed
- by
- ringe
- kaldet
- CAN
- kandidat
- kandidater
- kapaciteter
- stand
- hvilken
- lave om
- Kanal
- Chart
- valg
- By
- klasse
- Klinisk
- Luk
- Cloud
- cloud-tjenester
- Cluster
- kode
- kodebase
- koder
- samarbejde
- kombinerer
- kombinerer
- kommer
- kommerciel
- Fælles
- kommunikere
- sammenligne
- sammenlignet
- sammenligning
- kompatibel
- konkurrence
- fuldføre
- Afsluttet
- Fuldender
- komplekse
- komponent
- komponenter
- Forbindelse
- beregning
- Compute
- computing
- Konfiguration
- konstruere
- opbygge
- Container
- indeholder
- Koste
- omkostningsbesparelser
- Omkostninger
- Par
- skabe
- oprettet
- For øjeblikket
- skik
- Kunder
- DAG
- data
- datastyring
- databehandling
- dataforsker
- Database
- databaser
- Dato
- dyb
- dyb læring
- Standard
- definere
- definerede
- definere
- demonstrere
- demonstreret
- Afhængighed
- indsætte
- Afledt
- beskrevet
- Design
- konstrueret
- ønskes
- detaljeret
- Bestem
- bestemmer
- Udvikler
- Udvikling
- forskellige
- svært
- opdagelse
- diskutere
- Sygdom
- Mangfoldighed
- Divided
- Docker
- ned
- downloade
- medicin
- Narkotika
- i løbet af
- dynamisk
- hver
- tidligere
- nemt
- Effektiv
- enten
- muliggøre
- ende
- enheder
- indrejse
- Miljø
- miljømæssige
- evaluere
- eventuel
- Hver
- eksempel
- undtagelse
- henrettet
- udførelse
- eksisterende
- dyrt
- erfaring
- eksperiment
- eksperimenter
- ekspertise
- forklaring
- udforske
- Udforskning
- konfronteret
- mislykkedes
- familie
- Feature
- Funktionalitet
- File (Felt)
- Filer
- endelige
- Endelig
- Fornavn
- første gang
- passer
- Fleksibilitet
- fleksibelt
- Fokus
- følger
- efter
- følger
- Til
- format
- venner
- fra
- fuld
- fuldt ud
- funktionel
- yderligere
- samle
- genererer
- generation
- genomforskning
- få
- given
- Go
- GPU
- graf
- stor
- stærkt
- Halvdelen
- hånd
- håndfuld
- skade
- Have
- he
- tunge
- hjælpe
- hjælper
- link.
- Høj
- højt niveau
- Høj ydeevne
- høj kvalitet
- højere
- højeste
- Fremhævet
- hans
- Hosting
- HOURS
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- Hundreder
- Identifikation
- identificere
- tomgang
- if
- illustrerer
- billede
- billeder
- Imaging
- implementering
- importere
- Forbedre
- forbedringer
- in
- omfatter
- omfatter
- Herunder
- indarbejde
- uafhængig
- individuel
- oplysninger
- Infrastruktur
- indgang
- indgange
- indvendig
- installere
- instans
- interaktiv
- interagerer
- grænseflade
- ind
- indføre
- tingenes internet
- IT
- ITS
- Job
- Karriere
- rejse
- jpg
- lige
- holdt
- Nøgle
- sparke
- Kend
- viden
- kendt
- Efternavn
- Latency
- seneste
- lancere
- lag
- lag
- Leads
- læring
- mindst
- lad
- Niveau
- Bibliotek
- Livet
- ligesom
- sandsynlighed
- linjer
- links
- lokalt
- placering
- placeringer
- log
- logning
- Lang
- elsker
- lavere
- laveste
- maskine
- machine learning
- lave
- administrere
- lykkedes
- ledelse
- styring
- manuelt
- Kan..
- McKinsey
- mekanisme
- medicinsk
- medicin
- Metadata
- metode
- metoder
- Metrics
- millioner
- ML
- tilstand
- model
- modellering
- modeller
- Overvåg
- overvågning
- mere
- mest
- mor
- MONTERING
- meget
- flere
- navn
- Natur
- Behov
- behøve
- netværk
- net
- neurale netværk
- Ny
- nyt mål
- næste
- NIH
- især
- notesbog
- nu
- nummer
- of
- off
- tilbyde
- Tilbud
- Okay
- on
- On-Demand
- ONE
- kun
- på
- drift
- optimal
- Optimer
- Option
- or
- ordrer
- Andet
- vores
- output
- i løbet af
- side
- Parallel
- parameter
- parametre
- del
- særlig
- partnere
- passerer
- Bestået
- lidenskabelige
- sti
- patient
- patienter
- Mønster
- per
- ydeevne
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- Populær
- befolkede
- Indlæg
- brug
- Precision
- forudsige
- forudsagde
- forudsige
- forudsigelse
- Forudsigelser
- Forbered
- forudsætninger
- præsentere
- tidligere
- pris
- primære
- Main
- Forud
- prioritering
- Problem
- problemer
- behandle
- Processer
- forarbejdning
- Produkt
- produktion
- Program
- Progress
- løfte
- passende
- Protein
- Proteiner
- give
- forudsat
- giver
- sætte
- Python
- hurtigt
- F & U
- ægte
- virkelige verden
- nylige
- refererer
- regioner
- Relationer
- forblive
- bemærkelsesværdig
- gentagelig
- GENTAGNE GANGE
- Repository
- repræsenteret
- repræsenterer
- kræver
- påkrævet
- krav
- Krav
- forskning
- forskere
- Ressourcer
- henholdsvis
- resulterer
- Resultater
- robotteknik
- Kør
- kører
- løber
- s
- sagemaker
- SageMaker Pipelines
- samme
- besparelse
- Besparelser
- Skalerbarhed
- skalerbar
- Scale
- Videnskab
- Videnskabsmand
- forskere
- score
- screening
- scripts
- SDK
- Søg
- Seattle
- Anden
- Sektion
- se
- frø
- set
- valg
- senior
- Sequence
- Series
- tjeneste
- Tjenester
- sæt
- sæt
- indstilling
- setup
- flere
- hun
- bør
- Vis
- vist
- Shows
- Luk ned
- signifikant
- lignende
- Simpelt
- forenklet
- enkelt
- So
- Software
- løsninger
- Løsninger
- SOLVE
- Kilde
- særligt
- specialist
- specifikke
- specifikt
- specificitet
- specificeret
- Spektroskopi
- tilbringe
- Stage
- starte
- påbegyndt
- Starter
- starter
- Status
- Trin
- Steps
- opbevaring
- opbevaret
- strømlinet
- stærk
- strukturel
- struktur
- Studio
- indsendelse
- indsende
- indsendt
- vellykket
- sådan
- egnede
- Solnedgang
- superposition
- Understøtter
- systemet
- Systemer
- bord
- Tag
- tager
- tager
- mål
- mål
- hold
- Teknologier
- skabelon
- skabeloner
- vilkår
- Test
- at
- The Source
- deres
- Them
- derefter
- derfor
- Disse
- de
- Tredje
- denne
- dem
- tusinder
- tre
- Gennem
- kapacitet
- tid
- tidskrævende
- til
- sammen
- værktøjer
- top
- Sporbarhed
- spor
- traditionelle
- Tog
- uddannet
- Kurser
- transformer
- sand
- to
- typen
- typisk
- typisk
- ui
- forstå
- forståelse
- desværre
- ukendt
- opdateret
- uploadet
- us
- brug
- anvendte
- Bruger
- Brugererfaring
- Brugergrænseflade
- brugere
- bruger
- ved brug af
- validering
- værdi
- række
- forskellige
- meget
- via
- visualisering
- var
- Vej..
- we
- web
- webservices
- web-baseret
- vægt
- GODT
- hvornår
- som
- mens
- Wikipedia
- vilje
- med
- inden for
- uden
- Arbejde
- workflow
- arbejdsgange
- virker
- world
- ville
- skriftlig
- røntgen
- år
- Du
- Din
- zephyrnet