약물 개발은 수천 개의 약물 후보를 스크리닝하고 전산 또는 실험 방법을 사용하여 리드를 평가하는 복잡하고 긴 과정입니다. 맥킨지에 따르면, 단일 약물은 질병 표적 식별, 약물 스크리닝, 약물 표적 검증 및 궁극적인 상업적 출시를 거치는 데 10년이 걸리고 평균 2.6억 달러의 비용이 소요될 수 있습니다. 약물 발견은 환자에게 최소한의 피해를 주면서 효과적일 가능성이 가장 높은 후보 약물을 생성하는 이 파이프라인의 연구 구성 요소입니다. 기계 학습(ML) 방법은 약물 발견 프로세스의 각 단계에서 적절한 화합물을 식별하는 데 도움이 될 수 있으므로 약물 우선 순위 지정 및 테스트가 보다 간소화되어 약물 개발 비용을 수십억 달러 절약할 수 있습니다(자세한 내용은 다음 참조). 바이오 제약 연구의 AI: 집중하고 확장할 시간).
약물 표적은 일반적으로 단백질, 삶의 빌딩 블록. 단백질의 3D 구조는 약물 화합물과 상호 작용하는 방식을 결정합니다. 따라서 단백질 3D 구조를 이해하면 표적 단백질 구조에 더 잘 맞는 약물 화합물을 스크리닝하여 약물 개발 프로세스를 크게 개선할 수 있습니다. 단백질 구조 예측이 유용할 수 있는 또 다른 영역은 단백질의 다양성을 이해하여 신체의 다른 단백질에 영향을 미치지 않고 특정 단백질을 선택적으로 표적으로 하는 약물만 선택하는 것입니다(자세한 내용은 생물의학 연구에서 목표 평가 개선: GOT-IT 권장 사항). 표적 단백질의 정확한 3D 구조는 다른 단백질과의 교차 상호 작용 가능성이 낮고 특이성이 높은 약물 설계를 가능하게 합니다.
그러나 단백질이 3D 구조로 접히는 방식을 예측하는 것은 어려운 문제이며 X선 결정학 및 NMR 분광법과 같은 전통적인 실험 방법은 시간과 비용이 많이 소요될 수 있습니다. 단백질 연구를 위한 심층 학습 방법의 최근 발전은 신경망을 사용하여 놀라운 정확도로 단백질 폴딩을 예측할 수 있는 가능성을 보여주었습니다. 다음과 같은 폴딩 알고리즘 알파폴드2, 에스엠폴드, 오픈폴드및 RoseTTA폴드 단백질 구조의 정확한 모델을 신속하게 구축하는 데 사용할 수 있습니다. 불행하게도 이러한 모델은 실행하는 데 계산 비용이 많이 들고 수천 개의 후보 단백질 구조 규모에서 결과를 비교하기가 번거로울 수 있습니다. 이러한 다양한 도구를 사용하기 위한 확장 가능한 솔루션을 통해 연구자와 상업 R&D 팀은 단백질 구조 예측의 최신 기술을 신속하게 통합하고 실험 프로세스를 관리하며 연구 파트너와 협력할 수 있습니다.
아마존 세이지 메이커 ML용으로 특별히 제작된 광범위한 기능 집합을 통합하여 고품질 ML 모델을 신속하게 준비, 구축, 교육 및 배포하는 완전 관리형 서비스입니다. ML을 위한 완전 관리형 환경을 제공하여 인프라, 데이터 관리 및 확장성 요구 사항을 추상화하므로 모델 구축, 교육 및 테스트에 집중할 수 있습니다.
이 게시물에서는 단백질 폴딩 구조 예측 워크플로우의 작동을 간소화하는 SageMaker를 사용한 완전 관리형 ML 솔루션을 소개합니다. 먼저 높은 수준의 솔루션과 사용자 경험에 대해 논의합니다. 다음으로 SageMaker를 사용하여 AlphaFold2 및 OpenFold의 컴퓨팅 최적화 워크플로를 쉽게 설정하는 방법을 안내합니다. 마지막으로 일반적인 분석의 일부로 단백질 구조 예측을 추적하고 비교하는 방법을 보여줍니다. 이 솔루션의 코드는 다음에서 사용할 수 있습니다. GitHub 저장소.
솔루션 개요
이 솔루션에서 과학자들은 대화식으로 단백질 폴딩 실험을 시작하고, 3D 구조를 분석하고, 작업 진행 상황을 모니터링하고, 아마존 세이지 메이커 스튜디오.
다음 스크린샷은 Amazon SageMaker Studio를 사용한 단백질 폴딩 워크플로의 단일 실행을 보여줍니다. 여기에는 노트북의 3D 구조 시각화, 워크플로우에서 SageMaker 작업의 실행 상태, 입력 매개변수와 출력 데이터 및 로그에 대한 링크가 포함됩니다.
다음 다이어그램은 높은 수준의 솔루션 아키텍처를 보여줍니다.
아키텍처를 이해하기 위해 먼저 단백질 폴딩 실험의 핵심 구성 요소를 다음과 같이 정의합니다.
- FASTA 표적 서열 파일 - FASTA 형식 뉴클레오티드 또는 아미노산이 단일 문자 코드를 사용하여 표시되는 뉴클레오티드 시퀀스 또는 아미노산(단백질) 시퀀스를 나타내는 텍스트 기반 형식입니다.
- 유전자 데이터베이스 – 유전자 데이터베이스는 사용자가 유전자 데이터를 검색할 수 있도록 소프트웨어와 함께 저장된 하나 이상의 유전자 데이터 세트입니다. 다음과 같은 AlphaFold 및 OpenFold 알고리즘을 실행하려면 여러 유전자 데이터베이스가 필요합니다. BFD, 엠그니파이, PDB70, PDB, PDB 시퀀스, UniRef30(FKA UniClust30), 유니프로트및 유니레프90.
- 다중 서열 정렬(MSA) - A 서열 정렬 서열 사이의 기능적, 구조적 또는 진화적 관계의 결과일 수 있는 유사성 영역을 식별하기 위해 단백질의 XNUMX차 서열을 배열하는 방법입니다. 예측을 위한 입력 기능에는 MSA 데이터가 포함됩니다.
- 단백질 구조 예측 – 입력 대상 시퀀스의 구조는 다음과 같은 폴딩 알고리즘으로 예측됩니다. 알파폴드2 및 오픈폴드 알려진 단백질 템플릿에 대해 훈련된 다중 트랙 변환기 아키텍처를 사용합니다.
- 시각화 및 지표 – 3D 구조를 시각화하여 py3Dmol 대화형 3D 시각화로서의 라이브러리. 메트릭을 사용하여 구조 예측을 평가하고 비교할 수 있습니다. 제곱 평균 제곱근 편차 (RMSD) 및 템플릿 모델링 점수 (TM 점수)
워크 플로에는 다음 단계가 포함됩니다.
- 과학자들은 웹 기반 SageMaker ML IDE를 사용하여 코드 베이스를 탐색하고, SageMaker Studio 노트북에서 단백질 서열 분석 워크플로를 구축하고, SageMaker Studio 또는 SageMaker SDK의 그래픽 사용자 인터페이스를 통해 단백질 폴딩 파이프라인을 실행합니다.
- AlphaFold 및 OpenFold에 필요한 유전 및 구조 데이터베이스는 다음을 사용하여 파이프라인 설정 전에 다운로드됩니다. Amazon SageMaker 처리, ML 데이터 처리를 위한 임시 컴퓨팅 기능을 아마존 단순 스토리지 서비스 (Amazon S3) 버킷. SageMaker Processing을 사용하면 컴퓨팅 클러스터 및 스토리지를 설정하지 않고 클러스터를 종료할 필요 없이 적절한 컴퓨팅으로 장기 실행 작업을 실행할 수 있습니다. 데이터는 지정된 S3 버킷 위치에 자동으로 저장됩니다.
- An Luster 용 Amazon FSx 파일 시스템이 설정되고 데이터 리포지토리는 데이터베이스가 저장되는 S3 버킷 위치가 됩니다. FSx for Lustre는 대기 시간이 짧은 파일 검색을 통해 수백 GB/s의 처리량과 수백만 IOPS로 확장할 수 있습니다. 추정기 작업을 시작할 때 SageMaker는 FSx for Lustre 파일 시스템을 인스턴스 파일 시스템에 마운트한 다음 스크립트를 시작합니다.
- Amazon SageMaker 파이프 라인 단백질 폴딩 알고리즘의 여러 실행을 조율하는 데 사용됩니다. SageMaker Pipelines는 대화형 작업 제출, 진행 추적 가능성 및 반복성을 위해 원하는 시각적 인터페이스를 제공합니다.
- 파이프라인 내에서 연산량이 많은 2개의 단백질 폴딩 알고리즘(AlphaFold 및 OpenFold)이 SageMaker 추정기와 함께 실행됩니다. 이 구성은 알고리즘에서 처리량이 높은 데이터베이스 검색을 위해 FSx for Lustre 파일 시스템의 마운트를 지원합니다. 단일 추론 실행은 최적의 CPU 인스턴스를 사용하는 MSA 구성 단계와 GPU 인스턴스를 사용하는 구조 예측 단계의 두 단계로 나뉩니다. 3단계의 SageMaker 처리와 같은 이러한 하위 단계는 일시적이고 주문형이며 완전히 관리됩니다. MSA 파일, 예측된 pdb 구조 파일 및 기타 메타데이터 파일과 같은 작업 출력은 지정된 SXNUMX 위치에 저장됩니다. 단일 단백질 폴딩 알고리즘을 실행하거나 일반적인 MSA 구성 후 AlphaFold와 OpenFold를 모두 실행하도록 파이프라인을 설계할 수 있습니다.
- 단백질 폴딩 예측 실행은 다음에 의해 자동으로 추적됩니다. Amazon SageMaker 실험 추가 분석 및 비교를 위해. 작업 로그는 다음 위치에 보관됩니다. 아마존 클라우드 워치 모니터링을 위해.
사전 조건
이 게시물을 따르고 이 솔루션을 실행하려면 몇 가지 전제 조건을 완료해야 합니다. 참조 GitHub 저장소 각 단계에 대한 자세한 설명은 .
SageMaker에서 단백질 폴딩 실행
우리는 SageMaker의 완전 관리형 기능을 사용하여 많은 인프라 오버헤드 없이 계산적으로 많은 단백질 폴딩 작업을 실행합니다. SageMaker는 컨테이너 이미지를 사용하여 일반 데이터 처리, 교육 및 호스팅을 위한 사용자 지정 스크립트를 실행합니다. 몇 줄의 컨테이너 이미지로 프로그램을 실행하는 주문형 임시 작업을 쉽게 시작할 수 있습니다. 세이지메이커 SDK 컴퓨팅 인프라를 자체 관리하지 않고 특히 SageMaker 추정기 작업은 컨테이너 이미지 선택, 스크립트 실행 및 인스턴스 구성과 관련하여 유연성을 제공하고 다양한 스토리지 옵션, Lustre용 FSx와 같은 파일 시스템 포함. 다음 다이어그램은 이 아키텍처를 보여줍니다.
AlphaFold 및 OpenFold와 같은 폴딩 알고리즘은 알려진 단백질 템플릿에서 훈련된 멀티트랙 변환기 아키텍처를 사용하여 알려지지 않은 펩타이드 서열의 구조를 예측합니다. 이러한 예측은 GPU 인스턴스에서 실행되어 최상의 처리량과 최저 대기 시간을 제공할 수 있습니다. 그러나 이러한 예측에 대한 입력 기능에는 MSA 데이터가 포함됩니다. MSA 알고리즘은 CPU에 따라 다르며 몇 시간의 처리 시간이 필요할 수 있습니다.
동일한 컴퓨팅 환경에서 MSA 및 구조 예측 단계를 모두 실행하는 것은 MSA 단계가 실행되는 동안 값비싼 GPU 리소스가 유휴 상태로 유지되기 때문에 비용 효율적일 수 있습니다. 따라서 워크플로를 두 단계로 최적화합니다. 먼저 CPU 인스턴스에서 SageMaker 추정기 작업을 실행하여 특정 FASTA 입력 시퀀스 및 소스 유전자 데이터베이스가 주어진 MSA 정렬을 계산합니다. 그런 다음 GPU 인스턴스에서 SageMaker 추정기 작업을 실행하여 지정된 입력 MSA 정렬 및 AlphaFold 또는 OpenFold와 같은 폴딩 알고리즘으로 단백질 구조를 예측합니다.
MSA 생성 실행
MSA 계산을 위해 맞춤형 스크립트를 포함합니다. run_create_alignment.sh
및 create_alignments.py
기존 AlphaFold 예측 소스에서 채택된 스크립트 run_alphafold.py. 소스 AlphaFold 코드가 업데이트되면 이 스크립트를 업데이트해야 할 수도 있습니다. 사용자 지정 스크립트는 다음을 통해 SageMaker 추정기에 제공됩니다. 스크립트 모드. 컨테이너 이미지의 주요 구성 요소, 스크립트 모드 구현 및 SageMaker 추정기 작업 설정도 접기 알고리즘을 실행하는 다음 단계의 일부이며 다음 섹션에서 자세히 설명합니다.
알파폴드 실행
SageMaker를 사용하여 단일 단백질 서열로 AlphaFold 구조 예측을 실행하여 시작합니다. AlphaFold 작업을 실행하려면 다음에서 볼 수 있듯이 세 가지 간단한 단계가 필요합니다. 01-run_stepbystep.ipynb
. 먼저 AlphaFold를 기반으로 Docker 컨테이너 이미지를 빌드합니다. 도커 파일 우리도 할 수 있도록 알파폴드 실행 SageMaker에서. 둘째, 스크립트를 구성합니다. run_alphafold.sh
AlphaFold를 실행하는 방법을 지시합니다. 셋째, 우리는 SageMaker 추정기 스크립트, 컨테이너, 인스턴스 유형, 데이터 및 작업 구성.
컨테이너 이미지
SageMaker에서 AlphaFold(OpenFold도 가능)를 실행하기 위한 컨테이너 이미지의 런타임 요구 사항은 AlphaFold의 Dockerfile을 사용하여 크게 간소화할 수 있습니다. SageMaker 작업이 컨테이너 이미지와 통신할 수 있도록 SageMaker 관련 Python 라이브러리를 설치하기 위해 몇 가지 간단한 계층만 추가하면 됩니다. 다음 코드를 참조하십시오.
입력 스크립트
그런 다음 스크립트를 제공합니다. run_alphafold.sh
실행 run_alphafold.py 현재 컨테이너에 배치된 AlphaFold 리포지토리에서 /app/alphafold/run_alphafold.py
. 이 스크립트가 실행되면 유전자 데이터베이스의 위치와 입력 FASTA 시퀀스가 SageMaker에 의해 환경 변수로 채워집니다(SM_CHANNEL_GENETIC
및 SM_CHANNEL_FASTA
, 각각). 자세한 내용은 다음을 참조하십시오. 입력 데이터 구성.
추정기 작업
다음으로 다음 주요 입력 인수와 함께 SageMaker 추정기를 사용하여 작업을 생성합니다. 이 인수는 SageMaker가 인스턴스 유형 또는 개수, 선택한 네트워킹 옵션 및 작업에 대한 기타 매개변수와 함께 지정된 컨테이너를 사용하여 특정 스크립트를 실행하도록 지시합니다. vpc_subnet_ids
및 security_group_ids
SageMaker 작업에서 파일 시스템을 마운트하고 액세스할 수 있도록 FSx for Lustre 파일 시스템이 있는 특정 VPC 내에서 작업을 실행하도록 지시합니다. 출력 경로는 SageMaker의 성공적인 작업 종료 시 AlphaFold의 최종 제품이 자동으로 업로드되는 S3 버킷 위치를 나타냅니다. 여기서도 매개변수를 설정합니다. DB_PRESET
, 예를 들어 다음 내에서 전달되고 액세스됩니다. run_alphafold.sh
런타임 동안 환경 변수로. 다음 코드를 참조하십시오.
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,
...)
마지막으로 데이터를 수집하고 작업에 데이터가 있는 위치를 알립니다. 그만큼 fasta
데이터 채널은 작업 시작 시 S3 위치에서 컴퓨팅 인스턴스로 다운로드되는 S3 데이터 입력으로 정의됩니다. 이것은 입력 시퀀스를 관리하고 지정하는 데 큰 유연성을 허용합니다. 한편, genetic
데이터 채널은 다음과 같이 정의됩니다. FileSystemInput
작업 시작 시 인스턴스에 마운트됩니다. 3TB에 가까운 데이터를 가져오는 방법으로 FSx for Lustre 파일 시스템을 사용하면 S3 버킷에서 컴퓨팅 인스턴스로 데이터를 반복적으로 다운로드하는 것을 방지할 수 있습니다. 우리는 .fit
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
그게 다야. AlphaFold를 실행하기 위해 SageMaker에 작업을 제출했습니다. .pdb 예측 파일을 포함한 로그 및 출력은 Amazon S3에 기록됩니다.
오픈폴드 실행
SageMaker에서 OpenFold를 실행하는 것은 유사한 패턴을 따릅니다. 01-run_stepbystep.ipynb
. 먼저 컨테이너 이미지 SageMaker가 OpenFold의 상단에서 호환되도록 하기 위해 SageMaker 관련 라이브러리를 가져오는 간단한 계층을 추가합니다. 도커 파일. 둘째, 우리는 run_openfold.sh
SageMaker 작업의 진입점으로 사용합니다. ~ 안에 run_openfold.sh
우리는 run_pretrained_openfold.py OpenFold에서 컨테이너 이미지에서 사용 가능 AlphaFold 및 OpenFold의 모델 가중치용으로 다운로드한 동일한 유전자 데이터베이스를 사용하여(--openfold_checkpoint_path
). 입력 데이터 위치 측면에서 유전자 데이터베이스 채널과 FASTA 채널 외에 세 번째 채널을 소개합니다. SM_CHANNEL_PARAM
, 작업을 정의하고 제출할 때 추정기 구성에서 선택한 모델 가중치를 유연하게 전달할 수 있습니다. SageMaker 추정기를 사용하면 다양한 작업을 쉽게 제출할 수 있습니다. entry_point
, image_uri
, environment
, inputs
, 및 동일한 서명을 가진 OpenFold에 대한 기타 구성. 데이터 채널의 경우 새 채널을 추가하고 param
, FSx for Lustre 파일 시스템의 동일한 유전자 데이터베이스와 Amazon S3의 FASTA 파일 사용과 함께 Amazon S3 입력으로. 이를 통해 작업 구성에서 사용할 모델 가중치를 쉽게 지정할 수 있습니다. 다음 코드를 참조하십시오.
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)
작업이 완료된 후 최종 출력에 액세스하려면 다음 명령을 실행합니다.
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
런타임 성능
다음 표는 MSA 정렬 및 접기 알고리즘을 단일 컴퓨팅 작업과 비교하여 두 작업으로 분할하여 AlphaFold 및 OpenFold에서 각각 57% 및 51%의 비용 절감을 보여줍니다. 이를 통해 MSA 정렬을 위한 ml.m5.4xlarge 및 AlphaFold 및 OpenFold를 위한 ml.g5.2xlarge와 같이 각 작업에 대한 컴퓨팅 크기를 적절하게 조정할 수 있습니다.
작업 세부 정보 | 인스턴스 유형 | FASTA 시퀀스 입력 | 런타임 | 비용 |
MSA 정렬 + OpenFold | ml.g5.4xlarge | T1030 | 50의 분 | $1.69 |
MSA 정렬 + AlphaFold | ml.g5.4xlarge | T1030 | 65의 분 | $2.19 |
MSA 정렬 | ml.m5.4xlarge | T1030 | 46의 분 | $0.71 |
오픈폴드 | ml.g5.2xlarge | T1030 | 6의 분 | $0.15 |
알파 폴드 | ml.g5.2xlarge | T1030 | 21의 분 | $0.53 |
SageMaker Pipelines를 사용하여 반복 가능한 워크플로 구축
SageMaker Pipelines를 사용하면 단계 간 데이터 관리, 실행 조정 및 로깅을 처리하는 ML 워크플로를 생성할 수 있습니다. SageMaker Pipelines는 파이프라인을 시각화하고 ML 워크플로를 쉽게 실행할 수 있는 UI도 제공합니다.
파이프라인은 여러 가지를 결합하여 생성됩니다. 단계. 이 파이프라인에서는 세 가지를 결합합니다. 훈련 단계, SageMaker 추정기가 필요합니다. 이 노트북에 정의된 추정량은 다음에 정의된 추정량과 매우 유사합니다. 01-run_stepbystep.ipynb
단, Amazon S3 위치를 사용하여 입력과 출력을 가리킨다는 점은 예외입니다. 동적 변수를 사용하면 SageMaker Pipelines가 단계를 하나씩 실행하고 사용자가 실패한 단계를 재시도할 수 있습니다. 다음 스크린샷은 파이프라인의 각 단계에 대한 요구 사항 및 관계에 대한 정보를 제공하는 방향성 비순환 그래프(DAG)를 보여줍니다.
동적 변수
SageMaker Pipelines는 모든 파이프라인 실행 시작 시 사용자 입력을 받을 수 있습니다. 각 실험 중에 변경하려는 다음 동적 변수를 정의합니다.
- FastaInputS3URI – SDK, Boto3를 통해 또는 수동으로 업로드된 FASTA 파일의 Amazon S3 URI.
- 빠른 파일 이름 – FASTA 파일의 이름.
- db_preset – 중에서 선택
full_dbs
orreduced_dbs
. - 최대 템플릿 날짜 – AlphaFold의 MSA 단계는 이 매개변수로 지정된 날짜 이전에 사용 가능한 템플릿을 검색합니다.
- 모델 사전 설정 – 다음을 포함한 AlphaFold 모델 중에서 선택합니다.
monomer
,monomer_casp14
,monomer_ptm
및multimer
. - NumMultimerPredictionsPerModel – 멀티머 시스템을 사용할 때 모델당 실행할 시드 수.
- 추론 인스턴스 유형 – 추론 단계에 사용할 인스턴스 유형(AlphaFold 및 OpenFold 모두). 기본값은 ml.g5.2xlarge입니다.
- MSA인스턴스 유형 – MSA 단계에 사용할 인스턴스 유형. 기본값은 ml.m5.4xlarge입니다.
다음 코드를 참조하십시오.
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')
SageMaker 파이프라인은 일련의 단계를 정의한 다음 이전 단계의 출력이 다음 단계의 입력이 되는 특정 순서로 함께 연결하여 구성됩니다. 단계는 병렬로 실행될 수 있으며 이전 단계에 종속되도록 정의할 수 있습니다. 이 파이프라인에서는 병렬로 실행되는 AlphaFold 추론 단계 및 OpenFold 추론 단계에 대한 종속성인 MSA 단계를 정의합니다. 다음 코드를 참조하십시오.
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]
모든 단계를 하나로 묶기 위해 우리는 Pipeline
클래스를 만들고 파이프라인 이름, 파이프라인 입력 변수 및 개별 단계를 제공합니다.
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')
파이프라인 실행
노트북의 마지막 셀에서 02-define_pipeline.ipynb
, SageMaker SDK를 사용하여 파이프라인을 실행하는 방법을 보여줍니다. 앞에서 설명한 동적 변수는 다음과 같이 제공됩니다.
!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
)
실험 추적 및 단백질 구조 비교
우리의 실험을 위해, 우리는 CASP14 단백질 구조 모델링 방법의 평가를 위한 독립적인 메커니즘을 제공하는 경쟁. 목표 T1030 PDB 6P00 단백질에서 파생되며 237차 서열에 XNUMX개의 아미노산이 있습니다. SageMaker 파이프라인을 실행하여 OpenFold 및 AlphaFold 알고리즘을 모두 사용하여 이 입력 시퀀스의 단백질 구조를 예측합니다.
파이프라인이 완료되면 각 폴딩 작업에서 예측된 .pdb 파일을 다운로드하고 다음을 사용하여 노트북의 구조를 시각화합니다. py3Dmol, 노트북에서와 같이 04-compare_alphafold_openfold.ipynb
.
다음 스크린샷은 AlphaFold 예측 작업의 예측을 보여줍니다.
예측된 구조는 PDB 코드를 사용하여 알려진 기본 참조 구조와 비교됩니다. 6푸 에 보관됨 RCSB. RMSD, 중첩이 있는 RMSD 및 템플릿 모델링 점수의 세 가지 메트릭을 사용하여 기본 PDB 코드 6poo에 대한 예측 성능을 분석합니다. 구조 비교.
. | 입력 시퀀스 | 비교 | RMSD | 중첩이 있는 RMSD | 템플릿 모델링 점수 |
알파 폴드 | T1030 | 6푸 | 247.26 | 3.87 | 0.3515 |
폴딩 알고리즘은 이제 여러 FASTA 시퀀스에 대해 서로 비교됩니다. T1030, T1090및 T1076. 새로운 대상 시퀀스는 참조 데이터베이스에 기본 pdb 구조가 없을 수 있으므로 폴딩 알고리즘 간의 가변성을 비교하는 것이 유용합니다.
. | 입력 시퀀스 | 비교 | RMSD | 중첩이 있는 RMSD | 템플릿 모델링 점수 |
알파 폴드 | T1030 | 오픈폴드 | 73.21 | 24.8 | 0.0018 |
알파 폴드 | T1076 | 오픈폴드 | 38.71 | 28.87 | 0.0047 |
알파 폴드 | T1090 | 오픈폴드 | 30.03 | 20.45 | 0.005 |
다음 스크린샷은 실행을 보여줍니다. ProteinFoldWorkflow
SageMaker Pipeline을 사용하는 세 가지 FASTA 입력 시퀀스의 경우:
또한 파이프라인에서 생성된 동일한 실험의 새로운 실행으로 SageMaker 실험을 사용하여 지표를 기록합니다.
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)
그런 다음 이러한 실행을 분석하고 시각화합니다. 실험 SageMaker Studio의 페이지.
다음 차트는 T1030, T1076 및 T1090의 세 가지 시퀀스에 대한 AlphaFold와 OpenFold 간의 RMSD 값을 보여줍니다.
결론
이 게시물에서는 SageMaker Pipelines를 사용하여 널리 사용되는 두 가지 구조 예측 알고리즘인 AlphaFold2 및 OpenFold로 단백질 폴딩 워크플로를 설정하고 실행하는 방법을 설명했습니다. 우리는 구조 예측에서 MSA 생성을 위한 컴퓨팅 요구 사항을 분리하는 여러 작업의 가격 대비 성능이 뛰어난 솔루션 아키텍처를 시연했습니다. 또한 SageMaker Studio에서 예상되는 단백질의 3D 구조를 시각화, 평가 및 비교할 수 있는 방법을 강조했습니다.
SageMaker에서 단백질 폴딩 워크플로우를 시작하려면 다음의 샘플 코드를 참조하십시오. GitHub 레포.
저자 소개
마이클 시에 수석 AI/ML 전문가 솔루션 설계자입니다. 그는 HCLS 고객과 협력하여 AWS 기술과 의료 이미징에 대한 전문 지식으로 ML 여정을 발전시킵니다. 시애틀에 이식된 그는 하이킹 코스, SLU에서 카약을 타는 풍경, Shilshole Bay의 일몰과 같이 도시가 제공하는 대자연을 탐험하는 것을 좋아합니다.
시밤 파텔 AWS의 솔루션 아키텍트입니다. 그는 R&D 경력을 가지고 있으며 이를 자신의 비즈니스 지식과 결합하여 고객이 직면한 복잡한 문제를 해결합니다. Shivam은 기계 학습, 로봇 공학, IoT 및 고성능 컴퓨팅의 워크로드에 가장 열정적입니다.
하산 푸나 왈라 AWS의 수석 AI/ML 전문가 솔루션 아키텍트인 Hasan은 고객이 AWS의 프로덕션 환경에서 기계 학습 애플리케이션을 설계하고 배포할 수 있도록 지원합니다. 그는 데이터 과학자, 기계 학습 실무자 및 소프트웨어 개발자로서 12년 이상의 경력을 가지고 있습니다. 여가 시간에 Hasan은 자연을 탐험하고 친구 및 가족과 함께 시간을 보내는 것을 좋아합니다.
재슬린 그루왈 Amazon Web Services의 선임 응용 과학자로서 정밀 의학 및 유전체학에 특히 중점을 두고 기계 학습을 사용하여 실제 문제를 해결하기 위해 AWS 고객과 협력합니다. 그녀는 생물 정보학, 종양학 및 임상 유전체학에 대한 강력한 배경을 가지고 있습니다. 그녀는 AI/ML 및 클라우드 서비스를 사용하여 환자 치료를 개선하는 데 열정적입니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 자동차 / EV, 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- BlockOffsets. 환경 오프셋 소유권 현대화. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :있다
- :이다
- :아니
- :어디
- $UP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- 소개
- AC
- 가속
- ACCESS
- 액세스
- 정확한
- 비 환식
- 더하다
- 채택
- 전진
- 발전하다
- 에 영향을 미치는
- 후
- 다시
- 반대
- AI / ML
- 연산
- 알고리즘
- 조정
- All
- 수
- 수
- 따라
- 또한
- 아마존
- 아마존 세이지 메이커
- 아마존 세이지 메이커 스튜디오
- Amazon Web Services
- an
- 분석
- 분석하다
- 및
- 다른
- 어떤
- 어플리케이션
- 적용된
- 아키텍처
- 있군요
- 지역
- 인수
- AS
- 평가
- At
- 자동적으로
- 가능
- 평균
- 떨어져
- AWS
- 뒤로
- 배경
- 기지
- 기반으로
- 만
- BE
- 때문에
- 된다
- 전에
- 처음
- 존재
- 게다가
- BEST
- 더 나은
- 사이에
- 억원
- 수십억
- 생물 의학
- 바이오 제약
- 블록
- 몸
- 두
- 가져
- 가져
- 넓은
- 빌드
- 건물
- 사업
- by
- 전화
- 라는
- CAN
- 후보자
- 후보자
- 기능
- 수
- 한
- 이전 단계로 돌아가기
- 채널
- 거래차트
- 선택
- City
- 수업
- 객관적인
- 닫기
- 클라우드
- 클라우드 서비스
- 클러스터
- 암호
- 코드베이스
- 코드
- 협력
- 결합
- 결합
- 제공
- 상업
- 공통의
- 소통
- 비교
- 비교
- 비교
- 호환
- 경쟁
- 완전한
- 진행완료
- 완료
- 복잡한
- 구성 요소
- 구성 요소들
- 화합물
- 계산
- 계산
- 컴퓨팅
- 구성
- 구축
- 구조
- 컨테이너
- 이 포함되어 있습니다
- 비용
- 비용 절감
- 비용
- 두
- 만들
- 만든
- 현재
- 관습
- 고객
- DAG
- 데이터
- 데이터 관리
- 데이터 처리
- 데이터 과학자
- 데이터베이스
- 데이터베이스
- 날짜
- 깊은
- 깊은 학습
- 태만
- 밝히다
- 한정된
- 정의
- 보여
- 시연
- 의존
- 배포
- 파생
- 기술 된
- 디자인
- 설계
- 원하는
- 상세한
- 결정
- 결정하다
- 개발자
- 개발
- 다른
- 어려운
- 발견
- 토론
- 질병
- 다양성
- 분할 된
- 도커
- 아래 (down)
- 다운로드
- 마약
- 약물
- ...동안
- 동적
- 마다
- 이전
- 용이하게
- 유효한
- 중
- 가능
- end
- 엔티티
- 항목
- 환경
- 환경
- 평가
- 최후의
- 모든
- 예
- 예외
- 처형 된
- 실행
- 현존하는
- 비싼
- 경험
- 실험
- 실험
- 전문적 지식
- 설명
- 탐험
- 탐색
- 직면
- 실패한
- 가족
- 특색
- 특징
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 파일
- 최후의
- 최종적으로
- 먼저,
- 처음으로
- 맞게
- 유연성
- 유연하게
- 초점
- 따라
- 수행원
- 다음
- 럭셔리
- 체재
- 친구
- 에
- 가득 찬
- 충분히
- 기능의
- 추가
- 수집
- 생성
- 세대
- 유전체학
- 얻을
- 주어진
- Go
- GPU
- 그래프
- 큰
- 매우
- 반
- 손
- 줌
- 해가
- 있다
- he
- 무거운
- 도움
- 도움이
- 여기에서 지금 확인해 보세요.
- 높은
- 고수준
- 고성능
- 높은 품질의
- 더 높은
- 최고
- 강조
- 그의
- 호스팅
- 진료 시간
- 방법
- How To
- 그러나
- HTML
- HTTP
- HTTPS
- 수백
- 식별
- 확인
- 유휴
- if
- 설명하다
- 영상
- 형상
- 영상
- 이행
- import
- 개선
- 개량
- in
- 포함
- 포함
- 포함
- 통합
- 독립
- 개인
- 정보
- 인프라
- 입력
- 입력
- 내부
- 설치
- 예
- 대화형
- 인터렉티브
- 인터페이스
- 으로
- 소개
- IOT
- IT
- 그
- 일
- 작업
- 여행
- JPG
- 다만
- 보관 된
- 키
- 걷어
- 알아
- 지식
- 알려진
- 성
- 숨어 있음
- 최근
- 시작
- 층
- 레이어
- 오퍼
- 배우기
- 가장 작은
- 하자
- 레벨
- 도서관
- 생활
- 처럼
- 있을 수 있는 일
- 라인
- 모래밭
- 장소 상에서
- 위치
- 위치
- 기록
- 로깅
- 긴
- loves
- 절감
- 가장 낮은
- 기계
- 기계 학습
- 확인
- 관리
- 관리
- 구축
- 관리
- 수동으로
- XNUMX월..
- 맥킨지
- 기구
- 의료
- 의학
- 메타 데이터
- 방법
- 방법
- 통계
- 수백만
- ML
- 모드
- 모델
- 모델링
- 모델
- 모니터
- 모니터링
- 배우기
- 가장
- 어머니
- 산
- 많은
- 여러
- name
- 자연
- 필요
- 필요
- 네트워킹
- 네트워크
- 신경망
- 신제품
- 새로운 목표
- 다음 것
- NIH
- 특히
- 수첩
- 지금
- 번호
- of
- 오프
- 제공
- 제공
- 좋아요
- on
- 온디맨드
- ONE
- 만
- ~에
- 조작
- 최적의
- 최적화
- 선택권
- or
- 주문
- 기타
- 우리의
- 출력
- 위에
- 페이지
- 평행
- 매개 변수
- 매개 변수
- 부품
- 특별한
- 파트너
- 패스
- 합격
- 열렬한
- 통로
- 환자
- 환자
- 무늬
- 용
- 성능
- 관로
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 포인트 적립
- 인기 문서
- 인구가 많은
- 게시하다
- 정확한
- Precision
- 예측
- 예측
- 예측
- 예측
- 예측
- Prepare
- 전제 조건
- 제시
- 너무 이른
- 가격
- 일차
- 교장
- 이전에
- 우선 순위
- 문제
- 문제
- 방법
- 프로세스
- 처리
- 프로덕트
- 생산
- 프로그램
- 진행
- 약속
- 적절한
- 단백질
- 단백질
- 제공
- 제공
- 제공
- 놓다
- Python
- 빨리
- R&D
- 현실
- 현실 세계
- 최근
- 의미
- 지역
- 관계
- 남아
- 주목할 만한
- 반복 가능
- 자꾸
- 저장소
- 대표되는
- 대표
- 필요
- 필수
- 요구 사항
- 요구조건 니즈
- 연구
- 연구원
- 제품 자료
- 각기
- 결과
- 결과
- 로봇
- 달리기
- 달리는
- 실행
- s
- 현자
- SageMaker 파이프 라인
- 같은
- 절약
- 저금
- 확장성
- 확장성
- 규모
- 과학
- 과학자
- 과학자
- 점수
- 전형
- 스크립트
- SDK
- 검색
- 시애틀
- 둘째
- 섹션
- 참조
- 씨앗
- 본
- 선택
- 연장자
- 순서
- 연속
- 서비스
- 서비스
- 세트
- 설정
- 설정
- 설치
- 몇몇의
- 그녀
- 영상을
- 표시
- 표시
- 쇼
- 종료
- 상당한
- 비슷한
- 단순, 간단, 편리
- 단순화
- 단일
- So
- 소프트웨어
- 해결책
- 솔루션
- 풀다
- 출처
- 특별한
- 전문가
- 구체적인
- 구체적으로
- 특성
- 지정
- 분광학
- 지출
- 단계
- 스타트
- 시작
- 시작 중
- 시작
- Status
- 단계
- 단계
- 저장
- 저장
- 간소화 된
- 강한
- 구조상의
- 구조
- 스튜디오
- 제출
- 제출
- 제출
- 성공한
- 이러한
- 적당한
- 일몰
- 위에 놓기
- 지원
- 체계
- 시스템은
- 테이블
- 받아
- 소요
- 복용
- 목표
- 목표
- 팀
- 기술
- 이 템플릿
- 템플릿
- 조건
- 지원
- 그
- XNUMXD덴탈의
- 소스
- 그들의
- 그들
- 그때
- 따라서
- Bowman의
- 그들
- 제삼
- 이
- 그
- 수천
- 세
- 을 통하여
- 처리량
- 시간
- 시간이 많이 걸리는
- 에
- 함께
- 검색을
- 상단
- 추적
- 선로
- 전통적인
- Train
- 훈련 된
- 트레이닝
- 변압기
- 참된
- 두
- 유형
- 전형적인
- 일반적으로
- ui
- 이해
- 이해
- 운수 나쁘게
- 알 수없는
- 업데이트
- 업로드
- us
- 사용
- 익숙한
- 사용자
- 사용자 경험
- 시간을 아껴주는 인터페이스
- 사용자
- 사용
- 사용
- 확인
- 가치
- 종류
- 여러
- 대단히
- 를 통해
- 심상
- 였다
- 방법..
- we
- 웹
- 웹 서비스
- 웹 기반
- 무게
- 잘
- 언제
- 어느
- 동안
- 위키 백과
- 의지
- 과
- 이내
- 없이
- 작업
- 워크플로우
- 워크 플로우
- 일
- 세계
- 겠지
- 쓴
- 엑스선
- 년
- 자신의
- 너의
- 제퍼 넷