El desarrollo de fármacos es un proceso largo y complejo que implica la selección de miles de candidatos a fármacos y el uso de métodos computacionales o experimentales para evaluar las pistas. Según McKinsey, un solo fármaco puede tardar 10 años y costar un promedio de 2.6 millones de dólares para pasar por la identificación del objetivo de la enfermedad, la detección del fármaco, la validación del objetivo del fármaco y el eventual lanzamiento comercial. El descubrimiento de fármacos es el componente de investigación de esta tubería que genera fármacos candidatos con la mayor probabilidad de ser efectivos con el menor daño para los pacientes. Los métodos de aprendizaje automático (ML, por sus siglas en inglés) pueden ayudar a identificar compuestos adecuados en cada etapa del proceso de descubrimiento de fármacos, lo que da como resultado una priorización y pruebas de fármacos más optimizadas, lo que ahorra miles de millones en costos de desarrollo de fármacos (para obtener más información, consulte IA en la investigación biofarmacéutica: el momento de centrarse y escalar).
Los objetivos farmacológicos suelen ser entidades biológicas denominadas proteínas, los pilares de la vida. La estructura 3D de una proteína determina cómo interactúa con un compuesto farmacológico; por lo tanto, comprender la estructura 3D de la proteína puede agregar mejoras significativas al proceso de desarrollo de fármacos mediante la detección de compuestos de fármacos que se ajusten mejor a la estructura de la proteína objetivo. Otra área en la que la predicción de la estructura de las proteínas puede ser útil es la comprensión de la diversidad de las proteínas, de modo que solo seleccionemos fármacos que se dirijan selectivamente a proteínas específicas sin afectar a otras proteínas del cuerpo (para obtener más información, consulte Mejorando la evaluación de objetivos en la investigación biomédica: las recomendaciones GOT-IT). Las estructuras 3D precisas de las proteínas diana pueden permitir el diseño de fármacos con mayor especificidad y menor probabilidad de interacciones cruzadas con otras proteínas.
Sin embargo, predecir cómo las proteínas se pliegan en su estructura 3D es un problema difícil, y los métodos experimentales tradicionales, como la cristalografía de rayos X y la espectroscopia de RMN, pueden consumir mucho tiempo y ser costosos. Los avances recientes en los métodos de aprendizaje profundo para la investigación de proteínas se han mostrado prometedores en el uso de redes neuronales para predecir el plegamiento de proteínas con una precisión notable. Algoritmos de plegado como AlfaFold2, ESMFold, AbrirDoblary RosaTTADoblar se puede utilizar para construir rápidamente modelos precisos de estructuras de proteínas. Desafortunadamente, estos modelos son computacionalmente costosos de ejecutar y los resultados pueden ser engorrosos para comparar a la escala de miles de estructuras de proteínas candidatas. Una solución escalable para utilizar estas diversas herramientas permitirá a los investigadores y equipos comerciales de I+D incorporar rápidamente los últimos avances en la predicción de estructuras de proteínas, gestionar sus procesos de experimentación y colaborar con socios de investigación.
Amazon SageMaker es un servicio completamente administrado para preparar, construir, entrenar e implementar modelos ML de alta calidad rápidamente al reunir un amplio conjunto de capacidades especialmente diseñadas para ML. Ofrece un entorno completamente administrado para ML, abstrayendo la infraestructura, la administración de datos y los requisitos de escalabilidad para que pueda concentrarse en crear, entrenar y probar sus modelos.
En esta publicación, presentamos una solución de aprendizaje automático completamente administrada con SageMaker que simplifica el funcionamiento de los flujos de trabajo de predicción de estructuras de plegamiento de proteínas. Primero discutimos la solución a alto nivel y su experiencia de usuario. A continuación, le mostramos cómo configurar fácilmente flujos de trabajo optimizados para computación de AlphaFold2 y OpenFold con SageMaker. Finalmente, demostramos cómo puede rastrear y comparar las predicciones de estructura de proteínas como parte de un análisis típico. El código para esta solución está disponible en el siguiente Repositorio GitHub.
Resumen de la solución
En esta solución, los científicos pueden iniciar de forma interactiva experimentos de plegamiento de proteínas, analizar la estructura 3D, monitorear el progreso del trabajo y rastrear los experimentos en Estudio Amazon SageMaker.
La siguiente captura de pantalla muestra una sola ejecución de un flujo de trabajo de plegamiento de proteínas con Amazon SageMaker Studio. Incluye la visualización de la estructura 3D en un cuaderno, el estado de ejecución de los trabajos de SageMaker en el flujo de trabajo y enlaces a los parámetros de entrada y datos de salida y registros.
El siguiente diagrama ilustra la arquitectura de la solución de alto nivel.
Para comprender la arquitectura, primero definimos los componentes clave de un experimento de plegamiento de proteínas de la siguiente manera:
- Archivo de secuencia objetivo FASTA - El Formato FASTA es un formato basado en texto para representar secuencias de nucleótidos o secuencias de aminoácidos (proteínas), en el que los nucleótidos o los aminoácidos se representan mediante códigos de una sola letra.
- Bases de datos genéticas – Una base de datos genética es uno o más conjuntos de datos genéticos almacenados junto con software para permitir a los usuarios recuperar datos genéticos. Se requieren varias bases de datos genéticas para ejecutar algoritmos AlphaFold y OpenFold, como BFD, MGnificar, PDB70, AP, Sec. PDB, UniRef30 (FKA UniClust30), UniProty UniRef90.
- Alineación de secuencias múltiples (MSA) - Un alineación de secuencia es una forma de ordenar las secuencias primarias de una proteína para identificar regiones de similitud que pueden ser consecuencia de relaciones funcionales, estructurales o evolutivas entre las secuencias. Las características de entrada para las predicciones incluyen datos de MSA.
- Predicción de la estructura de proteínas – La estructura de las secuencias objetivo de entrada se predice con algoritmos de plegado como AlfaFold2 y AbrirDoblar que utilizan una arquitectura de transformador multipista entrenada en plantillas de proteínas conocidas.
- Visualización y métricas – Visualizar la estructura 3D con el py3Dmol biblioteca como una visualización 3D interactiva. Puede usar métricas para evaluar y comparar predicciones de estructura, sobre todo desviación de la raíz cuadrada media (RMSD) y puntuación de modelado de plantilla (puntuación TM)
El flujo de trabajo contiene los siguientes pasos:
- Los científicos utilizan SageMaker ML IDE basado en la web para explorar la base del código, crear flujos de trabajo de análisis de secuencias de proteínas en portátiles SageMaker Studio y ejecutar procesos de plegamiento de proteínas a través de la interfaz gráfica de usuario en SageMaker Studio o SageMaker SDK.
- Las bases de datos genéticas y de estructura requeridas por AlphaFold y OpenFold se descargan antes de la configuración de la canalización mediante Procesamiento de Amazon SageMaker, una característica informática efímera para el procesamiento de datos ML, a un Servicio de almacenamiento simple de Amazon (Amazon S3) cubeta. Con el procesamiento de SageMaker, puede ejecutar un trabajo de ejecución prolongada con un procesamiento adecuado sin configurar ningún clúster de procesamiento ni almacenamiento y sin necesidad de apagar el clúster. Los datos se guardan automáticamente en una ubicación de depósito S3 específica.
- An Amazon FSx para Lustre el sistema de archivos está configurado, siendo el repositorio de datos la ubicación del depósito S3 donde se guardan las bases de datos. FSx for Lustre puede escalar a cientos de GB/s de rendimiento y millones de IOPS con recuperación de archivos de baja latencia. Al iniciar un trabajo de estimador, SageMaker monta el sistema de archivos FSx for Lustre en el sistema de archivos de instancia y luego inicia el script.
- Canalizaciones de Amazon SageMaker se utiliza para orquestar múltiples ejecuciones de algoritmos de plegamiento de proteínas. SageMaker Pipelines ofrece una interfaz visual deseada para el envío de trabajos interactivos, la trazabilidad del progreso y la repetibilidad.
- Dentro de una canalización, se ejecutan dos algoritmos de plegamiento de proteínas computacionalmente pesados, AlphaFold y OpenFold, con estimadores de SageMaker. Esta configuración admite el montaje de un sistema de archivos FSx for Lustre para una búsqueda de base de datos de alto rendimiento en los algoritmos. Una única ejecución de inferencia se divide en dos pasos: un paso de construcción de MSA con una instancia de CPU óptima y un paso de predicción de estructura con una instancia de GPU. Estos subpasos, como el procesamiento de SageMaker en el paso 2, son efímeros, a pedido y completamente administrados. Los resultados del trabajo, como los archivos MSA, los archivos de estructura pdb predicha y otros archivos de metadatos, se guardan en una ubicación específica de S3. Se puede diseñar una canalización para ejecutar un solo algoritmo de plegamiento de proteínas o ejecutar tanto AlphaFold como OpenFold después de una construcción MSA común.
- Las ejecuciones de la predicción del plegamiento de proteínas son rastreadas automáticamente por Experimentos de Amazon SageMaker para un mayor análisis y comparación. Los registros de trabajo se mantienen en Reloj en la nube de Amazon para la supervisión.
Requisitos previos
Para seguir esta publicación y ejecutar esta solución, debe haber completado varios requisitos previos. Referirse a Repositorio GitHub para una explicación detallada de cada paso.
Ejecute el plegamiento de proteínas en SageMaker
Usamos las capacidades completamente administradas de SageMaker para ejecutar trabajos de plegamiento de proteínas computacionalmente pesados sin mucha sobrecarga de infraestructura. SageMaker utiliza imágenes de contenedores para ejecutar scripts personalizados para el procesamiento, la capacitación y el hospedaje de datos genéricos. Puede iniciar fácilmente un trabajo efímero a pedido que ejecuta un programa con una imagen de contenedor con un par de líneas del SDK de SageMaker sin autogestionar ninguna infraestructura informática. Específicamente, el trabajo del estimador de SageMaker brinda flexibilidad en lo que respecta a la elección de la imagen del contenedor, el script de ejecución y la configuración de la instancia, y admite una amplia variedad de opciones de almacenamiento, incluidos sistemas de archivos como FSx for Lustre. El siguiente diagrama ilustra esta arquitectura.
Los algoritmos de plegado como AlphaFold y OpenFold utilizan una arquitectura de transformador multipista entrenada en plantillas de proteínas conocidas para predecir la estructura de secuencias de péptidos desconocidas. Estas predicciones se pueden ejecutar en instancias de GPU para proporcionar el mejor rendimiento y la latencia más baja. Sin embargo, las características de entrada para estas predicciones incluyen datos de MSA. Los algoritmos de MSA dependen de la CPU y pueden requerir varias horas de tiempo de procesamiento.
La ejecución de los pasos de MSA y de predicción de estructura en el mismo entorno informático puede resultar rentable porque los costosos recursos de la GPU permanecen inactivos mientras se ejecuta el paso de MSA. Por lo tanto, optimizamos el flujo de trabajo en dos pasos. Primero, ejecutamos un trabajo de estimación de SageMaker en una instancia de CPU específicamente para calcular la alineación de MSA dada una secuencia de entrada FASTA particular y bases de datos genéticas de origen. Luego, ejecutamos un trabajo de estimación de SageMaker en una instancia de GPU para predecir la estructura de la proteína con una alineación de MSA de entrada dada y un algoritmo de plegado como AlphaFold u OpenFold.
Ejecutar generación de MSA
Para el cálculo de MSA, incluimos un script personalizado run_create_alignment.sh
y create_alignments.py
secuencia de comandos que se adopta de la fuente de predicción AlphaFold existente run_alphafold.py. Tenga en cuenta que es posible que este script deba actualizarse si se actualiza el código fuente AlphaFold. El script personalizado se proporciona al estimador de SageMaker a través de modo script. Los componentes clave de la imagen del contenedor, la implementación del modo de secuencia de comandos y la configuración de un trabajo de estimador de SageMaker también forman parte del siguiente paso de la ejecución de algoritmos de plegado y se describen con más detalle en la siguiente sección.
Ejecutar AlphaFold
Comenzamos ejecutando una predicción de estructura AlphaFold con una sola secuencia de proteína usando SageMaker. Ejecutar un trabajo AlphaFold implica tres pasos simples, como se puede ver en 01-run_stepbystep.ipynb
. Primero, construimos una imagen de contenedor de Docker basada en AlphaFold Dockerfile para que nosotros también podamos ejecutar AlphaFold en SageMaker. En segundo lugar, construimos el script. run_alphafold.sh
que indica cómo se debe ejecutar AlphaFold. En tercer lugar, construimos y ejecutamos un Estimador SageMaker con el script, el contenedor, el tipo de instancia, los datos y la configuración del trabajo.
Imagen de contenedor
El requisito de tiempo de ejecución para que una imagen de contenedor ejecute AlphaFold (también OpenFold) en SageMaker se puede simplificar enormemente con Dockerfile de AlphaFold. Solo necesitamos agregar un puñado de capas simples en la parte superior para instalar una biblioteca de Python específica de SageMaker para que un trabajo de SageMaker pueda comunicarse con la imagen del contenedor. Ver el siguiente código:
Guión de entrada
Luego proporcionamos el script. run_alphafold.sh
que corre run_alphafold.py del repositorio AlphaFold que se encuentra actualmente en el contenedor /app/alphafold/run_alphafold.py
. Cuando se ejecuta este script, SageMaker completará la ubicación de las bases de datos genéticas y la secuencia FASTA de entrada como variables de entorno (SM_CHANNEL_GENETIC
y SM_CHANNEL_FASTA
, respectivamente). Para obtener más información, consulte Configuración de datos de entrada.
trabajo de estimador
A continuación, creamos un trabajo utilizando un estimador de SageMaker con los siguientes argumentos de entrada clave, que le indican a SageMaker que ejecute un script específico utilizando un contenedor específico con el tipo o recuento de instancias, la opción de red que elija y otros parámetros para el trabajo. vpc_subnet_ids
y security_group_ids
indique al trabajo que se ejecute dentro de una VPC específica donde se encuentra el sistema de archivos FSx for Lustre para que podamos montar y acceder al sistema de archivos en el trabajo de SageMaker. La ruta de salida hace referencia a una ubicación de depósito S3 donde SageMaker cargará automáticamente el producto final de AlphaFold al final de un trabajo exitoso. Aquí también establecemos un parámetro DB_PRESET
, por ejemplo, para pasar y acceder dentro run_alphafold.sh
como una variable ambiental durante el tiempo de ejecución. Ver el siguiente código:
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,
...)
Finalmente, recopilamos los datos y le hacemos saber al trabajo dónde están. El fasta
El canal de datos se define como una entrada de datos de S3 que se descargará desde una ubicación de S3 a la instancia informática al comienzo del trabajo. Esto permite una gran flexibilidad para administrar y especificar la secuencia de entrada. Por otro lado, el genetic
El canal de datos se define como un FileSystemInput
que se montará en la instancia al comienzo del trabajo. El uso de un sistema de archivos FSx for Lustre como una forma de incorporar cerca de 3 TB de datos evita la descarga repetida de datos de un depósito S3 a una instancia informática. llamamos al .fit
método para iniciar un trabajo 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
Eso es todo. Acabamos de enviar un trabajo a SageMaker para ejecutar AlphaFold. Los registros y la salida, incluidos los archivos de predicción .pdb, se escribirán en Amazon S3.
Ejecutar OpenFold
Ejecutar OpenFold en SageMaker sigue un patrón similar, como se muestra en la segunda mitad de 01-run_stepbystep.ipynb
. Primero agregamos una capa simple para obtener la biblioteca específica de SageMaker para que la imagen del contenedor sea compatible con SageMaker además de OpenFold. Dockerfile. En segundo lugar, construimos un run_openfold.sh
como punto de entrada para el trabajo de SageMaker. En run_openfold.sh
, corremos el run_pretrained_openfold.py de OpenFold, que es disponible en la imagen del contenedor con las mismas bases de datos genéticas que descargamos para los pesos modelo de AlphaFold y OpenFold (--openfold_checkpoint_path
). En términos de ubicaciones de datos de entrada, además del canal de bases de datos genéticas y el canal FASTA, presentamos un tercer canal, SM_CHANNEL_PARAM
, para que podamos pasar de manera flexible los pesos de elección del modelo de la construcción del estimador cuando definimos y enviamos un trabajo. Con el estimador de SageMaker, podemos enviar fácilmente trabajos con diferentes entry_point
, image_uri
, environment
, inputs
y otras configuraciones para OpenFold con la misma firma. Para el canal de datos, agregamos un nuevo canal, param
, como una entrada de Amazon S3 junto con el uso de las mismas bases de datos genéticas del sistema de archivos FSx for Lustre y el archivo FASTA de Amazon S3. Esto, nuevamente, nos permite especificar fácilmente el peso del modelo para usar desde la construcción del trabajo. Ver el siguiente código:
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)
Para acceder a la salida final después de que se completa el trabajo, ejecutamos los siguientes comandos:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Rendimiento en tiempo de ejecución
La siguiente tabla muestra los ahorros de costos del 57 % y el 51 % para AlphaFold y OpenFold, respectivamente, al dividir los algoritmos de plegado y alineación de MSA en dos trabajos en comparación con un solo trabajo de cómputo. Nos permite dimensionar correctamente el cálculo para cada trabajo: ml.m5.4xlarge para alineación MSA y ml.g5.2xlarge para AlphaFold y OpenFold.
Detalles del trabajo | Tipo de instancia | Entrada de secuencia FASTA | Runtime | Cost |
Alineación MSA + OpenFold | ml.g5.4xgrande | T1030 | 50 minutos | $1.69 |
Alineación MSA + AlphaFold | ml.g5.4xgrande | T1030 | 65 minutos | $2.19 |
alineación MSA | ml.m5.4xgrande | T1030 | 46 minutos | $0.71 |
AbrirDoblar | ml.g5.2xgrande | T1030 | 6 minutos | $0.15 |
AlphaFold | ml.g5.2xgrande | T1030 | 21 minutos | $0.53 |
Cree un flujo de trabajo repetible con SageMaker Pipelines
Con SageMaker Pipelines, podemos crear un flujo de trabajo de ML que se encargue de administrar datos entre pasos, orquestar sus ejecuciones y registrar. SageMaker Pipelines también nos proporciona una interfaz de usuario para visualizar nuestra canalización y ejecutar fácilmente nuestro flujo de trabajo de ML.
Una canalización se crea combinando una serie de pasos. En este pipeline, combinamos tres pasos de entrenamiento, que requieren un estimador de SageMaker. Los estimadores definidos en este cuaderno son muy similares a los definidos en 01-run_stepbystep.ipynb
, con la excepción de que usamos ubicaciones de Amazon S3 para señalar nuestras entradas y salidas. Las variables dinámicas permiten que SageMaker Pipelines ejecute pasos uno tras otro y también permite que el usuario vuelva a intentar los pasos fallidos. La siguiente captura de pantalla muestra un gráfico acíclico dirigido (DAG), que proporciona información sobre los requisitos y las relaciones entre cada paso de nuestra canalización.
Variables dinámicas
SageMaker Pipelines es capaz de tomar las entradas de los usuarios al comienzo de cada ejecución de canalización. Definimos las siguientes variables dinámicas, que nos gustaría cambiar durante cada experimento:
- FastaInputS3URI – Amazon S3 URI del archivo FASTA cargado a través de SDK, Boto3 o manualmente.
- Nombre de archivo rápido – Nombre del archivo FASTA.
- db_preset – Selección entre
full_dbs
orreduced_dbs
. - Fecha máxima de plantilla – El paso MSA de AlphaFold buscará las plantillas disponibles antes de la fecha especificada por este parámetro.
- ModeloPreestablecido – Seleccione entre los modelos AlphaFold incluyendo
monomer
,monomer_casp14
,monomer_ptm
ymultimer
. - NumMultimerPrediccionesPorModelo – Número de semillas a ejecutar por modelo cuando se utiliza el sistema multimer.
- InferenceInstanceTypeInferenceInstanceType – Tipo de instancia que se usará para los pasos de inferencia (tanto AlphaFold como OpenFold). El valor predeterminado es ml.g5.2xlarge.
- Tipo de instancia MSA – Tipo de instancia que se usará para el paso de MSA. El valor predeterminado es ml.m5.4xlarge.
Ver el siguiente código:
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 canalización de SageMaker se construye definiendo una serie de pasos y luego encadenándolos en un orden específico donde la salida de un paso anterior se convierte en la entrada del siguiente paso. Los pasos se pueden ejecutar en paralelo y se pueden definir para que dependan de un paso anterior. En esta canalización, definimos un paso MSA, que es la dependencia de un paso de inferencia AlphaFold y un paso de inferencia OpenFold que se ejecutan en paralelo. Ver el siguiente código:
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]
Para poner todos los pasos juntos, llamamos al Pipeline
class y proporcione un nombre de canalización, variables de entrada de canalización y los pasos individuales:
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')
Ejecutar la canalización
En la última celda del cuaderno. 02-define_pipeline.ipynb
, mostramos cómo ejecutar una canalización con el SDK de SageMaker. Las variables dinámicas que describimos anteriormente se proporcionan de la siguiente manera:
!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
)
Seguimiento de experimentos y comparación de estructuras de proteínas
Para nuestro experimento, usamos una secuencia de proteína de ejemplo de la CASP14 competencia, que proporciona un mecanismo independiente para la evaluación de métodos de modelado de estructuras de proteínas. El objetivo T1030 se deriva de la proteína PDB 6P00 y tiene 237 aminoácidos en la secuencia primaria. Ejecutamos la canalización de SageMaker para predecir la estructura de la proteína de esta secuencia de entrada con los algoritmos OpenFold y AlphaFold.
Cuando se completa la tubería, descargamos los archivos .pdb previstos de cada trabajo de plegado y visualizamos la estructura en el cuaderno usando py3Dmol, como en el cuaderno 04-compare_alphafold_openfold.ipynb
.
La siguiente captura de pantalla muestra la predicción del trabajo de predicción AlphaFold.
La estructura predicha se compara con su estructura de referencia base conocida con código PDB 6 caca archivado en RCSB. Analizamos el rendimiento de la predicción en comparación con el código PDB base 6poo con tres métricas: RMSD, RMSD con superposición y puntaje de modelado de plantilla, como se describe en Comparando estructuras.
. | Secuencia de entrada | Comparar con | RMSD | RMSD con superposición | Puntuación de modelado de plantilla |
AlphaFold | T1030 | 6 caca | 247.26 | 3.87 | 0.3515 |
Los algoritmos de plegado ahora se comparan entre sí para múltiples secuencias FASTA: T1030, T1090y T1076. Es posible que las nuevas secuencias de destino no tengan la estructura pdb base en las bases de datos de referencia y, por lo tanto, es útil comparar la variabilidad entre los algoritmos de plegado.
. | Secuencia de entrada | Comparar con | RMSD | RMSD con superposición | Puntuación de modelado de plantilla |
AlphaFold | T1030 | AbrirDoblar | 73.21 | 24.8 | 0.0018 |
AlphaFold | T1076 | AbrirDoblar | 38.71 | 28.87 | 0.0047 |
AlphaFold | T1090 | AbrirDoblar | 30.03 | 20.45 | 0.005 |
La siguiente captura de pantalla muestra las ejecuciones de ProteinFoldWorkflow
para las tres secuencias de entrada FASTA con SageMaker Pipeline:
También registramos las métricas con SageMaker Experiments como nuevas ejecuciones del mismo experimento creado por la canalización:
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)
Luego analizamos y visualizamos estas ejecuciones en el Experimentos página en SageMaker Studio.
El siguiente gráfico muestra el valor RMSD entre AlphaFold y OpenFold para las tres secuencias: T1030, T1076 y T1090.
Conclusión
En esta publicación, describimos cómo puede usar SageMaker Pipelines para configurar y ejecutar flujos de trabajo de plegamiento de proteínas con dos algoritmos de predicción de estructuras populares: AlphaFold2 y OpenFold. Demostramos una arquitectura de solución rentable de múltiples trabajos que separa los requisitos informáticos para la generación de MSA de la predicción de la estructura. También destacamos cómo puede visualizar, evaluar y comparar estructuras 3D predichas de proteínas en SageMaker Studio.
Para comenzar con los flujos de trabajo de plegamiento de proteínas en SageMaker, consulte el código de muestra en el Repositorio GitHub.
Sobre los autores
Michael Hsieh es Arquitecto Principal de Soluciones Especializado en IA/ML. Trabaja con clientes de HCLS para avanzar en su viaje de ML con tecnologías de AWS y su experiencia en imágenes médicas. Como un trasplante de Seattle, le encanta explorar la gran madre naturaleza que la ciudad tiene para ofrecer, como las rutas de senderismo, los paisajes en kayak en SLU y la puesta de sol en Shilshole Bay.
Shivam patel es arquitecto de soluciones en AWS. Tiene experiencia en I+D y combina esto con su conocimiento empresarial para resolver problemas complejos a los que se enfrentan sus clientes. A Shivam le apasionan las cargas de trabajo en aprendizaje automático, robótica, IoT y computación de alto rendimiento.
Hasan Poonawala es un arquitecto sénior de soluciones especialista en IA/ML en AWS, Hasan ayuda a los clientes a diseñar e implementar aplicaciones de aprendizaje automático en producción en AWS. Tiene más de 12 años de experiencia laboral como científico de datos, practicante de aprendizaje automático y desarrollador de software. En su tiempo libre, a Hasan le encanta explorar la naturaleza y pasar tiempo con amigos y familiares.
Jasleen Greval es científica aplicada sénior en Amazon Web Services, donde trabaja con clientes de AWS para resolver problemas del mundo real mediante el aprendizaje automático, con un enfoque especial en la medicina de precisión y la genómica. Tiene una sólida formación en bioinformática, oncología y genómica clínica. Le apasiona usar AI/ML y servicios en la nube para mejorar la atención al paciente.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Automoción / vehículos eléctricos, Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- Desplazamientos de bloque. Modernización de la propiedad de compensaciones ambientales. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :posee
- :es
- :no
- :dónde
- $ UP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- Nuestra Empresa
- AC
- acelerar
- de la máquina
- visitada
- la exactitud
- preciso
- acíclico
- add
- adoptado
- avanzar
- avances
- afectando
- Después
- de nuevo
- en contra
- AI / ML
- algoritmo
- algoritmos
- alineación
- Todos
- permitir
- permite
- a lo largo de
- también
- Amazon
- Amazon SageMaker
- Estudio Amazon SageMaker
- Amazon Web Services
- an
- análisis
- analizar
- y
- Otra
- cualquier
- aplicaciones
- aplicada
- arquitectura
- somos
- Reservada
- argumentos
- AS
- evaluación
- At
- automáticamente
- Hoy Disponibles
- promedio
- lejos
- AWS
- Atrás
- fondo
- bases
- basado
- Bay
- BE
- porque
- se convierte en
- antes
- Comienzo
- "Ser"
- además de
- MEJOR
- mejores
- entre
- mil millones
- miles de millones
- biomédica
- biofarma
- Bloques
- cuerpo
- ambas
- llevar
- Trayendo
- general
- build
- Construir la
- by
- llamar al
- , que son
- PUEDEN
- candidato
- candidatos
- capacidades
- capaz
- servicios sociales
- el cambio
- Channel
- Tabla
- manera?
- Ciudad
- clase
- Clínico
- Cerrar
- Soluciones
- servicios en la nube
- Médico
- código
- base de código
- los códigos de
- colaboran
- combinar
- combina
- proviene
- completo
- Algunos
- Comunicarse
- comparar
- en comparación con
- comparación
- compatible
- competencia
- completar
- Completado
- ultima
- integraciones
- componente
- componentes
- Compuesto
- cálculo
- Calcular
- informática
- Configuración
- construir
- construcción
- Envase
- contiene
- Cost
- ahorro de costes
- Precio
- Parejas
- Para crear
- creado
- En la actualidad
- personalizado
- Clientes
- DÍA
- datos
- datos de gestión
- proceso de datos
- científico de datos
- Base de datos
- bases de datos
- Fecha
- profundo
- deep learning
- Predeterminado
- definir
- se define
- definir
- demostrar
- demostrado
- Dependencia
- desplegar
- Derivado
- descrito
- Diseño
- diseñado
- deseado
- detallado
- Determinar
- determina
- Developer
- Desarrollo
- una experiencia diferente
- difícil
- descubrimiento
- discutir
- Enfermedades
- Diversidad
- dividido
- Docker
- DE INSCRIPCIÓN
- descargar
- droga
- Drogas
- durante
- lugar de trabajo dinámico
- cada una
- Más temprano
- pasan fácilmente
- Eficaz
- ya sea
- habilitar
- final
- entidades
- entrada
- Entorno
- ambientales
- evaluar
- eventual
- Cada
- ejemplo
- excepción
- ejecutado
- ejecución
- existente
- costoso
- experience
- experimento
- experimentos
- Experiencia
- explicación
- explorar
- Explorar
- enfrentado
- Fallidos
- familia
- Feature
- Caracteristicas
- Archive
- archivos
- final
- Finalmente
- Nombre
- primer vez
- cómodo
- Flexibilidad
- flexiblemente
- Focus
- seguir
- siguiendo
- siguiente
- formato
- amigos
- Desde
- ser completados
- completamente
- funcional
- promover
- reunir
- genera
- generación de AHSS
- genómica
- obtener
- dado
- Go
- GPU
- gráfica
- maravillosa
- muy
- A Mitad
- mano
- puñado
- daño
- Tienen
- he
- pesado
- ayuda
- ayuda
- esta página
- Alta
- de alto nivel
- Alto rendimiento
- alta calidad
- más alto
- más alto
- Destacado
- su
- hosting
- HORAS
- Cómo
- Como Hacer
- Sin embargo
- HTML
- http
- HTTPS
- Cientos
- Identificación
- Identifique
- Idle
- if
- ilustra
- imagen
- imágenes
- Proyección de imagen
- implementación
- importar
- mejorar
- mejoras
- in
- incluir
- incluye
- Incluye
- incorporar
- independientes
- INSTRUMENTO individual
- información
- EN LA MINA
- Las opciones de entrada
- entradas
- dentro
- instalar
- ejemplo
- interactivo
- interactúa
- Interfaz
- dentro
- introducir
- IOT
- IT
- SUS
- Trabajos
- Empleo
- jpg
- solo
- mantenido
- Clave
- patear
- Saber
- especialistas
- conocido
- Apellido
- Estado latente
- más reciente
- lanzamiento
- .
- ponedoras
- Prospectos
- aprendizaje
- menos
- dejar
- Nivel
- Biblioteca
- Vida
- como
- probabilidad
- líneas
- enlaces
- localmente
- Ubicación
- Ubicaciones
- log
- registro
- Largo
- ama
- inferior
- más bajo
- máquina
- máquina de aprendizaje
- para lograr
- gestionan
- gestionado
- Management
- administrar
- a mano
- Puede..
- McKinsey
- mecanismo
- servicios
- medicina
- metadatos
- Método
- métodos
- Métrica
- millones
- ML
- Moda
- modelo
- modelado
- modelos
- Monitorear
- monitoreo
- más,
- MEJOR DE TU
- madre
- MONTE
- mucho más
- múltiples
- nombre
- Naturaleza
- ¿ Necesita ayuda
- necesidad
- red
- telecomunicaciones
- redes neuronales
- Nuevo
- nuevo objetivo
- Next
- NIH
- notablemente
- cuaderno
- ahora
- número
- of
- off
- LANZAMIENTO
- Ofertas
- Bueno
- on
- On-Demand
- ONE
- , solamente
- sobre
- Inteligente
- óptimo
- Optimización
- Optión
- or
- solicite
- Otro
- nuestros
- salida
- Más de
- página
- Paralelo
- parámetro
- parámetros
- parte
- particular
- socios
- pass
- pasado
- apasionado
- camino
- paciente
- los pacientes
- Patrón de Costura
- para
- actuación
- industrial
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- punto
- Popular
- poblado
- Publicación
- necesidad
- Precisión
- predecir
- previsto
- predecir
- predicción
- Predicciones
- Preparar
- requisitos previos
- presente
- anterior
- precio
- primario
- Director de la escuela
- Anterior
- priorización
- Problema
- problemas
- en costes
- tratamiento
- Producto
- Producción
- Programa
- Progreso
- PROMETEMOS
- apropiado
- Proteínas
- Proteínas
- proporcionar
- previsto
- proporciona un
- poner
- Python
- con rapidez
- I + D
- real
- mundo real
- reciente
- se refiere
- regiones
- Relaciones
- permanecer
- relevantes
- repetible
- REPETIDAMENTE
- repositorio
- representado
- que representa
- exigir
- Requisitos
- requisito
- Requisitos
- la investigación
- investigadores
- Recursos
- respectivamente
- resultante
- Resultados
- robótica
- Ejecutar
- correr
- corre
- s
- sabio
- Tuberías de SageMaker
- mismo
- ahorro
- Ahorros
- Escalabilidad
- escalable
- Escala
- Ciencia:
- Científico
- los científicos
- Puntuación
- proyección
- guiones
- Sdk
- Buscar
- Seattle
- Segundo
- Sección
- ver
- semillas
- visto
- selección
- mayor
- Secuencia
- Serie
- de coches
- Servicios
- set
- Sets
- pólipo
- Configure
- Varios
- ella
- tienes
- Mostrar
- mostrado
- Shows
- cerrar
- importante
- similares
- sencillos
- simplificado
- soltero
- So
- Software
- a medida
- Soluciones
- RESOLVER
- Fuente
- especial
- especialista
- soluciones y
- específicamente
- especificidad
- especificado
- Espectroscopia
- pasar
- Etapa
- comienzo
- fundó
- Comience a
- comienza
- Estado
- paso
- pasos
- STORAGE
- almacenados
- racionalizado
- fuerte
- estructural
- estructura
- estudio
- enviarlo a consideración
- enviar
- Subido
- exitosos
- tal
- adecuado
- puesta del sol
- superposición
- soportes
- te
- Todas las funciones a su disposición
- mesa
- ¡Prepárate!
- toma
- toma
- Target
- tiene como objetivo
- equipos
- Tecnologías
- plantilla
- plantillas
- términos
- Pruebas
- esa
- La
- La Fuente
- su
- Les
- luego
- por lo tanto
- Estas
- ellos
- Código
- así
- aquellos
- miles
- Tres
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- rendimiento
- equipo
- prolongado
- a
- juntos
- parte superior
- Trazabilidad
- seguir
- tradicional
- Entrenar
- entrenado
- Formación
- transformador
- verdadero
- dos
- tipo
- principiante
- típicamente
- ui
- entender
- comprensión
- Desafortunadamente
- desconocido
- actualizado
- subido
- us
- utilizan el
- usado
- Usuario
- experiencia como usuario
- Interfaz de usuario
- usuarios
- usos
- usando
- validación
- propuesta de
- variedad
- diversos
- muy
- vía
- visualización
- fue
- Camino..
- we
- web
- servicios web
- Basado en la Web
- peso
- WELL
- cuando
- que
- mientras
- Wikipedia
- seguirá
- dentro de
- sin
- Actividades:
- flujo de trabajo
- flujos de trabajo
- funciona
- mundo
- se
- escrito
- de rayos X
- años
- Usted
- tú
- zephyrnet