Lo sviluppo di farmaci è un processo lungo e complesso che prevede lo screening di migliaia di farmaci candidati e l'utilizzo di metodi computazionali o sperimentali per valutare i lead. Secondo McKinsey, un singolo farmaco può impiegare 10 anni e costare in media 2.6 miliardi di dollari per passare attraverso l'identificazione del bersaglio della malattia, lo screening del farmaco, la convalida del bersaglio del farmaco e l'eventuale lancio commerciale. La scoperta di farmaci è la componente di ricerca di questa pipeline che genera farmaci candidati con la più alta probabilità di essere efficaci con il minor danno per i pazienti. I metodi di apprendimento automatico (ML) possono aiutare a identificare i composti adatti in ogni fase del processo di scoperta dei farmaci, con conseguente snellimento delle priorità e dei test dei farmaci, risparmiando miliardi nei costi di sviluppo dei farmaci (per ulteriori informazioni, fare riferimento a AI nella ricerca biofarmaceutica: un momento per concentrarsi e ridimensionare).
I bersagli farmacologici sono in genere entità biologiche chiamate proteine, i mattoni della vita. La struttura 3D di una proteina determina come interagisce con un composto farmacologico; pertanto, la comprensione della struttura 3D della proteina può aggiungere miglioramenti significativi al processo di sviluppo del farmaco mediante lo screening di composti farmacologici che si adattano meglio alla struttura della proteina bersaglio. Un'altra area in cui la previsione della struttura proteica può essere utile è la comprensione della diversità delle proteine, in modo da selezionare solo farmaci che mirano selettivamente a proteine specifiche senza influenzare altre proteine nel corpo (per ulteriori informazioni, fare riferimento a Migliorare la valutazione del target nella ricerca biomedica: le raccomandazioni GOT-IT). Precise strutture 3D delle proteine bersaglio possono consentire la progettazione di farmaci con maggiore specificità e minore probabilità di interazioni incrociate con altre proteine.
Tuttavia, prevedere come le proteine si ripiegano nella loro struttura 3D è un problema difficile e i metodi sperimentali tradizionali come la cristallografia a raggi X e la spettroscopia NMR possono richiedere molto tempo e denaro. I recenti progressi nei metodi di apprendimento profondo per la ricerca sulle proteine hanno mostrato risultati promettenti nell'utilizzo delle reti neurali per prevedere il ripiegamento delle proteine con notevole precisione. Algoritmi pieghevoli come AlfaFold2, ESMFold, Apri piegae RoseTTAFold può essere utilizzato per costruire rapidamente modelli accurati di strutture proteiche. Sfortunatamente, questi modelli sono computazionalmente costosi da eseguire e i risultati possono essere ingombranti da confrontare alla scala di migliaia di strutture proteiche candidate. Una soluzione scalabile per l'utilizzo di questi vari strumenti consentirà ai ricercatori e ai team commerciali di ricerca e sviluppo di incorporare rapidamente gli ultimi progressi nella previsione della struttura delle proteine, gestire i loro processi di sperimentazione e collaborare con i partner di ricerca.
Amazon Sage Maker è un servizio completamente gestito per preparare, creare, addestrare e distribuire rapidamente modelli ML di alta qualità riunendo un'ampia gamma di funzionalità create appositamente per ML. Offre un ambiente completamente gestito per ML, astraendo i requisiti di infrastruttura, gestione dei dati e scalabilità in modo che tu possa concentrarti sulla creazione, l'addestramento e il test dei tuoi modelli.
In questo post, presentiamo una soluzione ML completamente gestita con SageMaker che semplifica il funzionamento dei flussi di lavoro di previsione della struttura di ripiegamento delle proteine. Per prima cosa discutiamo la soluzione ad alto livello e la sua esperienza utente. Successivamente, ti spieghiamo come impostare facilmente flussi di lavoro ottimizzati per il calcolo di AlphaFold2 e OpenFold con SageMaker. Infine, dimostriamo come è possibile monitorare e confrontare le previsioni sulla struttura delle proteine come parte di un'analisi tipica. Il codice per questa soluzione è disponibile di seguito Repository GitHub.
Panoramica della soluzione
In questa soluzione, gli scienziati possono lanciare in modo interattivo esperimenti di ripiegamento delle proteine, analizzare la struttura 3D, monitorare l'avanzamento del lavoro e tenere traccia degli esperimenti in Amazon Sage Maker Studio.
Lo screenshot seguente mostra una singola esecuzione di un flusso di lavoro di ripiegamento delle proteine con Amazon SageMaker Studio. Include la visualizzazione della struttura 3D in un notebook, lo stato di esecuzione dei lavori SageMaker nel flusso di lavoro e i collegamenti ai parametri di input e ai dati e ai registri di output.
Il diagramma seguente illustra l'architettura della soluzione di alto livello.
Per comprendere l'architettura, definiamo innanzitutto i componenti chiave di un esperimento di ripiegamento proteico come segue:
- File di sequenza di destinazione FASTA - L' Formato FASTA è un formato basato su testo per rappresentare sequenze nucleotidiche o sequenze di amminoacidi (proteine), in cui i nucleotidi o gli amminoacidi sono rappresentati utilizzando codici a lettera singola.
- Database genetici – Un database genetico è uno o più insiemi di dati genetici memorizzati insieme al software per consentire agli utenti di recuperare i dati genetici. Sono necessari diversi database genetici per eseguire algoritmi AlphaFold e OpenFold, come ad esempio BFD, MGNify, PDB70, PDB, Sequenze PDB, UniRef30 (FKA UniClust30), UniProte UniRef90.
- Allineamento di sequenze multiple (MSA) - A allineamento della sequenza è un modo di organizzare le sequenze primarie di una proteina per identificare regioni di somiglianza che possono essere una conseguenza di relazioni funzionali, strutturali o evolutive tra le sequenze. Le funzionalità di input per le previsioni includono i dati MSA.
- Previsione della struttura delle proteine – La struttura delle sequenze target di input è prevista con algoritmi di piegatura come AlfaFold2 ed Apri piega che utilizzano un'architettura di trasformatore multitraccia addestrata su modelli proteici noti.
- Visualizzazione e metriche – Visualizza la struttura 3D con il py3Dmol libreria come visualizzazione 3D interattiva. È possibile utilizzare le metriche per valutare e confrontare le previsioni della struttura, in particolare deviazione quadratica media (RMSD) e modello di modellazione Punteggio (punteggio TM)
Il flusso di lavoro contiene i seguenti passaggi:
- Gli scienziati utilizzano l'IDE SageMaker ML basato sul Web per esplorare la base di codice, creare flussi di lavoro di analisi della sequenza proteica nei notebook SageMaker Studio ed eseguire pipeline di ripiegamento proteico tramite l'interfaccia utente grafica in SageMaker Studio o SageMaker SDK.
- I database genetici e strutturali richiesti da AlphaFold e OpenFold vengono scaricati prima dell'installazione della pipeline utilizzando Elaborazione di Amazon SageMaker, una funzionalità di calcolo temporanea per l'elaborazione dei dati ML, a an Servizio di archiviazione semplice Amazon (Amazon S3) secchio. Con SageMaker Processing, puoi eseguire un lavoro a esecuzione prolungata con un'elaborazione adeguata senza configurare alcun cluster di elaborazione e archiviazione e senza dover arrestare il cluster. I dati vengono salvati automaticamente in una posizione del bucket S3 specificata.
- An Amazon FSx per Lustre viene configurato il file system, con il repository di dati come posizione del bucket S3 in cui vengono salvati i database. FSx for Lustre può scalare fino a centinaia di GB/s di velocità effettiva e milioni di IOPS con recupero di file a bassa latenza. Quando si avvia un lavoro di stima, SageMaker monta il file system FSx for Lustre nel file system dell'istanza, quindi avvia lo script.
- Pipeline di Amazon SageMaker viene utilizzato per orchestrare più esecuzioni di algoritmi di ripiegamento delle proteine. SageMaker Pipelines offre un'interfaccia visiva desiderata per l'invio interattivo dei lavori, la tracciabilità dell'avanzamento e la ripetibilità.
- All'interno di una pipeline, due algoritmi di ripiegamento proteico computazionalmente pesante, AlphaFold e OpenFold, vengono eseguiti con stimatori SageMaker. Questa configurazione supporta il montaggio di un file system FSx for Lustre per la ricerca di database ad alto throughput negli algoritmi. Una singola esecuzione di inferenza è suddivisa in due fasi: una fase di costruzione MSA che utilizza un'istanza CPU ottimale e una fase di previsione della struttura che utilizza un'istanza GPU. Queste fasi secondarie, come SageMaker Processing nella Fase 2, sono temporanee, su richiesta e completamente gestite. L'output del lavoro come i file MSA, i file della struttura pdb prevista e altri file di metadati vengono salvati in una posizione S3 specificata. Una pipeline può essere progettata per eseguire un singolo algoritmo di ripiegamento proteico o eseguire sia AlphaFold che OpenFold dopo una costruzione MSA comune.
- Le esecuzioni della previsione del ripiegamento delle proteine vengono tracciate automaticamente da Esperimenti Amazon SageMaker per ulteriori analisi e confronti. I registri dei lavori vengono conservati Amazon Cloud Watch per il monitoraggio.
Prerequisiti
Per seguire questo post ed eseguire questa soluzione, è necessario aver completato diversi prerequisiti. Fare riferimento al Repository GitHub per una spiegazione dettagliata di ogni passaggio.
Esegui il ripiegamento delle proteine su SageMaker
Utilizziamo le funzionalità completamente gestite di SageMaker per eseguire lavori di ripiegamento delle proteine computazionalmente pesanti senza molto sovraccarico infrastrutturale. SageMaker utilizza le immagini del contenitore per eseguire script personalizzati per l'elaborazione, la formazione e l'hosting di dati generici. Puoi facilmente avviare un lavoro temporaneo su richiesta che esegue un programma con un'immagine contenitore con un paio di righe del SDK di SageMaker senza gestire autonomamente alcuna infrastruttura di elaborazione. Nello specifico, il lavoro di stima di SageMaker offre flessibilità quando si tratta di scegliere l'immagine del contenitore, lo script di esecuzione e la configurazione dell'istanza e supporta un ampia varietà di opzioni di archiviazione, inclusi i file system come FSx per Lustre. Il diagramma seguente illustra questa architettura.
Algoritmi di piegatura come AlphaFold e OpenFold utilizzano un'architettura di trasformatore multitraccia addestrata su modelli proteici noti per prevedere la struttura di sequenze peptidiche sconosciute. Queste previsioni possono essere eseguite su istanze GPU per fornire il miglior throughput e la latenza più bassa. Tuttavia, le funzionalità di input per queste previsioni includono i dati MSA. Gli algoritmi MSA dipendono dalla CPU e possono richiedere diverse ore di elaborazione.
L'esecuzione dei passaggi MSA e di previsione della struttura nello stesso ambiente di elaborazione può essere inefficiente in termini di costi perché le costose risorse della GPU rimangono inattive durante l'esecuzione del passaggio MSA. Pertanto, ottimizziamo il flusso di lavoro in due fasi. Innanzitutto, eseguiamo un lavoro di stima SageMaker su un'istanza della CPU specificamente per calcolare l'allineamento MSA data una particolare sequenza di input FASTA e database genetici di origine. Quindi eseguiamo un lavoro di stima SageMaker su un'istanza GPU per prevedere la struttura proteica con un dato allineamento MSA di input e un algoritmo di piegatura come AlphaFold o OpenFold.
Eseguire la generazione MSA
Per il calcolo MSA, includiamo uno script personalizzato run_create_alignment.sh
ed create_alignments.py
script adottato dall'origine di previsione AlphaFold esistente run_alphafold.py. Si noti che potrebbe essere necessario aggiornare questo script se il codice AlphaFold sorgente viene aggiornato. Lo script personalizzato viene fornito allo stimatore SageMaker tramite modalità script. Anche i componenti chiave dell'immagine del contenitore, l'implementazione della modalità script e l'impostazione di un processo di stima SageMaker fanno parte del passaggio successivo dell'esecuzione degli algoritmi di piegatura e sono descritti ulteriormente nella sezione seguente.
Esegui AlphaFold
Iniziamo eseguendo una previsione della struttura AlphaFold con una singola sequenza proteica utilizzando SageMaker. L'esecuzione di un lavoro AlphaFold comporta tre semplici passaggi, come si può vedere in 01-run_stepbystep.ipynb
. Innanzitutto, creiamo un'immagine del contenitore Docker basata su AlphaFold Dockerfile in modo che anche noi possiamo eseguire AlphaFold in SageMaker. In secondo luogo, costruiamo lo script run_alphafold.sh
che indica come deve essere eseguito AlphaFold. Terzo, costruiamo ed eseguiamo a Stimatore di SageMaker con lo script, il contenitore, il tipo di istanza, i dati e la configurazione per il processo.
Immagine del contenitore
Il requisito di runtime per un'immagine contenitore per eseguire AlphaFold (anche OpenFold) in SageMaker può essere notevolmente semplificato con Dockerfile di AlphaFold. Abbiamo solo bisogno di aggiungere una manciata di livelli semplici in cima per installare una libreria Python specifica di SageMaker in modo che un lavoro SageMaker possa comunicare con l'immagine del contenitore. Vedere il seguente codice:
Scrittura di input
Forniamo quindi lo script run_alphafold.sh
che corre run_alphafold.py dal repository AlphaFold attualmente inserito nel contenitore /app/alphafold/run_alphafold.py
. Quando viene eseguito questo script, la posizione dei database genetici e la sequenza FASTA di input verranno popolate da SageMaker come variabili di ambiente (SM_CHANNEL_GENETIC
ed SM_CHANNEL_FASTA
, rispettivamente). Per ulteriori informazioni, fare riferimento a Configurazione dei dati di input.
Lavoro di stima
Successivamente creiamo un lavoro utilizzando uno stimatore SageMaker con i seguenti argomenti di input chiave, che istruiscono SageMaker a eseguire uno script specifico utilizzando un contenitore specificato con il tipo o il conteggio dell'istanza, l'opzione di rete scelta e altri parametri per il lavoro. vpc_subnet_ids
ed security_group_ids
indica al lavoro di essere eseguito all'interno di un VPC specifico in cui si trova il file system FSx for Lustre in modo da poter montare e accedere al file system nel lavoro SageMaker. Il percorso di output si riferisce a una posizione del bucket S3 in cui il prodotto finale di AlphaFold verrà caricato automaticamente da SageMaker al termine di un lavoro riuscito. Qui impostiamo anche un parametro DB_PRESET
, ad esempio, da passare e accedere all'interno run_alphafold.sh
come variabile ambientale durante il runtime. Vedere il seguente codice:
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,
...)
Infine, raccogliamo i dati e comunichiamo al lavoro dove si trovano. IL fasta
il canale dati è definito come un input di dati S3 che verrà scaricato da una posizione S3 nell'istanza di calcolo all'inizio del lavoro. Ciò consente una grande flessibilità per gestire e specificare la sequenza di input. D'altra parte, il genetic
canale dati è definito come a FileSystemInput
che verrà montato sull'istanza all'inizio del lavoro. L'uso di un file system FSx for Lustre come metodo per portare quasi 3 TB di dati evita il download ripetuto di dati da un bucket S3 a un'istanza di calcolo. Chiamiamo il .fit
metodo per avviare un lavoro AlphaFold:
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
Questo è tutto. Abbiamo appena inviato un lavoro a SageMaker per eseguire AlphaFold. I log e l'output, inclusi i file di previsione .pdb, verranno scritti in Amazon S3.
Esegui OpenFold
L'esecuzione di OpenFold in SageMaker segue uno schema simile, come mostrato nella seconda metà di 01-run_stepbystep.ipynb
. Per prima cosa aggiungiamo un semplice livello per ottenere la libreria specifica di SageMaker per rendere l'immagine del contenitore SageMaker compatibile con OpenFold Dockerfile. In secondo luogo, costruiamo a run_openfold.sh
come punto di ingresso per il lavoro SageMaker. In run_openfold.sh
, eseguiamo il run_pretrained_openfold.py da OpenFold, che è disponibile nell'immagine del contenitore con gli stessi database genetici che abbiamo scaricato per i pesi modello di AlphaFold e OpenFold (--openfold_checkpoint_path
). In termini di ubicazione dei dati di input, oltre al canale dei database genetici e al canale FASTA, introduciamo un terzo canale, SM_CHANNEL_PARAM
, in modo da poter passare in modo flessibile i pesi del modello scelti dal costrutto dello stimatore quando definiamo e inoltriamo un lavoro. Con lo stimatore SageMaker, possiamo facilmente inviare lavori con diversi entry_point
, image_uri
, environment
, inputs
e altre configurazioni per OpenFold con la stessa firma. Per il canale dati, aggiungiamo un nuovo canale, param
, come input di Amazon S3 insieme all'uso degli stessi database genetici del file system FSx for Lustre e del file FASTA di Amazon S3. Questo, ancora una volta, ci consente di specificare facilmente il peso del modello da utilizzare dal costrutto del lavoro. Vedere il seguente codice:
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)
Per accedere all'output finale dopo il completamento del lavoro, eseguiamo i seguenti comandi:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Prestazioni di runtime
La tabella seguente mostra i risparmi sui costi rispettivamente del 57% e del 51% per AlphaFold e OpenFold, suddividendo gli algoritmi di allineamento e piegatura MSA in due lavori rispetto a un singolo lavoro di calcolo. Ci consente di dimensionare correttamente il calcolo per ogni lavoro: ml.m5.4xlarge per l'allineamento MSA e ml.g5.2xlarge per AlphaFold e OpenFold.
Dettagli di lavoro | Tipo di istanza | Immettere la sequenza FASTA | Runtime | Costo |
Allineamento MSA + OpenFold | ml.g5.4xgrande | T1030 | 50 min | $1.69 |
Allineamento MSA + AlphaFold | ml.g5.4xgrande | T1030 | 65 min | $2.19 |
Allineamento MSA | ml.m5.4xgrande | T1030 | 46 min | $0.71 |
Apri piega | ml.g5.2xgrande | T1030 | 6 min | $0.15 |
AlphaFold | ml.g5.2xgrande | T1030 | 21 min | $0.53 |
Crea un flusso di lavoro ripetibile utilizzando SageMaker Pipelines
Con SageMaker Pipelines, possiamo creare un flusso di lavoro ML che si occupi della gestione dei dati tra i passaggi, dell'orchestrazione delle loro esecuzioni e della registrazione. SageMaker Pipelines ci fornisce anche un'interfaccia utente per visualizzare la nostra pipeline ed eseguire facilmente il nostro flusso di lavoro ML.
Una pipeline viene creata combinando un numero di passi. In questa pipeline, ne combiniamo tre fasi di formazione, che richiedono uno stimatore SageMaker. Gli stimatori definiti in questo quaderno sono molto simili a quelli definiti in 01-run_stepbystep.ipynb
, con l'eccezione che utilizziamo le posizioni Amazon S3 per puntare ai nostri input e output. Le variabili dinamiche consentono a SageMaker Pipelines di eseguire i passaggi uno dopo l'altro e consentono inoltre all'utente di ritentare i passaggi non riusciti. Lo screenshot seguente mostra un grafico aciclico diretto (DAG), che fornisce informazioni sui requisiti e sulle relazioni tra ogni passaggio della nostra pipeline.
Variabili dinamiche
SageMaker Pipelines è in grado di accettare gli input dell'utente all'inizio di ogni esecuzione della pipeline. Definiamo le seguenti variabili dinamiche, che vorremmo cambiare durante ogni esperimento:
- FastaInputS3URI – Amazon S3 URI del file FASTA caricato tramite SDK, Boto3 o manualmente.
- NomeFile Veloce – Nome del file FASTA.
- db_preset – Selezione tra
full_dbs
orreduced_dbs
. - MaxTemplateDate – Il passaggio MSA di AlphaFold cercherà i modelli disponibili prima della data specificata da questo parametro.
- ModelloPreset – Seleziona tra i modelli AlphaFold incluso
monomer
,monomer_casp14
,monomer_ptm
emultimer
. - NumMultimerPredictionsPerModel – Numero di semi da eseguire per modello quando si utilizza il sistema multimer.
- InferenceInstanceType – Tipo di istanza da utilizzare per le fasi di inferenza (sia AlphaFold che OpenFold). Il valore predefinito è ml.g5.2xlarge.
- MSAInstanceType – Tipo di istanza da utilizzare per il passaggio MSA. Il valore predefinito è ml.m5.4xlarge.
Vedi il seguente codice:
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')
Una pipeline SageMaker viene costruita definendo una serie di passaggi e quindi concatenandoli insieme in un ordine specifico in cui l'output di un passaggio precedente diventa l'input del passaggio successivo. I passaggi possono essere eseguiti in parallelo e definiti per avere una dipendenza da un passaggio precedente. In questa pipeline, definiamo un passaggio MSA, che è la dipendenza per un passaggio di inferenza AlphaFold e un passaggio di inferenza OpenFold che vengono eseguiti in parallelo. Vedere il seguente codice:
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]
Per mettere insieme tutti i passaggi, chiamiamo il file Pipeline
class e fornire un nome della pipeline, le variabili di input della pipeline e i singoli passaggi:
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')
Esegui la pipeline
Nell'ultima cella del taccuino 02-define_pipeline.ipynb
, mostriamo come eseguire una pipeline utilizzando SageMaker SDK. Le variabili dinamiche che abbiamo descritto in precedenza sono fornite come segue:
!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
)
Tieni traccia degli esperimenti e confronta le strutture delle proteine
Per il nostro esperimento, usiamo una sequenza proteica di esempio dal CASP14 concorrenza, che fornisce un meccanismo indipendente per la valutazione dei metodi di modellazione della struttura proteica. Il bersaglio T1030 è derivato dalla proteina PDB 6P00 e ha 237 amminoacidi nella sequenza primaria. Eseguiamo la pipeline SageMaker per prevedere la struttura proteica di questa sequenza di input con gli algoritmi OpenFold e AlphaFold.
Quando la pipeline è completa, scarichiamo i file .pdb previsti da ciascun lavoro di piegatura e visualizziamo la struttura nel notebook utilizzando py3Dmol, come nel taccuino 04-compare_alphafold_openfold.ipynb
.
Lo screenshot seguente mostra la previsione dal processo di previsione AlphaFold.
La struttura prevista viene confrontata con la sua struttura di riferimento di base nota con il codice PDB 6 cucchiai archiviato in RCSB. Analizziamo le prestazioni di previsione rispetto al codice PDB di base 6poo con tre metriche: RMSD, RMSD con sovrapposizione e punteggio di modellazione del modello, come descritto in Strutture a confronto.
. | Sequenza di input | Confronto con | RMSD | RMSD con sovrapposizione | Punteggio di modellazione del modello |
AlphaFold | T1030 | 6 cucchiai | 247.26 | 3.87 | 0.3515 |
Gli algoritmi di piegatura vengono ora confrontati tra loro per più sequenze FASTA: T1030, T1090e T1076. Le nuove sequenze target potrebbero non avere la struttura pdb di base nei database di riferimento e quindi è utile confrontare la variabilità tra algoritmi di piegatura.
. | Sequenza di input | Confronto con | RMSD | RMSD con sovrapposizione | Punteggio di modellazione del modello |
AlphaFold | T1030 | Apri piega | 73.21 | 24.8 | 0.0018 |
AlphaFold | T1076 | Apri piega | 38.71 | 28.87 | 0.0047 |
AlphaFold | T1090 | Apri piega | 30.03 | 20.45 | 0.005 |
Lo screenshot seguente mostra le corse di ProteinFoldWorkflow
per le tre sequenze di input FASTA con SageMaker Pipeline:
Registriamo anche le metriche con SageMaker Experiments come nuove esecuzioni dello stesso esperimento creato dalla pipeline:
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)
Quindi analizziamo e visualizziamo queste esecuzioni sul file Esperimenti pagina in SageMaker Studio.
Il grafico seguente mostra il valore RMSD tra AlphaFold e OpenFold per le tre sequenze: T1030, T1076 e T1090.
Conclusione
In questo post, abbiamo descritto come utilizzare SageMaker Pipelines per configurare ed eseguire flussi di lavoro di ripiegamento delle proteine con due popolari algoritmi di previsione della struttura: AlphaFold2 e OpenFold. Abbiamo dimostrato un'architettura di soluzione a prezzi vantaggiosi di più lavori che separa i requisiti di calcolo per la generazione di MSA dalla previsione della struttura. Abbiamo anche evidenziato come visualizzare, valutare e confrontare le strutture 3D previste delle proteine in SageMaker Studio.
Per iniziare con i flussi di lavoro di ripiegamento delle proteine su SageMaker, fare riferimento al codice di esempio nel file Repository GitHub.
Circa gli autori
Michael Hesie è Principal AI/ML Specialist Solutions Architect. Lavora con i clienti di HCLS per far progredire il loro viaggio nel machine learning con le tecnologie AWS e la sua esperienza nell'imaging medico. Come trapiantato a Seattle, ama esplorare la grande madre natura che la città ha da offrire, come i sentieri escursionistici, il kayak panoramico nella SLU e il tramonto a Shilshole Bay.
Shivam Patel è un architetto di soluzioni presso AWS. Proviene da un background in ricerca e sviluppo e combina questo con la sua conoscenza del business per risolvere problemi complessi affrontati dai suoi clienti. Shivam è molto appassionato di carichi di lavoro in machine learning, robotica, IoT e calcolo ad alte prestazioni.
Hasan Poonawala è un Senior AI/ML Specialist Solutions Architect presso AWS, Hasan aiuta i clienti a progettare e distribuire applicazioni di machine learning in produzione su AWS. Ha oltre 12 anni di esperienza lavorativa come data scientist, professionista dell'apprendimento automatico e sviluppatore di software. Nel tempo libero, Hasan ama esplorare la natura e trascorrere del tempo con amici e familiari.
Jasleen Grewal è Senior Applied Scientist presso Amazon Web Services, dove lavora con i clienti AWS per risolvere problemi del mondo reale utilizzando l'apprendimento automatico, con particolare attenzione alla medicina di precisione e alla genomica. Ha un forte background in bioinformatica, oncologia e genomica clinica. È appassionata di utilizzare AI/ML e servizi cloud per migliorare l'assistenza ai pazienti.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Automobilistico/VE, Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- BlockOffset. Modernizzare la proprietà della compensazione ambientale. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- WRI
- AC
- accelerare
- accesso
- accessibile
- precisione
- preciso
- aciclico
- aggiungere
- adottato
- avanzare
- avanzamenti
- che interessano
- Dopo shavasana, sedersi in silenzio; saluti;
- ancora
- contro
- AI / ML
- algoritmo
- Algoritmi
- allineamento
- Tutti
- consentire
- consente
- lungo
- anche
- Amazon
- Amazon Sage Maker
- Amazon Sage Maker Studio
- Amazon Web Services
- an
- .
- analizzare
- ed
- Un altro
- in qualsiasi
- applicazioni
- applicato
- architettura
- SONO
- RISERVATA
- argomenti
- AS
- valutazione
- At
- automaticamente
- disponibile
- media
- lontano
- AWS
- precedente
- sfondo
- base
- basato
- Baia
- BE
- perché
- diventa
- prima
- Inizio
- essendo
- oltre a
- MIGLIORE
- Meglio
- fra
- Miliardo
- miliardi
- biomedico
- BioPharma
- Blocchi
- stile di vita
- entrambi
- portare
- Portare
- ampio
- costruire
- Costruzione
- affari
- by
- chiamata
- detto
- Materiale
- candidato
- i candidati
- funzionalità
- capace
- che
- il cambiamento
- canale
- Grafico
- scegliere
- Città
- classe
- Info su
- Chiudi
- Cloud
- servizi cloud
- Cluster
- codice
- base del codice
- codici
- collaboreranno
- combinare
- combina
- viene
- Uncommon
- comunicare
- confrontare
- rispetto
- confronto
- compatibile
- concorrenza
- completamento di una
- Completato
- Completa
- complesso
- componente
- componenti
- Compound
- calcolo
- Calcolare
- informatica
- Configurazione
- costruire
- costruzione
- Contenitore
- contiene
- Costo
- risparmi
- Costi
- Coppia
- creare
- creato
- Attualmente
- costume
- Clienti
- GIORNO
- dati
- gestione dei dati
- elaborazione dati
- scienziato di dati
- Banca Dati
- banche dati
- Data
- deep
- apprendimento profondo
- Predefinito
- definire
- definito
- definizione
- dimostrare
- dimostrato
- Dipendenza
- schierare
- derivato
- descritta
- Design
- progettato
- desiderato
- dettagliati
- Determinare
- determina
- Costruttori
- Mercato
- diverso
- difficile
- scoperta
- discutere
- Malattia
- Diversità
- Diviso
- docker
- giù
- scaricare
- droga
- farmaci
- durante
- dinamico
- ogni
- In precedenza
- facilmente
- Efficace
- o
- enable
- fine
- entità
- iscrizione
- Ambiente
- ambientale
- valutare
- eventuale
- Ogni
- esempio
- eccezione
- eseguito
- esecuzione
- esistente
- costoso
- esperienza
- esperimento
- esperimenti
- competenza
- spiegazione
- esplora
- Esplorare
- di fronte
- fallito
- famiglia
- caratteristica
- Caratteristiche
- Compila il
- File
- finale
- Infine
- Nome
- prima volta
- in forma
- Flessibilità
- flessibilmente
- Focus
- seguire
- i seguenti
- segue
- Nel
- formato
- amici
- da
- pieno
- completamente
- funzionale
- ulteriormente
- raccogliere
- genera
- ELETTRICA
- genomica
- ottenere
- dato
- Go
- GPU
- grafico
- grande
- molto
- Metà
- cura
- manciata
- nuocere
- Avere
- he
- pesante
- Aiuto
- aiuta
- qui
- Alta
- alto livello
- Alte prestazioni
- alta qualità
- superiore
- massimo
- Evidenziato
- il suo
- di hosting
- ORE
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- centinaia
- Identificazione
- identificare
- Idle
- if
- illustra
- Immagine
- immagini
- Imaging
- implementazione
- importare
- competenze
- miglioramenti
- in
- includere
- inclusi
- Compreso
- incorporare
- studente indipendente
- individuale
- informazioni
- Infrastruttura
- ingresso
- Ingressi
- interno
- install
- esempio
- interattivo
- interagisce
- Interfaccia
- ai miglioramenti
- introdurre
- IoT
- IT
- SUO
- Lavoro
- Offerte di lavoro
- viaggio
- jpg
- ad appena
- tenere
- Le
- calcio
- Sapere
- conoscenze
- conosciuto
- Cognome
- Latenza
- con i più recenti
- lanciare
- strato
- galline ovaiole
- Leads
- apprendimento
- meno
- lasciare
- Livello
- Biblioteca
- Vita
- piace
- probabilità
- Linee
- Collegamento
- a livello locale
- località
- posizioni
- ceppo
- registrazione
- Lunghi
- ama
- inferiore
- minore
- macchina
- machine learning
- make
- gestire
- gestito
- gestione
- gestione
- manualmente
- Maggio..
- McKinsey
- meccanismo
- medicale
- medicina
- Metadati
- metodo
- metodi
- Metrica
- milioni
- ML
- Moda
- modello
- modellismo
- modelli
- Monitorare
- monitoraggio
- Scopri di più
- maggior parte
- madre
- MONTARE
- molti
- multiplo
- Nome
- Natura
- Bisogno
- che necessitano di
- internazionale
- reti
- reti neurali
- New
- nuovo obiettivo
- GENERAZIONE
- NIH
- segnatamente
- taccuino
- adesso
- numero
- of
- MENO
- offrire
- Offerte
- Va bene
- on
- On-Demand
- ONE
- esclusivamente
- su
- operazione
- ottimale
- OTTIMIZZA
- Opzione
- or
- minimo
- Altro
- nostro
- produzione
- ancora
- pagina
- Parallel
- parametro
- parametri
- parte
- particolare
- partner
- passare
- Passato
- appassionato
- sentiero
- paziente
- pazienti
- Cartamodello
- per
- performance
- conduttura
- Platone
- Platone Data Intelligence
- PlatoneDati
- punto
- Popolare
- popolata
- Post
- bisogno
- Precisione
- predire
- previsto
- previsione
- predizione
- Previsioni
- Preparare
- prerequisiti
- presenti
- precedente
- prezzo
- primario
- Direttore
- Precedente
- prioritizzazione
- Problema
- problemi
- processi
- i processi
- lavorazione
- Prodotto
- Produzione
- Programma
- Progressi
- PROMETTIAMO
- corretto
- Proteine
- Proteine
- fornire
- purché
- fornisce
- metti
- Python
- rapidamente
- R&D
- di rose
- mondo reale
- recente
- si riferisce
- regioni
- Relazioni
- rimanere
- notevole
- ripetibile
- RIPETUTAMENTE
- deposito
- rappresentato
- che rappresenta
- richiedere
- necessario
- requisito
- Requisiti
- riparazioni
- ricercatori
- Risorse
- rispettivamente
- risultante
- Risultati
- robotica
- Correre
- running
- corre
- s
- sagemaker
- Pipeline SageMaker
- stesso
- risparmio
- Risparmio
- Scalabilità
- scalabile
- Scala
- Scienze
- Scienziato
- scienziati
- Punto
- screening
- script
- sdk
- Cerca
- Seattle
- Secondo
- Sezione
- vedere
- semi
- visto
- prodotti
- anziano
- Sequenza
- Serie
- servizio
- Servizi
- set
- Set
- regolazione
- flessibile.
- alcuni
- lei
- dovrebbero
- mostrare attraverso le sue creazioni
- mostrato
- Spettacoli
- fermare
- significativa
- simile
- Un'espansione
- semplificata
- singolo
- So
- Software
- soluzione
- Soluzioni
- RISOLVERE
- Fonte
- la nostra speciale
- specialista
- specifico
- in particolare
- specificità
- specificato
- Spettroscopia
- spendere
- Stage
- inizia a
- iniziato
- Di partenza
- inizio
- Stato dei servizi
- step
- Passi
- conservazione
- memorizzati
- aerodinamico
- forte
- strutturale
- La struttura
- studio
- sottomissione
- inviare
- presentata
- di successo
- tale
- adatto
- tramonto
- sovrapposizione
- supporti
- sistema
- SISTEMI DI TRATTAMENTO
- tavolo
- Fai
- prende
- presa
- Target
- obiettivi
- le squadre
- Tecnologie
- modello
- modelli
- condizioni
- Testing
- che
- Il
- L’ORIGINE
- loro
- Li
- poi
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- Terza
- questo
- quelli
- migliaia
- tre
- Attraverso
- portata
- tempo
- richiede tempo
- a
- insieme
- strumenti
- top
- Tracciabilità
- pista
- tradizionale
- Treni
- allenato
- Training
- trasformatore
- vero
- seconda
- Digitare
- tipico
- tipicamente
- ui
- capire
- e una comprensione reciproca
- purtroppo
- Sconosciuto
- aggiornato
- caricato
- us
- uso
- utilizzato
- Utente
- Esperienza da Utente
- Interfaccia utente
- utenti
- usa
- utilizzando
- convalida
- APPREZZIAMO
- varietà
- vario
- molto
- via
- visualizzazione
- Prima
- Modo..
- we
- sito web
- servizi web
- Web-basata
- peso
- WELL
- quando
- quale
- while
- wikipedia
- volere
- con
- entro
- senza
- Lavora
- flusso di lavoro
- flussi di lavoro
- lavori
- mondo
- sarebbe
- scritto
- raggi X
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro