O desenvolvimento de medicamentos é um processo complexo e longo que envolve a triagem de milhares de candidatos a medicamentos e o uso de métodos computacionais ou experimentais para avaliar leads. De acordo com a McKinsey, um único medicamento pode levar 10 anos e custar em média US$ 2.6 bilhões para passar pela identificação do alvo da doença, triagem de medicamentos, validação do alvo do medicamento e eventual lançamento comercial. A descoberta de medicamentos é o componente de pesquisa desse pipeline que gera medicamentos candidatos com a maior probabilidade de serem eficazes com o menor dano aos pacientes. Os métodos de aprendizado de máquina (ML) podem ajudar a identificar compostos adequados em cada estágio do processo de descoberta de medicamentos, resultando em priorização e testes de medicamentos mais simplificados, economizando bilhões em custos de desenvolvimento de medicamentos (para obter mais informações, consulte IA na pesquisa biofarmacêutica: um momento para focar e escalar).
Alvos de drogas são tipicamente entidades biológicas chamadas proteínas, os blocos de construção da vida. A estrutura 3D de uma proteína determina como ela interage com um composto de droga; portanto, a compreensão da estrutura 3D da proteína pode adicionar melhorias significativas ao processo de desenvolvimento de medicamentos, por meio da triagem de compostos de medicamentos que se ajustam melhor à estrutura da proteína alvo. Outra área em que a previsão da estrutura da proteína pode ser útil é a compreensão da diversidade das proteínas, de modo que selecionamos apenas medicamentos que visam seletivamente proteínas específicas sem afetar outras proteínas do corpo (para obter mais informações, consulte Melhorando a avaliação de alvos em pesquisa biomédica: as recomendações do GOT-IT). Estruturas 3D precisas de proteínas-alvo podem permitir o design de drogas com maior especificidade e menor probabilidade de interações cruzadas com outras proteínas.
No entanto, prever como as proteínas se dobram em sua estrutura 3D é um problema difícil, e métodos experimentais tradicionais, como cristalografia de raios-X e espectroscopia de RMN, podem ser demorados e caros. Avanços recentes em métodos de aprendizado profundo para pesquisa de proteínas mostraram-se promissores no uso de redes neurais para prever o dobramento de proteínas com precisão notável. Algoritmos de dobramento como AlfaFold2, ESMFold, OpenFold e RosaTTAFold pode ser usado para construir rapidamente modelos precisos de estruturas de proteínas. Infelizmente, esses modelos são computacionalmente caros para serem executados e os resultados podem ser complicados de comparar na escala de milhares de estruturas de proteínas candidatas. Uma solução escalável para usar essas várias ferramentas permitirá que pesquisadores e equipes comerciais de P&D incorporem rapidamente os últimos avanços na previsão da estrutura de proteínas, gerenciem seus processos de experimentação e colaborem com parceiros de pesquisa.
Amazon Sage Maker é um serviço totalmente gerenciado para preparar, criar, treinar e implantar modelos de ML de alta qualidade rapidamente, reunindo um amplo conjunto de recursos desenvolvidos especificamente para ML. Ele oferece um ambiente totalmente gerenciado para ML, abstraindo os requisitos de infraestrutura, gerenciamento de dados e escalabilidade para que você possa se concentrar na criação, treinamento e teste de seus modelos.
Nesta postagem, apresentamos uma solução de ML totalmente gerenciada com o SageMaker que simplifica a operação dos fluxos de trabalho de previsão da estrutura de dobramento de proteínas. Primeiro discutimos a solução em alto nível e sua experiência de usuário. A seguir, explicamos como configurar facilmente fluxos de trabalho otimizados para computação do AlphaFold2 e OpenFold com o SageMaker. Por fim, demonstramos como você pode rastrear e comparar as previsões da estrutura da proteína como parte de uma análise típica. O código para esta solução está disponível no seguinte Repositório GitHub.
Visão geral da solução
Nesta solução, os cientistas podem iniciar interativamente experimentos de dobramento de proteínas, analisar a estrutura 3D, monitorar o progresso do trabalho e acompanhar os experimentos em Estúdio Amazon SageMaker.
A captura de tela a seguir mostra uma única execução de um fluxo de trabalho de dobramento de proteína com o Amazon SageMaker Studio. Ele inclui a visualização da estrutura 3D em um bloco de anotações, status de execução das tarefas do SageMaker no fluxo de trabalho e links para os parâmetros de entrada e dados e logs de saída.
O diagrama a seguir ilustra a arquitetura de solução de alto nível.
Para entender a arquitetura, primeiro definimos os principais componentes de um experimento de dobramento de proteínas da seguinte forma:
- Arquivo de sequência de destino FASTA - A Formato FASTA é um formato baseado em texto para representar sequências de nucleotídeos ou sequências de aminoácidos (proteínas), nas quais os nucleotídeos ou aminoácidos são representados usando códigos de uma única letra.
- bancos de dados genéticos – Um banco de dados genético é um ou mais conjuntos de dados genéticos armazenados junto com o software para permitir que os usuários recuperem dados genéticos. Vários bancos de dados genéticos são necessários para executar os algoritmos AlphaFold e OpenFold, como BFD, MGnificar, APO70, PDB, sequências PDB, UniRef30 (FKA UniClust30), UniProt e UniRef90.
- Alinhamento de sequência múltipla (MSA) - UMA alinhamento de sequência é uma maneira de organizar as sequências primárias de uma proteína para identificar regiões de similaridade que podem ser consequência de relações funcionais, estruturais ou evolutivas entre as sequências. Os recursos de entrada para previsões incluem dados MSA.
- Previsão da estrutura da proteína – A estrutura das sequências de destino de entrada é prevista com algoritmos de dobragem como AlfaFold2 e OpenFold que usam uma arquitetura de transformador multipista treinada em modelos de proteína conhecidos.
- Visualização e métricas – Visualize a estrutura 3D com o py3Dmol biblioteca como uma visualização 3D interativa. Você pode usar métricas para avaliar e comparar previsões de estrutura, principalmente desvio da raiz quadrada média (RMSD) e pontuação de modelagem de modelo (pontuação TM)
O fluxo de trabalho contém as seguintes etapas:
- Os cientistas usam o SageMaker ML IDE baseado na Web para explorar a base de código, criar fluxos de trabalho de análise de sequência de proteínas em notebooks do SageMaker Studio e executar pipelines de dobramento de proteínas por meio da interface gráfica do usuário no SageMaker Studio ou no SageMaker SDK.
- Os bancos de dados genéticos e estruturais exigidos pelo AlphaFold e OpenFold são baixados antes da configuração do pipeline usando Processamento do Amazon SageMaker, um recurso de computação efêmero para processamento de dados de ML, para um Serviço de armazenamento simples da Amazon (Amazon S3). Com o SageMaker Processing, você pode executar um trabalho de execução longa com uma computação adequada sem configurar nenhum cluster de computação e armazenamento e sem precisar desligar o cluster. Os dados são salvos automaticamente em um local de bucket do S3 especificado.
- An Amazon FSx para Lustre o sistema de arquivos está configurado, com o repositório de dados sendo o local do bucket do S3 onde os bancos de dados são salvos. O FSx for Lustre pode escalar para centenas de GB/s de taxa de transferência e milhões de IOPS com recuperação de arquivo de baixa latência. Ao iniciar um trabalho estimador, o SageMaker monta o sistema de arquivos FSx for Lustre no sistema de arquivos da instância e, em seguida, inicia o script.
- Pipelines Amazon SageMaker é usado para orquestrar várias execuções de algoritmos de dobramento de proteínas. O SageMaker Pipelines oferece uma interface visual desejada para envio interativo de trabalhos, rastreabilidade do progresso e repetibilidade.
- Dentro de um pipeline, dois algoritmos computacionalmente pesados de dobramento de proteínas — AlphaFold e OpenFold — são executados com estimadores SageMaker. Essa configuração suporta a montagem de um sistema de arquivos FSx for Lustre para pesquisa de banco de dados de alto rendimento nos algoritmos. Uma única execução de inferência é dividida em duas etapas: uma etapa de construção de MSA usando uma instância de CPU ideal e uma etapa de previsão de estrutura usando uma instância de GPU. Essas subetapas, como o Processamento do SageMaker na Etapa 2, são efêmeras, sob demanda e totalmente gerenciadas. A saída do trabalho, como arquivos MSA, arquivos de estrutura pdb previstos e outros arquivos de metadados, são salvos em um local S3 especificado. Um pipeline pode ser projetado para executar um único algoritmo de dobramento de proteína ou executar AlphaFold e OpenFold após uma construção comum de MSA.
- As execuções da previsão de dobramento de proteínas são rastreadas automaticamente por Experimentos Amazon SageMaker para posterior análise e comparação. Os logs de trabalho são mantidos em Amazon CloudWatch para monitorar.
Pré-requisitos
Para acompanhar este post e executar esta solução, você precisa ter concluído vários pré-requisitos. Consulte o Repositório GitHub para obter uma explicação detalhada de cada etapa.
Execute a dobragem de proteínas no SageMaker
Usamos os recursos totalmente gerenciados do SageMaker para executar trabalhos de dobragem de proteínas computacionalmente pesados sem muita sobrecarga de infraestrutura. O SageMaker usa imagens de contêiner para executar scripts personalizados para processamento, treinamento e hospedagem de dados genéricos. Você pode iniciar facilmente um trabalho efêmero sob demanda que executa um programa com uma imagem de contêiner com algumas linhas do SDK do SageMaker sem autogerenciar qualquer infraestrutura de computação. Especificamente, o trabalho estimador do SageMaker fornece flexibilidade quando se trata de escolher a imagem do contêiner, script de execução e configuração da instância, além de oferecer suporte a um ampla variedade de opções de armazenamento, incluindo sistemas de arquivos como FSx for Lustre. O diagrama a seguir ilustra essa arquitetura.
Algoritmos de dobramento como AlphaFold e OpenFold usam uma arquitetura de transformador multipista treinada em modelos de proteínas conhecidas para prever a estrutura de sequências peptídicas desconhecidas. Essas previsões podem ser executadas em instâncias de GPU para fornecer a melhor taxa de transferência e a menor latência. Os recursos de entrada, no entanto, para essas previsões incluem dados MSA. Os algoritmos MSA dependem da CPU e podem exigir várias horas de tempo de processamento.
A execução das etapas de previsão de estrutura e MSA no mesmo ambiente de computação pode ser ineficiente em termos de custo porque os recursos caros da GPU permanecem ociosos enquanto a etapa de MSA é executada. Portanto, otimizamos o fluxo de trabalho em duas etapas. Primeiro, executamos uma tarefa do estimador SageMaker em uma instância de CPU especificamente para calcular o alinhamento MSA dada uma sequência de entrada FASTA específica e bancos de dados genéticos de origem. Em seguida, executamos um trabalho de estimativa do SageMaker em uma instância de GPU para prever a estrutura da proteína com um determinado alinhamento MSA de entrada e um algoritmo de dobramento como AlphaFold ou OpenFold.
Executar geração de MSA
Para cálculo de MSA, incluímos um script personalizado run_create_alignment.sh
e create_alignments.py
script que é adotado da fonte de previsão AlphaFold existente run_alphafold.py. Observe que esse script pode precisar ser atualizado se o código AlphaFold de origem for atualizado. O script personalizado é fornecido ao estimador do SageMaker via modo de script. Os principais componentes da imagem do contêiner, a implementação do modo de script e a configuração de uma tarefa do estimador do SageMaker também fazem parte da próxima etapa da execução de algoritmos de dobramento e são descritos mais detalhadamente na seção a seguir.
Executar AlphaFold
Começamos executando uma previsão de estrutura AlphaFold com uma única sequência de proteína usando o SageMaker. A execução de um trabalho AlphaFold envolve três etapas simples, como pode ser visto em 01-run_stepbystep.ipynb
. Primeiro, construímos uma imagem de contêiner do Docker com base no AlphaFold dockerfile para que possamos também executar AlphaFold no SageMaker. Em segundo lugar, construímos o script run_alphafold.sh
que instrui como o AlphaFold deve ser executado. Em terceiro lugar, construímos e executamos um Avaliador do SageMaker com o script, o contêiner, tipo de instância, dados e configuração para o trabalho.
Imagem de contêiner
O requisito de tempo de execução para uma imagem de contêiner executar AlphaFold (também OpenFold) no SageMaker pode ser bastante simplificado com o Dockerfile do AlphaFold. Precisamos apenas adicionar um punhado de camadas simples na parte superior para instalar uma biblioteca Python específica do SageMaker para que um trabalho do SageMaker possa se comunicar com a imagem do contêiner. Veja o seguinte código:
script de entrada
Em seguida, fornecemos o script run_alphafold.sh
que corre run_alphafold.py do repositório AlphaFold que está atualmente colocado no contêiner /app/alphafold/run_alphafold.py
. Quando esse script for executado, a localização dos bancos de dados genéticos e a sequência FASTA de entrada serão preenchidas pelo SageMaker como variáveis de ambiente (SM_CHANNEL_GENETIC
e SM_CHANNEL_FASTA
, respectivamente). Para mais informações, consulte Configuração de dados de entrada.
Trabalho estimador
Em seguida, criamos um trabalho usando um estimador SageMaker com os seguintes argumentos de entrada chave, que instruem o SageMaker a executar um script específico usando um contêiner especificado com o tipo ou contagem de instância, sua opção de rede de escolha e outros parâmetros para o trabalho. vpc_subnet_ids
e security_group_ids
instrua o trabalho a ser executado dentro de uma VPC específica em que o sistema de arquivos FSx for Lustre está para que possamos montar e acessar o sistema de arquivos no trabalho do SageMaker. O caminho de saída refere-se a um local de depósito S3 onde o produto final do AlphaFold será carregado automaticamente no final de um trabalho bem-sucedido pelo SageMaker. Aqui também definimos um parâmetro DB_PRESET
, por exemplo, para serem transmitidos e acessados dentro run_alphafold.sh
como uma variável ambiental durante o tempo de execução. Veja o seguinte 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,
...)
Por fim, reunimos os dados e informamos ao trabalho onde eles estão. O fasta
o canal de dados é definido como uma entrada de dados do S3 que será baixada de um local do S3 para a instância de computação no início do trabalho. Isso permite grande flexibilidade para gerenciar e especificar a sequência de entrada. Por outro lado, o genetic
canal de dados é definido como um FileSystemInput
que será montado na instância no início do trabalho. O uso de um sistema de arquivos FSx for Lustre como uma forma de trazer cerca de 3 TB de dados evita o download repetido de dados de um depósito S3 para uma instância de computação. Nós chamamos o .fit
método para iniciar um trabalho 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
É isso. Acabamos de enviar um trabalho ao SageMaker para executar o AlphaFold. Os logs e a saída, incluindo os arquivos de previsão .pdb, serão gravados no Amazon S3.
Executar o OpenFold
A execução do OpenFold no SageMaker segue um padrão semelhante, conforme mostrado na segunda metade do 01-run_stepbystep.ipynb
. Primeiro adicionamos uma camada simples para obter a biblioteca específica do SageMaker para tornar a imagem do contêiner compatível com o SageMaker no topo do OpenFold dockerfile. Em segundo lugar, construímos um run_openfold.sh
como um ponto de entrada para o trabalho do SageMaker. Em run_openfold.sh
, executamos o run_pretrained_openfold.py do OpenFold, que é disponível na imagem do contêiner com os mesmos bancos de dados genéticos que baixamos para os pesos dos modelos AlphaFold e OpenFold (--openfold_checkpoint_path
). Em termos de localização dos dados de entrada, além do canal de bancos de dados genéticos e do canal FASTA, introduzimos um terceiro canal, SM_CHANNEL_PARAM
, para que possamos passar com flexibilidade os pesos do modelo de escolha da construção do estimador quando definimos e enviamos um trabalho. Com o estimador SageMaker, podemos facilmente enviar trabalhos com diferentes entry_point
, image_uri
, environment
, inputs
, e outras configurações para OpenFold com a mesma assinatura. Para o canal de dados, adicionamos um novo canal, param
, como uma entrada do Amazon S3 junto com o uso dos mesmos bancos de dados genéticos do sistema de arquivos FSx for Lustre e arquivo FASTA do Amazon S3. Isso, novamente, nos permite especificar facilmente o peso do modelo a ser usado na construção do trabalho. Veja o seguinte 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 acessar a saída final após a conclusão do trabalho, executamos os seguintes comandos:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Desempenho em tempo de execução
A tabela a seguir mostra a economia de custos de 57% e 51% para AlphaFold e OpenFold, respectivamente, dividindo o alinhamento MSA e os algoritmos de dobra em duas tarefas em comparação com uma única tarefa de computação. Ele nos permite dimensionar corretamente a computação para cada trabalho: ml.m5.4xlarge para alinhamento MSA e ml.g5.2xlarge para AlphaFold e OpenFold.
Detalhes do trabalho | Tipo de Instância | Sequência FASTA de entrada | Runtime | Custo |
Alinhamento MSA + OpenFold | ml.g5.4xgrande | T1030 | mins 50 | $1.69 |
Alinhamento MSA + AlphaFold | ml.g5.4xgrande | T1030 | mins 65 | $2.19 |
Alinhamento MSA | ml.m5.4xgrande | T1030 | mins 46 | $0.71 |
OpenFold | ml.g5.2xgrande | T1030 | mins 6 | $0.15 |
AlfaFold | ml.g5.2xgrande | T1030 | mins 21 | $0.53 |
Crie um fluxo de trabalho repetível usando o SageMaker Pipelines
Com o SageMaker Pipelines, podemos criar um fluxo de trabalho de ML que cuida do gerenciamento de dados entre as etapas, orquestrando suas execuções e registrando. O SageMaker Pipelines também nos fornece uma IU para visualizar nosso pipeline e executar facilmente nosso fluxo de trabalho de ML.
Um pipeline é criado combinando uma série de passos. Neste pipeline, combinamos três etapas de treinamento, que exigem um estimador do SageMaker. Os estimadores definidos neste caderno são muito semelhantes aos definidos em 01-run_stepbystep.ipynb
, com a exceção de que usamos localizações do Amazon S3 para apontar para nossas entradas e saídas. As variáveis dinâmicas permitem que o SageMaker Pipelines execute etapas uma após a outra e também permite que o usuário repita as etapas com falha. A captura de tela a seguir mostra um gráfico acíclico direcionado (DAG), que fornece informações sobre os requisitos e as relações entre cada etapa do nosso pipeline.
Variáveis dinâmicas
O SageMaker Pipelines é capaz de receber entradas do usuário no início de cada execução do pipeline. Definimos as seguintes variáveis dinâmicas, que gostaríamos de mudar durante cada experimento:
- FastaInputS3URI – Amazon S3 URI do arquivo FASTA carregado via SDK, Boto3 ou manualmente.
- FastFileName – Nome do arquivo FASTA.
- db_preset – Seleção entre
full_dbs
orreduced_dbs
. - MaxTemplateDate – A etapa MSA do AlphaFold buscará os modelos disponíveis antes da data especificada por este parâmetro.
- ModeloPredefinido – Selecione entre os modelos AlphaFold, incluindo
monomer
,monomer_casp14
,monomer_ptm
emultimer
. - NumMultimerPrevisõesPorModelo – Número de sementes a serem executadas por modelo ao usar o sistema multímero.
- Tipo de instância de inferência – Tipo de instância a ser usado para etapas de inferência (tanto AlphaFold quanto OpenFold). O valor padrão é ml.g5.2xlarge.
- MSAInstanceType – Tipo de instância a ser usado para a etapa MSA. O valor padrão é ml.m5.4xlarge.
Veja o seguinte 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')
Um pipeline do SageMaker é construído definindo uma série de etapas e, em seguida, encadeando-as em uma ordem específica em que a saída de uma etapa anterior se torna a entrada da próxima etapa. As etapas podem ser executadas em paralelo e definidas para ter uma dependência de uma etapa anterior. Neste pipeline, definimos uma etapa MSA, que é a dependência para uma etapa de inferência AlphaFold e uma etapa de inferência OpenFold executadas em paralelo. Veja o seguinte 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 juntar todas as etapas, chamamos o Pipeline
class e forneça um nome de pipeline, variáveis de entrada de pipeline e as etapas individuais:
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')
Executar o pipeline
Na última célula do notebook 02-define_pipeline.ipynb
, mostramos como executar um pipeline usando o SageMaker SDK. As variáveis dinâmicas que descrevemos anteriormente são fornecidas da seguinte forma:
!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
)
Acompanhe experimentos e compare estruturas de proteínas
Para nosso experimento, usamos um exemplo de sequência de proteína do CASP14 competição, que fornece um mecanismo independente para a avaliação de métodos de modelagem da estrutura da proteína. O alvo T1030 é derivado da proteína PDB 6P00 e possui 237 aminoácidos na sequência primária. Executamos o pipeline do SageMaker para prever a estrutura da proteína dessa sequência de entrada com os algoritmos OpenFold e AlphaFold.
Quando o pipeline estiver concluído, baixamos os arquivos .pdb previstos de cada trabalho de dobra e visualizamos a estrutura no notebook usando py3Dmol, como no caderno 04-compare_alphafold_openfold.ipynb
.
A captura de tela a seguir mostra a previsão do trabalho de previsão AlphaFold.
A estrutura prevista é comparada com sua estrutura de referência de base conhecida com código PDB 6 poo arquivado em RCSB. Analisamos o desempenho da previsão em relação ao código PDB base 6poo com três métricas: RMSD, RMSD com superposição e pontuação de modelagem de modelo, conforme descrito em Comparando estruturas.
. | Sequência de entrada | Comparação com | RMSD | RMSD com superposição | Pontuação de modelagem de modelo |
AlfaFold | T1030 | 6 poo | 247.26 | 3.87 | 0.3515 |
Os algoritmos de dobramento agora são comparados entre si para várias sequências FASTA: T1030, T1090 e T1076. Novas sequências de destino podem não ter a estrutura pdb base em bancos de dados de referência e, portanto, é útil comparar a variabilidade entre os algoritmos de dobramento.
. | Sequência de entrada | Comparação com | RMSD | RMSD com superposição | Pontuação de modelagem de modelo |
AlfaFold | T1030 | OpenFold | 73.21 | 24.8 | 0.0018 |
AlfaFold | T1076 | OpenFold | 38.71 | 28.87 | 0.0047 |
AlfaFold | T1090 | OpenFold | 30.03 | 20.45 | 0.005 |
A captura de tela a seguir mostra as execuções de ProteinFoldWorkflow
para as três sequências de entrada FASTA com SageMaker Pipeline:
Também registramos as métricas com experimentos do SageMaker como novas execuções do mesmo experimento criado pelo 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)
Em seguida, analisamos e visualizamos essas execuções no Experimentos página no SageMaker Studio.
O gráfico a seguir mostra o valor RMSD entre AlphaFold e OpenFold para as três sequências: T1030, T1076 e T1090.
Conclusão
Nesta postagem, descrevemos como você pode usar o SageMaker Pipelines para configurar e executar fluxos de trabalho de dobramento de proteínas com dois algoritmos populares de previsão de estrutura: AlphaFold2 e OpenFold. Demonstramos uma arquitetura de solução de alto desempenho de vários trabalhos que separa os requisitos de computação para geração de MSA da previsão de estrutura. Também destacamos como você pode visualizar, avaliar e comparar estruturas 3D previstas de proteínas no SageMaker Studio.
Para começar com os fluxos de trabalho de dobramento de proteínas no SageMaker, consulte o código de exemplo no GitHub repo.
Sobre os autores
Michael Hsieh é o principal arquiteto de soluções especializado em IA/ML. Ele trabalha com clientes da HCLS para avançar em sua jornada de ML com tecnologias da AWS e sua experiência em imagens médicas. Como um transplante de Seattle, ele adora explorar a grande mãe natureza que a cidade tem a oferecer, como trilhas para caminhadas, passeios de caiaque no SLU e o pôr do sol na Baía de Shilshole.
Shivam Patel é arquiteto de soluções da AWS. Ele tem experiência em P&D e combina isso com seu conhecimento de negócios para resolver problemas complexos enfrentados por seus clientes. Shivam é mais apaixonado por cargas de trabalho em aprendizado de máquina, robótica, IoT e computação de alto desempenho.
Hasan Poonawala é arquiteto de soluções especialista em IA/ML sênior na AWS, Hasan ajuda os clientes a projetar e implantar aplicativos de aprendizado de máquina em produção na AWS. Ele tem mais de 12 anos de experiência de trabalho como cientista de dados, praticante de aprendizado de máquina e desenvolvedor de software. Em seu tempo livre, Hasan adora explorar a natureza e passar tempo com amigos e familiares.
Jasleen Grewal é cientista aplicada sênior na Amazon Web Services, onde trabalha com clientes da AWS para resolver problemas do mundo real usando aprendizado de máquina, com foco especial em medicina de precisão e genômica. Ela tem uma sólida experiência em bioinformática, oncologia e genômica clínica. Ela é apaixonada por usar AI/ML e serviços em nuvem para melhorar o atendimento ao paciente.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Automotivo / EVs, Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- BlockOffsets. Modernizando a Propriedade de Compensação Ambiental. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- Sobre
- AC
- acelerar
- Acesso
- acessadas
- precisão
- preciso
- acíclico
- adicionar
- adotado
- avançar
- avanços
- afetando
- Depois de
- novamente
- contra
- AI / ML
- algoritmo
- algoritmos
- alinhamento
- Todos os Produtos
- permitir
- permite
- juntamente
- tb
- Amazon
- Amazon Sage Maker
- Estúdio Amazon SageMaker
- Amazon Web Services
- an
- análise
- analisar
- e
- Outro
- qualquer
- aplicações
- aplicado
- arquitetura
- SOMOS
- ÁREA
- argumentos
- AS
- avaliação
- At
- automaticamente
- disponível
- média
- longe
- AWS
- em caminho duplo
- fundo
- base
- baseado
- Bay
- BE
- Porque
- torna-se
- antes
- Começo
- ser
- além de
- MELHOR
- Melhor
- entre
- bilhão
- bilhões
- biomédica
- biofarma
- Blocos
- corpo
- ambos
- trazer
- Trazendo
- amplo
- construir
- Prédio
- negócio
- by
- chamada
- chamado
- CAN
- candidato
- candidatos
- capacidades
- capaz
- Cuidado
- alterar
- Canal
- de cores
- escolha
- Cidades
- classe
- Clínico
- Fechar
- Na nuvem
- serviços na nuvem
- Agrupar
- código
- base de código
- códigos
- colaborar
- combinar
- combina
- vem
- comercial
- comum
- comunicar
- comparar
- comparado
- comparação
- compatível
- competição
- completar
- Efetuado
- Completa
- integrações
- componente
- componentes
- Compound
- computação
- Computar
- computação
- Configuração
- construir
- formação
- Recipiente
- contém
- Custo
- economia de custos
- custos
- Casal
- crio
- criado
- Atualmente
- personalizadas
- Clientes
- DAG
- dados,
- gestão de dados
- informática
- cientista de dados
- banco de dados
- bases de dados
- Data
- profundo
- deep learning
- Padrão
- definir
- definido
- definição
- demonstrar
- demonstraram
- Dependência
- implantar
- Derivado
- descrito
- Design
- projetado
- desejado
- detalhado
- Determinar
- determina
- Developer
- Desenvolvimento
- diferente
- difícil
- descoberta
- discutir
- Doença
- Diversidade
- dividido
- Estivador
- down
- download
- droga
- Drogas
- durante
- dinâmico
- cada
- Mais cedo
- facilmente
- Eficaz
- ou
- permitir
- final
- entidades
- entrada
- Meio Ambiente
- ambiental
- avaliar
- eventual
- Cada
- exemplo
- exceção
- executado
- execução
- existente
- caro
- vasta experiência
- experimentar
- experimentos
- experiência
- explicação
- explorar
- Explorando
- enfrentou
- fracassado
- família
- Característica
- Funcionalidades
- Envie o
- Arquivos
- final
- Finalmente
- Primeiro nome
- primeira vez
- caber
- Flexibilidade
- flexivelmente
- Foco
- seguir
- seguinte
- segue
- Escolha
- formato
- amigos
- da
- cheio
- totalmente
- funcional
- mais distante
- reunir
- gera
- geração
- genómica
- ter
- dado
- Go
- GPU
- gráfico
- ótimo
- grandemente
- Metade
- mão
- punhado
- prejudicar
- Ter
- he
- pesado
- ajudar
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- de alto nível
- alta performance
- alta qualidade
- superior
- mais
- Destaque
- sua
- hospedagem
- HORÁRIO
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- Centenas
- identificação
- identificar
- inativo
- if
- ilustra
- imagem
- imagens
- Imagiologia
- implementação
- importar
- melhorar
- melhorias
- in
- incluir
- inclui
- Incluindo
- incorporar
- de treinadores em Entrevista Motivacional
- Individual
- INFORMAÇÕES
- Infraestrutura
- entrada
- inputs
- dentro
- instalar
- instância
- interativo
- interage
- Interface
- para dentro
- introduzir
- iot
- IT
- ESTÁ
- Trabalho
- Empregos
- viagem
- jpg
- apenas por
- manteve
- Chave
- chutar
- Saber
- Conhecimento
- conhecido
- Sobrenome
- Latência
- mais recente
- lançamento
- camada
- camadas
- Leads
- aprendizagem
- mínimo
- deixar
- Nível
- Biblioteca
- vida
- como
- probabilidade
- linhas
- Links
- localmente
- localização
- locais
- log
- logging
- longo
- ama
- diminuir
- menor
- máquina
- aprendizado de máquina
- fazer
- gerencia
- gerenciados
- de grupos
- gestão
- manualmente
- Posso..
- McKinsey
- mecanismo
- médico
- medicina
- metadados
- método
- métodos
- Métrica
- milhões
- ML
- Moda
- modelo
- modelagem
- modelos
- Monitore
- monitoração
- mais
- a maioria
- mãe
- MONTE
- muito
- múltiplo
- nome
- Natureza
- você merece...
- necessitando
- networking
- redes
- redes neurais
- Novo
- novo alvo
- Próximo
- NIH
- notavelmente
- caderno
- agora
- número
- of
- WOW!
- oferecer
- Oferece
- OK
- on
- Sob demanda
- ONE
- só
- para
- operação
- ideal
- Otimize
- Opção
- or
- ordem
- Outros
- A Nossa
- saída
- Acima de
- página
- Paralelo
- parâmetro
- parâmetros
- parte
- particular
- Parceiros
- passar
- passou
- apaixonado
- caminho
- paciente
- pacientes
- padrão
- para
- atuação
- oleoduto
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- Popular
- populosa
- Publique
- preciso
- Precisão
- predizer
- previsto
- prevendo
- predição
- Previsões
- Preparar
- pré-requisitos
- presente
- anterior
- preço
- primário
- Diretor
- Prévio
- priorização
- Problema
- problemas
- processo
- processos
- em processamento
- Produto
- Produção
- Agenda
- Progresso
- promessa
- adequado
- Proteína
- Proteínas
- fornecer
- fornecido
- fornece
- colocar
- Python
- rapidamente
- R & D
- reais
- mundo real
- recentemente
- refere-se
- regiões
- Relacionamentos
- permanecem
- notável
- Repetivel
- REPETIDAMENTE
- repositório
- representado
- representando
- requerer
- requeridos
- requerimento
- Requisitos
- pesquisa
- pesquisadores
- Recursos
- respectivamente
- resultando
- Resultados
- robótica
- Execute
- corrida
- é executado
- s
- sábio
- Pipelines SageMaker
- mesmo
- poupança
- Poupança
- AMPLIAR
- escalável
- Escala
- Ciência
- Cientista
- cientistas
- Ponto
- peneiramento
- Scripts
- Sdk
- Pesquisar
- Seattle
- Segundo
- Seção
- Vejo
- SEEDS
- visto
- doadores,
- senior
- Seqüência
- Série
- serviço
- Serviços
- conjunto
- Conjuntos
- contexto
- instalação
- vários
- ela
- rede de apoio social
- mostrar
- mostrando
- Shows
- Encerre
- periodo
- semelhante
- simples
- simplificada
- solteiro
- So
- Software
- solução
- Soluções
- RESOLVER
- fonte
- especial
- especialista
- específico
- especificamente
- especificidade
- especificada
- Espectroscopia
- gastar
- Etapa
- começo
- começado
- Comece
- começa
- Status
- Passo
- Passos
- armazenamento
- armazenadas
- simplificada
- mais forte,
- estrutural
- estrutura
- estudo
- submissão
- enviar
- apresentado
- bem sucedido
- tal
- adequado
- pôr do sol
- sobreposição
- suportes
- .
- sistemas
- mesa
- Tire
- toma
- tomar
- Target
- tem como alvo
- equipes
- Tecnologias
- modelo
- modelos
- condições
- ensaio
- que
- A
- A fonte
- deles
- Eles
- então
- assim sendo
- Este
- deles
- Terceiro
- isto
- aqueles
- milhares
- três
- Através da
- Taxa de transferência
- tempo
- demorado
- para
- juntos
- ferramentas
- topo
- Rastreabilidade
- pista
- tradicional
- Trem
- treinado
- Training
- transformador
- verdadeiro
- dois
- tipo
- típico
- tipicamente
- ui
- compreender
- compreensão
- infelizmente
- desconhecido
- Atualizada
- carregado
- us
- usar
- usava
- Utilizador
- Experiência do Usuário
- Interface de Usuário
- usuários
- usos
- utilização
- validação
- valor
- variedade
- vário
- muito
- via
- visualização
- foi
- Caminho..
- we
- web
- serviços web
- Web-Based
- peso
- BEM
- quando
- qual
- enquanto
- Wikipedia
- precisarão
- de
- dentro
- sem
- Atividades:
- de gestão de documentos
- fluxos de trabalho
- trabalho
- mundo
- seria
- escrito
- x-ray
- anos
- Vocês
- investimentos
- zefirnet