Pengembangan obat adalah proses yang kompleks dan panjang yang melibatkan penyaringan ribuan kandidat obat dan menggunakan metode komputasi atau eksperimental untuk mengevaluasi prospek. Menurut McKinsey, satu obat dapat memakan waktu 10 tahun dan menelan biaya rata-rata $2.6 miliar untuk melalui identifikasi target penyakit, skrining obat, validasi target obat, dan akhirnya peluncuran komersial. Penemuan obat adalah komponen penelitian dari saluran ini yang menghasilkan obat kandidat dengan kemungkinan tertinggi untuk menjadi efektif dengan sedikit bahaya bagi pasien. Metode pembelajaran mesin (ML) dapat membantu mengidentifikasi senyawa yang cocok pada setiap tahap dalam proses penemuan obat, menghasilkan prioritas dan pengujian obat yang lebih efisien, menghemat miliaran biaya pengembangan obat (untuk informasi lebih lanjut, lihat AI dalam penelitian biofarma: Waktu untuk fokus dan menskalakan).
Target obat biasanya entitas biologis yang disebut protein, blok bangunan kehidupan. Struktur 3D protein menentukan bagaimana protein berinteraksi dengan senyawa obat; oleh karena itu, memahami struktur 3D protein dapat menambah peningkatan yang signifikan pada proses pengembangan obat dengan menyaring senyawa obat yang lebih cocok dengan struktur protein target. Area lain di mana prediksi struktur protein dapat berguna adalah memahami keragaman protein, sehingga kami hanya memilih obat yang secara selektif menargetkan protein tertentu tanpa memengaruhi protein lain dalam tubuh (untuk informasi lebih lanjut, lihat Meningkatkan penilaian target dalam penelitian biomedis: rekomendasi GOT-IT). Struktur 3D yang tepat dari protein target dapat memungkinkan desain obat dengan spesifisitas yang lebih tinggi dan kemungkinan interaksi silang yang lebih rendah dengan protein lain.
Namun, memprediksi bagaimana protein melipat ke dalam struktur 3D mereka adalah masalah yang sulit, dan metode eksperimental tradisional seperti kristalografi sinar-X dan spektroskopi NMR dapat memakan waktu dan mahal. Kemajuan terbaru dalam metode pembelajaran mendalam untuk penelitian protein telah menunjukkan harapan dalam menggunakan jaringan saraf untuk memprediksi pelipatan protein dengan akurasi yang luar biasa. Lipat algoritma seperti Lipat Alfa2, Lipatan ES, BukaLipat, dan RoseTTAFlipat dapat digunakan untuk membangun model struktur protein yang akurat dengan cepat. Sayangnya, model ini secara komputasi mahal untuk dijalankan dan hasilnya bisa rumit untuk dibandingkan pada skala ribuan calon struktur protein. Solusi yang dapat diskalakan untuk menggunakan berbagai alat ini akan memungkinkan para peneliti dan tim Litbang komersial dengan cepat menggabungkan kemajuan terbaru dalam prediksi struktur protein, mengelola proses eksperimen mereka, dan berkolaborasi dengan mitra penelitian.
Amazon SageMaker adalah layanan yang terkelola sepenuhnya untuk menyiapkan, membuat, melatih, dan menerapkan model ML berkualitas tinggi secara cepat dengan menyatukan serangkaian kemampuan yang dibuat khusus untuk ML. Ini menawarkan lingkungan yang terkelola sepenuhnya untuk ML, menghilangkan persyaratan infrastruktur, manajemen data, dan skalabilitas sehingga Anda dapat fokus pada pembuatan, pelatihan, dan pengujian model Anda.
Dalam postingan ini, kami menyajikan solusi ML yang terkelola sepenuhnya dengan SageMaker yang menyederhanakan pengoperasian alur kerja prediksi struktur pelipatan protein. Kami pertama-tama membahas solusi di tingkat tinggi dan pengalaman penggunanya. Selanjutnya, kami memandu Anda tentang cara menyiapkan alur kerja AlphaFold2 dan OpenFold yang dioptimalkan dengan mudah dengan SageMaker. Terakhir, kami mendemonstrasikan bagaimana Anda dapat melacak dan membandingkan prediksi struktur protein sebagai bagian dari analisis tipikal. Kode untuk solusi ini tersedia berikut ini Repositori GitHub.
Ikhtisar solusi
Dalam solusi ini, para ilmuwan dapat meluncurkan eksperimen pelipatan protein secara interaktif, menganalisis struktur 3D, memantau kemajuan pekerjaan, dan melacak eksperimen di Studio Amazon SageMaker.
Tangkapan layar berikut menunjukkan proses tunggal alur kerja pelipatan protein dengan Amazon SageMaker Studio. Ini mencakup visualisasi struktur 3D di notebook, menjalankan status tugas SageMaker di alur kerja, dan menautkan ke parameter masukan serta data keluaran dan log.
Diagram berikut mengilustrasikan arsitektur solusi tingkat tinggi.
Untuk memahami arsitekturnya, pertama-tama kita mendefinisikan komponen kunci dari percobaan pelipatan protein sebagai berikut:
- File urutan target FASTA - The format CEPAT adalah format berbasis teks untuk merepresentasikan sekuens nukleotida atau sekuens asam amino (protein), di mana nukleotida atau asam amino direpresentasikan menggunakan kode satu huruf.
- Database genetik โ Database genetik adalah satu atau lebih set data genetik yang disimpan bersama dengan perangkat lunak untuk memungkinkan pengguna mengambil data genetik. Beberapa basis data genetik diperlukan untuk menjalankan algoritme AlphaFold dan OpenFold, seperti BFD, MGnify, PDB70, PDB, urutan PDB, UniRef30 (FKA UniClust30), UniProt, dan UniRef90.
- Penyelarasan urutan ganda (MSA) - A penjajaran urutan adalah cara mengatur sekuens primer protein untuk mengidentifikasi daerah kesamaan yang mungkin merupakan konsekuensi dari hubungan fungsional, struktural, atau evolusioner antara sekuens. Fitur input untuk prediksi mencakup data MSA.
- Prediksi struktur protein โ Struktur urutan target input diprediksi dengan algoritma pelipatan seperti Lipat Alfa2 dan BukaLipat yang menggunakan arsitektur trafo multitrack yang dilatih pada template protein yang dikenal.
- Visualisasi dan metrik โ Visualisasikan struktur 3D dengan py3Dmol perpustakaan sebagai visualisasi 3D interaktif. Anda dapat menggunakan metrik untuk mengevaluasi dan membandingkan prediksi struktur, terutama deviasi root-mean-square (RMSD) dan Skor pemodelan template (skor TM)
Alur kerja berisi langkah-langkah berikut ini:
- Ilmuwan menggunakan SageMaker ML IDE berbasis web untuk menjelajahi basis kode, membuat alur kerja analisis urutan protein di notebook SageMaker Studio, dan menjalankan pipa pelipatan protein melalui antarmuka pengguna grafis di SageMaker Studio atau SageMaker SDK.
- Basis data genetik dan struktur yang diperlukan oleh AlphaFold dan OpenFold diunduh sebelum pengaturan pipa menggunakan Pemrosesan SageMaker Amazon, fitur komputasi sesaat untuk pemrosesan data ML, hingga Layanan Penyimpanan Sederhana Amazon (Amazon S3) ember. Dengan Pemrosesan SageMaker, Anda dapat menjalankan tugas jangka panjang dengan komputasi yang tepat tanpa menyiapkan cluster komputasi dan penyimpanan apa pun dan tanpa perlu mematikan cluster. Data disimpan secara otomatis ke lokasi bucket S3 yang ditentukan.
- An Amazon FSx untuk Lustre sistem file diatur, dengan penyimpanan data menjadi lokasi bucket S3 tempat database disimpan. FSx for Luster dapat menskalakan throughput hingga ratusan GB/dtk dan jutaan IOPS dengan pengambilan file latensi rendah. Saat memulai tugas estimator, SageMaker memasang sistem file FSx for Luster ke sistem file instance, lalu memulai skrip.
- Pipa Amazon SageMaker digunakan untuk mengatur beberapa proses algoritma pelipatan protein. SageMaker Pipelines menawarkan antarmuka visual yang diinginkan untuk penyerahan tugas interaktif, ketertelusuran kemajuan, dan keterulangan.
- Di dalam pipeline, dua algoritme pelipatan protein yang berat secara komputasiโAlphaFold dan OpenFoldโdijalankan dengan estimator SageMaker. Konfigurasi ini mendukung pemasangan sistem file FSx for Luster untuk pencarian database throughput tinggi dalam algoritme. Proses inferensi tunggal dibagi menjadi dua langkah: langkah konstruksi MSA menggunakan instans CPU yang optimal dan langkah prediksi struktur menggunakan instans GPU. Sublangkah ini, seperti Pemrosesan SageMaker di Langkah 2, bersifat singkat, sesuai permintaan, dan terkelola sepenuhnya. Keluaran pekerjaan seperti file MSA, file struktur pdb yang diprediksi, dan file metadata lainnya disimpan di lokasi S3 tertentu. Sebuah pipeline dapat dirancang untuk menjalankan satu algoritme pelipatan protein tunggal atau menjalankan AlphaFold dan OpenFold setelah konstruksi MSA yang umum.
- Proses prediksi pelipatan protein secara otomatis dilacak oleh Eksperimen Amazon SageMaker untuk analisis dan perbandingan lebih lanjut. Log pekerjaan disimpan amazoncloudwatch untuk pemantauan.
Prasyarat
Untuk mengikuti posting ini dan menjalankan solusi ini, Anda harus menyelesaikan beberapa prasyarat. Mengacu kepada Repositori GitHub untuk penjelasan rinci dari setiap langkah.
Jalankan pelipatan protein di SageMaker
Kami menggunakan kemampuan SageMaker yang terkelola sepenuhnya untuk menjalankan pekerjaan pelipatan protein yang berat secara komputasi tanpa banyak biaya infrastruktur. SageMaker menggunakan gambar kontainer untuk menjalankan skrip kustom untuk pemrosesan data umum, pelatihan, dan hosting. Anda dapat dengan mudah memulai pekerjaan sesaat sesuai permintaan yang menjalankan program dengan gambar kontainer dengan beberapa baris SDK SageMaker tanpa mengelola sendiri infrastruktur komputasi apa pun. Secara khusus, tugas estimator SageMaker memberikan fleksibilitas dalam hal pemilihan image container, menjalankan skrip, dan konfigurasi instans, serta mendukung berbagai pilihan penyimpanan, termasuk sistem file seperti FSx untuk Lustre. Diagram berikut mengilustrasikan arsitektur ini.
Algoritme pelipatan seperti AlphaFold dan OpenFold menggunakan arsitektur trafo multitrack yang dilatih pada templat protein yang diketahui untuk memprediksi struktur urutan peptida yang tidak diketahui. Prediksi ini dapat dijalankan pada instans GPU untuk memberikan throughput terbaik dan latensi terendah. Namun fitur input untuk prediksi ini mencakup data MSA. Algoritme MSA bergantung pada CPU dan dapat memerlukan beberapa jam waktu pemrosesan.
Menjalankan langkah-langkah MSA dan prediksi struktur di lingkungan komputasi yang sama dapat menjadi tidak efisien karena sumber daya GPU yang mahal tetap menganggur sementara langkah MSA berjalan. Oleh karena itu, kami mengoptimalkan alur kerja menjadi dua langkah. Pertama, kami menjalankan tugas estimator SageMaker pada instans CPU khusus untuk menghitung penyelarasan MSA dengan urutan input FASTA tertentu dan database genetik sumber. Kemudian kami menjalankan tugas estimator SageMaker pada instans GPU untuk memprediksi struktur protein dengan penyelarasan MSA masukan tertentu dan algoritme pelipatan seperti AlphaFold atau OpenFold.
Jalankan generasi MSA
Untuk perhitungan MSA, kami menyertakan skrip khusus run_create_alignment.sh
dan create_alignments.py
skrip yang diadopsi dari sumber prediksi AlphaFold yang ada jalankan_alphafold.py. Perhatikan bahwa skrip ini mungkin perlu diperbarui jika kode sumber AlphaFold diperbarui. Skrip khusus disediakan untuk estimator SageMaker melalui mode skrip. Komponen utama image container, penerapan mode skrip, dan penyiapan tugas estimator SageMaker juga merupakan bagian dari langkah berikutnya dalam menjalankan algoritme pelipatan, dan dijelaskan lebih lanjut di bagian berikut.
Jalankan AlphaFold
Kami memulai dengan menjalankan prediksi struktur AlphaFold dengan urutan protein tunggal menggunakan SageMaker. Menjalankan pekerjaan AlphaFold melibatkan tiga langkah sederhana, seperti yang dapat dilihat di 01-run_stepbystep.ipynb
. Pertama, kami membuat image container Docker berdasarkan AlphaFold Dockerfile agar kami juga bisa jalankan AlphaFold di SageMaker. Kedua, kami membuat skrip run_alphafold.sh
yang menginstruksikan bagaimana AlphaFold harus dijalankan. Ketiga, kami membangun dan menjalankan a Penaksir SageMaker dengan skrip, wadah, jenis instans, data, dan konfigurasi untuk pekerjaan itu.
Gambar kontainer
Persyaratan runtime untuk gambar kontainer untuk menjalankan AlphaFold (OpenFold juga) di SageMaker dapat sangat disederhanakan dengan Dockerfile AlphaFold. Kita hanya perlu menambahkan beberapa layer sederhana di bagian atas untuk menginstal library Python khusus SageMaker sehingga tugas SageMaker dapat berkomunikasi dengan image container. Lihat kode berikut:
Skrip masukan
Kami kemudian menyediakan skrip run_alphafold.sh
yang berjalan jalankan_alphafold.py dari repositori AlphaFold yang saat ini ditempatkan di wadah /app/alphafold/run_alphafold.py
. Saat skrip ini dijalankan, lokasi database genetik dan input urutan FASTA akan diisi oleh SageMaker sebagai variabel lingkungan (SM_CHANNEL_GENETIC
dan SM_CHANNEL_FASTA
, masing-masing). Untuk informasi lebih lanjut, lihat Konfigurasi Data Masukan.
Pekerjaan estimator
Kami selanjutnya membuat tugas menggunakan estimator SageMaker dengan argumen input kunci berikut, yang menginstruksikan SageMaker untuk menjalankan skrip tertentu menggunakan wadah yang ditentukan dengan jenis atau jumlah instans, opsi pilihan jaringan Anda, dan parameter lain untuk tugas tersebut. vpc_subnet_ids
dan security_group_ids
menginstruksikan tugas untuk dijalankan di dalam VPC tertentu tempat sistem file FSx for Luster berada sehingga kita dapat memasang dan mengakses sistem file dalam tugas SageMaker. Jalur keluaran merujuk ke lokasi bucket S3 tempat produk akhir AlphaFold akan diunggah ke akhir pekerjaan yang berhasil oleh SageMaker secara otomatis. Di sini kami juga mengatur parameter DB_PRESET
, misalnya, untuk diteruskan dan diakses di dalam run_alphafold.sh
sebagai variabel lingkungan selama runtime. Lihat kode berikut:
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,
...)
Terakhir, kami mengumpulkan data dan memberi tahu pekerjaan di mana mereka berada. Itu fasta
saluran data didefinisikan sebagai input data S3 yang akan diunduh dari lokasi S3 ke instans komputasi di awal pekerjaan. Hal ini memungkinkan fleksibilitas yang besar untuk mengelola dan menentukan urutan masukan. Di sisi lain, genetic
saluran data didefinisikan sebagai a FileSystemInput
yang akan dipasang ke instance di awal pekerjaan. Penggunaan sistem file FSx for Lustre sebagai cara untuk membawa hampir 3 TB data menghindari pengunduhan data berulang kali dari bucket S3 ke instans komputasi. Kami memanggil .fit
metode untuk memulai pekerjaan 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
Itu dia. Kami baru saja mengirimkan tugas ke SageMaker untuk menjalankan AlphaFold. Log dan output termasuk file prediksi .pdb akan ditulis ke Amazon S3.
Jalankan OpenFold
Menjalankan OpenFold di SageMaker mengikuti pola yang sama, seperti yang ditunjukkan di paruh kedua 01-run_stepbystep.ipynb
. Kami pertama-tama menambahkan lapisan sederhana untuk mendapatkan perpustakaan khusus SageMaker untuk membuat gambar wadah SageMaker kompatibel di atas OpenFold's Dockerfile. Kedua, kita membangun a run_openfold.sh
sebagai titik masuk untuk pekerjaan SageMaker. Di dalam run_openfold.sh
, kita jalankan jalankan_pretrained_openfold.py dari OpenFold, yaitu tersedia dalam gambar wadah dengan basis data genetik yang sama yang kami unduh untuk bobot model AlphaFold dan OpenFold (--openfold_checkpoint_path
). Dalam hal lokasi input data, selain saluran basis data genetik dan saluran FASTA, kami memperkenalkan saluran ketiga, SM_CHANNEL_PARAM
, sehingga kita dapat secara fleksibel meneruskan bobot model pilihan dari konstruk estimator saat kita mendefinisikan dan mengirimkan pekerjaan. Dengan estimator SageMaker, kami dapat dengan mudah mengirimkan pekerjaan dengan perbedaan entry_point
, image_uri
, environment
, inputs
, dan konfigurasi lain untuk OpenFold dengan signature yang sama. Untuk saluran data, kami menambahkan saluran baru, param
, sebagai input Amazon S3 bersama dengan penggunaan database genetik yang sama dari sistem file FSx for Luster dan file FASTA dari Amazon S3. Ini, sekali lagi, memungkinkan kita dengan mudah menentukan bobot model yang akan digunakan dari konstruksi pekerjaan. Lihat kode berikut:
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)
Untuk mengakses hasil akhir setelah pekerjaan selesai, kami menjalankan perintah berikut:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Performa runtime
Tabel berikut menunjukkan penghematan biaya masing-masing sebesar 57% dan 51% untuk AlphaFold dan OpenFold, dengan memisahkan algoritme perataan dan pelipatan MSA dalam dua pekerjaan dibandingkan dengan satu pekerjaan komputasi. Hal ini memungkinkan kami menyesuaikan ukuran komputasi untuk setiap pekerjaan: ml.m5.4xlarge untuk penyelarasan MSA dan ml.g5.2xlarge untuk AlphaFold dan OpenFold.
rincian pekerjaan | Jenis Mesin Virtual | Masukkan Urutan FASTA | Runtime | Biaya |
Penyelarasan MSA + OpenFold | ml.g5.4xbesar | T1030 | 50 menit | $1.69 |
Penyelarasan MSA + AlphaFold | ml.g5.4xbesar | T1030 | 65 menit | $2.19 |
penyelarasan MSA | ml.m5.4lebih besar | T1030 | 46 menit | $0.71 |
BukaLipat | ml.g5.2xbesar | T1030 | 6 menit | $0.15 |
Lipatan Alfa | ml.g5.2xbesar | T1030 | 21 menit | $0.53 |
Buat alur kerja berulang menggunakan SageMaker Pipelines
Dengan SageMaker Pipelines, kita dapat membuat alur kerja ML yang menangani pengelolaan data di antara langkah-langkah, mengatur prosesnya, dan mencatat log. SageMaker Pipelines juga menyediakan UI untuk memvisualisasikan pipeline dan menjalankan alur kerja ML dengan mudah.
Sebuah pipa dibuat dengan menyisir sejumlah tangga. Dalam pipeline ini, kami menggabungkan tiga langkah-langkah pelatihan, yang memerlukan estimator SageMaker. Estimator yang ditentukan dalam buku catatan ini sangat mirip dengan yang ditentukan di 01-run_stepbystep.ipynb
, dengan pengecualian bahwa kami menggunakan lokasi Amazon S3 untuk menunjuk ke input dan output kami. Variabel dinamis memungkinkan SageMaker Pipelines menjalankan langkah demi langkah dan juga mengizinkan pengguna untuk mencoba kembali langkah yang gagal. Tangkapan layar berikut menampilkan Directed Acyclic Graph (DAG), yang memberikan informasi tentang persyaratan dan hubungan antara setiap langkah alur kami.
Variabel dinamis
SageMaker Pipelines mampu menerima input pengguna di awal setiap proses pipeline. Kami menentukan variabel dinamis berikut, yang ingin kami ubah selama setiap percobaan:
- FastaInputS3URI โ URI Amazon S3 dari file FASTA yang diunggah melalui SDK, Boto3, atau secara manual.
- NamaFile Cepat โ Nama file FASTA.
- db_preset โ Pilihan antara
full_dbs
orreduced_dbs
. - MaxTemplateDate โ Langkah MSA AlphaFold akan mencari template yang tersedia sebelum tanggal yang ditentukan oleh parameter ini.
- ModelPreset โ Pilih antara model AlphaFold termasuk
monomer
,monomer_casp14
,monomer_ptm
, danmultimer
. - NumMultimerPredictionsPerModel โ Jumlah benih untuk dijalankan per model saat menggunakan sistem multimer.
- InferensiInstanceType โ Jenis instans yang akan digunakan untuk langkah inferensi (baik AlphaFold dan OpenFold). Nilai defaultnya adalah ml.g5.2xlarge.
- MSAInstanceType โ Jenis instans yang akan digunakan untuk langkah MSA. Nilai defaultnya adalah ml.m5.4xlarge.
Lihat kode berikut:
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')
Pipeline SageMaker dibangun dengan menentukan serangkaian langkah dan kemudian merangkainya bersama dalam urutan tertentu di mana output dari langkah sebelumnya menjadi input ke langkah berikutnya. Langkah-langkah dapat dijalankan secara paralel dan didefinisikan memiliki ketergantungan pada langkah sebelumnya. Dalam alur ini, kami mendefinisikan langkah MSA, yang merupakan ketergantungan untuk langkah inferensi AlphaFold dan langkah inferensi OpenFold yang berjalan secara paralel. Lihat kode berikut:
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]
Untuk menyatukan semua langkah, kami memanggil Pipeline
kelas dan berikan nama pipa, variabel input pipa, dan langkah-langkah individu:
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')
Jalankan pipa
Di sel terakhir buku catatan 02-define_pipeline.ipynb
, kami menunjukkan cara menjalankan pipeline menggunakan SageMaker SDK. Variabel dinamis yang kami jelaskan sebelumnya disediakan sebagai berikut:
!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
)
Lacak eksperimen dan bandingkan struktur protein
Untuk percobaan kami, kami menggunakan contoh urutan protein dari CASP14 kompetisi, yang menyediakan mekanisme independen untuk penilaian metode pemodelan struktur protein. Sasaran T1030 berasal dari protein PDB 6P00, dan memiliki 237 asam amino dalam urutan primer. Kami menjalankan pipeline SageMaker untuk memprediksi struktur protein dari urutan input ini dengan algoritme OpenFold dan AlphaFold.
Saat pipeline selesai, kami mengunduh file .pdb yang diprediksi dari setiap pekerjaan pelipatan dan memvisualisasikan struktur di notebook menggunakan py3Dmol, seperti di buku catatan 04-compare_alphafold_openfold.ipynb
.
Tangkapan layar berikut menunjukkan prediksi dari tugas prediksi AlphaFold.
Struktur yang diprediksi dibandingkan dengan struktur referensi dasarnya yang diketahui dengan kode PDB 6 kotoran diarsipkan di RCSB. Kami menganalisis performa prediksi terhadap kode PDB dasar 6poo dengan tiga metrik: RMSD, RMSD dengan superposisi, dan skor pemodelan template, seperti yang dijelaskan dalam Membandingkan struktur.
. | Urutan Masukan | Perbandingan Dengan | RMSD | RMSD dengan Superposisi | Skor Pemodelan Template |
Lipatan Alfa | T1030 | 6 kotoran | 247.26 | 3.87 | 0.3515 |
Algoritme pelipatan sekarang dibandingkan satu sama lain untuk beberapa urutan FASTA: T1030, T1090, dan T1076. Urutan target baru mungkin tidak memiliki struktur pdb dasar dalam database referensi dan oleh karena itu berguna untuk membandingkan variabilitas antara algoritma pelipatan.
. | Urutan Masukan | Perbandingan Dengan | RMSD | RMSD dengan Superposisi | Skor Pemodelan Template |
Lipatan Alfa | T1030 | BukaLipat | 73.21 | 24.8 | 0.0018 |
Lipatan Alfa | T1076 | BukaLipat | 38.71 | 28.87 | 0.0047 |
Lipatan Alfa | T1090 | BukaLipat | 30.03 | 20.45 | 0.005 |
Tangkapan layar berikut menunjukkan jalannya ProteinFoldWorkflow
untuk tiga urutan input FASTA dengan SageMaker Pipeline:
Kami juga mencatat metrik dengan Eksperimen SageMaker sebagai proses baru dari eksperimen yang sama yang dibuat oleh alur:
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)
Kami kemudian menganalisis dan memvisualisasikan proses ini pada Percobaan halaman di SageMaker Studio.
Bagan berikut menggambarkan nilai RMSD antara AlphaFold dan OpenFold untuk tiga urutan: T1030, T1076, dan T1090.
Kesimpulan
Dalam postingan ini, kami menjelaskan cara menggunakan SageMaker Pipelines untuk menyiapkan dan menjalankan alur kerja pelipatan protein dengan dua algoritme prediksi struktur populer: AlphaFold2 dan OpenFold. Kami mendemonstrasikan arsitektur solusi berperforma harga dari beberapa tugas yang memisahkan persyaratan komputasi untuk pembuatan MSA dari prediksi struktur. Kami juga menyoroti bagaimana Anda dapat memvisualisasikan, mengevaluasi, dan membandingkan prediksi struktur 3D protein di SageMaker Studio.
Untuk memulai alur kerja pelipatan protein di SageMaker, lihat kode contoh di GitHub repo.
Tentang penulis
Michael Hsieh adalah Arsitek Solusi Spesialis AI/ML Utama. Dia bekerja dengan pelanggan HCLS untuk memajukan perjalanan ML mereka dengan teknologi AWS dan keahliannya dalam pencitraan medis. Sebagai transplantasi Seattle, dia suka menjelajahi alam ibu yang luar biasa yang ditawarkan kota ini, seperti jalur pendakian, kayak pemandangan di SLU, dan matahari terbenam di Shilshole Bay.
Shivam Patel adalah Arsitek Solusi di AWS. Dia berasal dari latar belakang R&D dan menggabungkannya dengan pengetahuan bisnisnya untuk memecahkan masalah kompleks yang dihadapi pelanggannya. Shivam sangat tertarik dengan beban kerja dalam pembelajaran mesin, robotika, IoT, dan komputasi performa tinggi.
Hasan Poonawala adalah Arsitek Solusi Spesialis AI/ML Senior di AWS, Hasan membantu pelanggan merancang dan menerapkan aplikasi pembelajaran mesin dalam produksi di AWS. Dia memiliki lebih dari 12 tahun pengalaman kerja sebagai ilmuwan data, praktisi pembelajaran mesin, dan pengembang perangkat lunak. Di waktu senggangnya, Hasan suka menjelajah alam dan menghabiskan waktu bersama teman dan keluarga.
Jasleen Grewal adalah Ilmuwan Terapan Senior di Amazon Web Services, tempat dia bekerja dengan pelanggan AWS untuk memecahkan masalah dunia nyata menggunakan pembelajaran mesin, dengan fokus khusus pada kedokteran presisi dan genomik. Dia memiliki latar belakang yang kuat dalam bioinformatika, onkologi, dan genomik klinis. Dia bersemangat menggunakan AI/ML dan layanan cloud untuk meningkatkan perawatan pasien.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Otomotif / EV, Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- BlockOffset. Modernisasi Kepemilikan Offset Lingkungan. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- Tentang Kami
- AC
- mempercepat
- mengakses
- diakses
- ketepatan
- tepat
- asiklik
- menambahkan
- diadopsi
- memajukan
- uang muka
- mempengaruhi
- Setelah
- lagi
- terhadap
- AI / ML
- algoritma
- algoritma
- penjajaran
- Semua
- mengizinkan
- memungkinkan
- sepanjang
- juga
- Amazon
- Amazon SageMaker
- Studio Amazon SageMaker
- Amazon Web Services
- an
- analisis
- menganalisa
- dan
- Lain
- Apa pun
- aplikasi
- terapan
- arsitektur
- ADALAH
- DAERAH
- argumen
- AS
- penilaian
- At
- secara otomatis
- tersedia
- rata-rata
- jauh
- AWS
- kembali
- latar belakang
- mendasarkan
- berdasarkan
- Teluk
- BE
- karena
- menjadi
- sebelum
- Awal
- makhluk
- selain
- TERBAIK
- Lebih baik
- antara
- Milyar
- miliaran
- biomedis
- biofarma
- Blok
- tubuh
- kedua
- membawa
- Membawa
- luas
- membangun
- Bangunan
- bisnis
- by
- panggilan
- bernama
- CAN
- calon
- calon
- kemampuan
- mampu
- yang
- perubahan
- Saluran
- Grafik
- pilihan
- Kota
- kelas
- Klinis
- Penyelesaian
- awan
- layanan cloud
- Kelompok
- kode
- basis kode
- Kode
- Berkolaborasi
- menggabungkan
- menggabungkan
- datang
- komersial
- Umum
- menyampaikan
- membandingkan
- dibandingkan
- perbandingan
- cocok
- kompetisi
- lengkap
- Lengkap
- Selesaikan
- kompleks
- komponen
- komponen
- Senyawa
- komputasi
- menghitung
- komputasi
- konfigurasi
- membangun
- konstruksi
- Wadah
- mengandung
- Biaya
- penghematan biaya
- Biaya
- sepasang
- membuat
- dibuat
- Sekarang
- adat
- pelanggan
- DAG
- data
- manajemen data
- pengolahan data
- ilmuwan data
- Basis Data
- database
- Tanggal
- mendalam
- belajar mendalam
- Default
- menetapkan
- didefinisikan
- mendefinisikan
- mendemonstrasikan
- menunjukkan
- Ketergantungan
- menyebarkan
- Berasal
- dijelaskan
- Mendesain
- dirancang
- diinginkan
- terperinci
- Menentukan
- ditentukan
- Pengembang
- Pengembangan
- berbeda
- sulit
- penemuan
- membahas
- Penyakit
- Keragaman
- Terbagi
- Buruh pelabuhan
- turun
- Download
- obat
- Obat-obatan
- selama
- dinamis
- setiap
- Terdahulu
- mudah
- Efektif
- antara
- aktif
- akhir
- entitas
- masuk
- Lingkungan Hidup
- lingkungan
- mengevaluasi
- akhirnya
- Setiap
- contoh
- pengecualian
- dieksekusi
- eksekusi
- ada
- mahal
- pengalaman
- eksperimen
- eksperimen
- keahlian
- penjelasan
- menyelidiki
- Menjelajahi
- dihadapi
- Gagal
- keluarga
- Fitur
- Fitur
- File
- File
- terakhir
- Akhirnya
- Pertama
- pertama kali
- cocok
- keluwesan
- secara fleksibel
- Fokus
- mengikuti
- berikut
- berikut
- Untuk
- format
- teman
- dari
- penuh
- sepenuhnya
- fungsionil
- lebih lanjut
- mengumpulkan
- menghasilkan
- generasi
- genomik
- mendapatkan
- diberikan
- Go
- GPU
- grafik
- besar
- sangat
- Setengah
- tangan
- segenggam
- membahayakan
- Memiliki
- he
- berat
- membantu
- membantu
- di sini
- High
- tingkat tinggi
- kinerja tinggi
- berkualitas tinggi
- lebih tinggi
- paling tinggi
- Disorot
- -nya
- tuan
- JAM
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTML
- http
- HTTPS
- Ratusan
- Identifikasi
- mengenali
- Siaga
- if
- menggambarkan
- gambar
- gambar
- Pencitraan
- implementasi
- mengimpor
- memperbaiki
- perbaikan
- in
- memasukkan
- termasuk
- Termasuk
- menggabungkan
- independen
- sendiri-sendiri
- informasi
- Infrastruktur
- memasukkan
- input
- dalam
- install
- contoh
- interaktif
- interaktif
- Antarmuka
- ke
- memperkenalkan
- idiot
- IT
- NYA
- Pekerjaan
- Jobs
- perjalanan
- jpg
- hanya
- terus
- kunci
- menendang
- Tahu
- pengetahuan
- dikenal
- Terakhir
- Latensi
- Terbaru
- jalankan
- lapisan
- lapisan
- Memimpin
- pengetahuan
- paling sedikit
- membiarkan
- Tingkat
- Perpustakaan
- Hidup
- 'like'
- kemungkinan
- baris
- link
- lokal
- tempat
- lokasi
- mencatat
- penebangan
- Panjang
- mencintai
- menurunkan
- terendah
- mesin
- Mesin belajar
- membuat
- mengelola
- berhasil
- pengelolaan
- pelaksana
- manual
- Mungkin..
- McKinsey
- mekanisme
- medis
- obat
- Metadata
- metode
- metode
- Metrik
- jutaan
- ML
- mode
- model
- pemodelan
- model
- Memantau
- pemantauan
- lebih
- paling
- ibu
- MOUNT
- banyak
- beberapa
- nama
- Alam
- Perlu
- membutuhkan
- jaringan
- jaringan
- jaringan saraf
- New
- sasaran baru
- berikutnya
- NIH
- terutama
- buku catatan
- sekarang
- jumlah
- of
- lepas
- menawarkan
- Penawaran
- Oke
- on
- Sesuai Permintaan
- ONE
- hanya
- ke
- operasi
- optimal
- Optimize
- pilihan
- or
- urutan
- Lainnya
- kami
- keluaran
- lebih
- halaman
- Paralel
- parameter
- parameter
- bagian
- tertentu
- rekan
- lulus
- Lulus
- bergairah
- path
- pasien
- pasien
- pola
- untuk
- prestasi
- pipa saluran
- plato
- Kecerdasan Data Plato
- Data Plato
- Titik
- Populer
- diisi
- Pos
- perlu
- Ketelitian
- meramalkan
- diprediksi
- memprediksi
- ramalan
- Prediksi
- Mempersiapkan
- prasyarat
- menyajikan
- sebelumnya
- harga pompa cor beton mini
- primer
- Utama
- Sebelumnya
- penentuan prioritas
- Masalah
- masalah
- proses
- proses
- pengolahan
- Produk
- Produksi
- program
- Kemajuan
- janji
- tepat
- Protein
- Protein
- memberikan
- disediakan
- menyediakan
- menempatkan
- Ular sanca
- segera
- R & D
- nyata
- dunia nyata
- baru
- mengacu
- daerah
- Hubungan
- tinggal
- luar biasa
- berulang
- BERKALI-KALI
- gudang
- diwakili
- mewakili
- membutuhkan
- wajib
- kebutuhan
- Persyaratan
- penelitian
- peneliti
- Sumber
- masing-masing
- dihasilkan
- Hasil
- robotika
- Run
- berjalan
- berjalan
- s
- pembuat bijak
- Pipa SageMaker
- sama
- penghematan
- Tabungan
- Skalabilitas
- terukur
- Skala
- Ilmu
- ilmuwan
- ilmuwan
- skor
- penyaringan
- script
- SDK
- Pencarian
- Seattle
- Kedua
- Bagian
- melihat
- biji
- terlihat
- seleksi
- senior
- Urutan
- Seri
- layanan
- Layanan
- set
- set
- pengaturan
- penyiapan
- beberapa
- dia
- harus
- Menunjukkan
- ditunjukkan
- Pertunjukkan
- menutup
- penting
- mirip
- Sederhana
- disederhanakan
- tunggal
- So
- Perangkat lunak
- larutan
- Solusi
- MEMECAHKAN
- sumber
- khusus
- spesialis
- tertentu
- Secara khusus
- kekhususan
- ditentukan
- Spektroskopi
- menghabiskan
- Tahap
- awal
- mulai
- Mulai
- dimulai
- Status
- Langkah
- Tangga
- penyimpanan
- tersimpan
- efisien
- kuat
- struktural
- struktur
- studio
- pengajuan
- menyerahkan
- disampaikan
- sukses
- seperti itu
- cocok
- Matahari terbenam
- superposisi
- Mendukung
- sistem
- sistem
- tabel
- Mengambil
- Dibutuhkan
- pengambilan
- target
- target
- tim
- Teknologi
- Template
- template
- istilah
- pengujian
- bahwa
- Grafik
- Sumber
- mereka
- Mereka
- kemudian
- karena itu
- Ini
- mereka
- Ketiga
- ini
- itu
- ribuan
- tiga
- Melalui
- keluaran
- waktu
- membuang-buang waktu
- untuk
- bersama
- alat
- puncak
- Lacak
- jalur
- tradisional
- Pelatihan VE
- terlatih
- Pelatihan
- transformator
- benar
- dua
- mengetik
- khas
- khas
- ui
- memahami
- pemahaman
- sayangnya
- tidak dikenal
- diperbarui
- upload
- us
- menggunakan
- bekas
- Pengguna
- Pengguna Pengalaman
- User Interface
- Pengguna
- kegunaan
- menggunakan
- pengesahan
- nilai
- variasi
- berbagai
- sangat
- melalui
- visualisasi
- adalah
- Cara..
- we
- jaringan
- layanan web
- berbasis web
- berat
- BAIK
- ketika
- yang
- sementara
- Wikipedia
- akan
- dengan
- dalam
- tanpa
- Kerja
- alur kerja
- Alur kerja
- bekerja
- dunia
- akan
- tertulis
- x-ray
- tahun
- Kamu
- Anda
- zephyrnet.dll