İlaç geliştirme, binlerce ilaç adayının taranmasını ve olası sonuçların değerlendirilmesi için hesaplamalı veya deneysel yöntemlerin kullanılmasını içeren karmaşık ve uzun bir süreçtir. McKinsey'e göre, tek bir ilacın hastalık hedefi belirleme, ilaç taraması, ilaç hedefi doğrulaması ve nihai olarak ticari lansmandan geçmesi 10 yıl alabilir ve ortalama 2.6 milyar dolara mal olabilir. İlaç keşfi, hastalara en az zarar vererek etkili olma olasılığı en yüksek aday ilaçları üreten bu boru hattının araştırma bileşenidir. Makine öğrenimi (ML) yöntemleri, ilaç keşif sürecinin her aşamasında uygun bileşiklerin belirlenmesine yardımcı olabilir, bu da daha düzenli ilaç önceliklendirmesi ve testiyle sonuçlanarak ilaç geliştirme maliyetlerinde milyarlarca tasarruf sağlar (daha fazla bilgi için bkz. Biyofarma araştırmasında yapay zeka: Odaklanma ve ölçeklendirme zamanı).
İlaç hedefleri tipik olarak biyolojik varlıklardır. proteinler, hayatın yapı taşları. Bir proteinin 3 boyutlu yapısı, bir ilaç bileşiği ile nasıl etkileştiğini belirler; bu nedenle, protein 3D yapısının anlaşılması, hedef protein yapısına daha iyi uyan ilaç bileşiklerini tarayarak ilaç geliştirme sürecine önemli iyileştirmeler ekleyebilir. Protein yapısı tahmininin yararlı olabileceği başka bir alan, proteinlerin çeşitliliğini anlamaktır, böylece vücuttaki diğer proteinleri etkilemeden yalnızca belirli proteinleri seçici olarak hedefleyen ilaçları seçiyoruz (daha fazla bilgi için bkz. Biyomedikal araştırmalarda hedef değerlendirmeyi iyileştirme: GOT-IT tavsiyeleri). Hedef proteinlerin hassas 3B yapıları, daha yüksek özgüllüğe ve diğer proteinlerle daha düşük çapraz etkileşim olasılığına sahip ilaç tasarımına olanak sağlayabilir.
Bununla birlikte, proteinlerin 3 boyutlu yapılarına nasıl katlanacağını tahmin etmek zor bir problemdir ve X-ışını kristalografisi ve NMR spektroskopisi gibi geleneksel deneysel yöntemler zaman alıcı ve pahalı olabilir. Protein araştırması için derin öğrenme yöntemlerindeki son gelişmeler, protein katlanmasını olağanüstü bir doğrulukla tahmin etmek için sinir ağlarını kullanma konusunda umut vaat ediyor. gibi katlama algoritmaları AlfaKatlama2, ESM Katlama, Açık Katlama, ve gülTTAFkat protein yapılarının doğru modellerini hızlı bir şekilde oluşturmak için kullanılabilir. Ne yazık ki, bu modellerin çalıştırılması hesaplama açısından pahalıdır ve sonuçları binlerce aday protein yapısı ölçeğinde karşılaştırmak külfetli olabilir. Bu çeşitli araçları kullanmak için ölçeklenebilir bir çözüm, araştırmacıların ve ticari Ar-Ge ekiplerinin protein yapısı tahminindeki en son gelişmeleri hızlı bir şekilde dahil etmelerine, deney süreçlerini yönetmelerine ve araştırma ortaklarıyla işbirliği yapmalarına olanak tanır.
Amazon Adaçayı Yapıcı makine öğrenimi için özel olarak oluşturulmuş geniş bir yetenek grubunu bir araya getirerek yüksek kaliteli makine öğrenimi modellerini hızlı bir şekilde hazırlamak, oluşturmak, eğitmek ve dağıtmak için tam olarak yönetilen bir hizmettir. Modellerinizi oluşturmaya, eğitmeye ve test etmeye odaklanabilmeniz için altyapıyı, veri yönetimini ve ölçeklenebilirlik gereksinimlerini soyutlayarak makine öğrenimi için tamamen yönetilen bir ortam sunar.
Bu gönderide, protein katlama yapısı tahmini iş akışlarının çalışmasını basitleştiren, SageMaker ile tam olarak yönetilen bir makine öğrenimi çözümü sunuyoruz. Öncelikle çözümü üst düzeyde ve kullanıcı deneyimini tartışıyoruz. Ardından, SageMaker ile AlphaFold2 ve OpenFold'un hesaplama için optimize edilmiş iş akışlarını kolayca nasıl kuracağınızı anlatacağız. Son olarak, tipik bir analizin parçası olarak protein yapısı tahminlerini nasıl izleyebileceğinizi ve karşılaştırabileceğinizi gösteriyoruz. Bu çözümün kodu aşağıda mevcuttur GitHub deposu.
Çözüme genel bakış
Bu çözümde, bilim adamları etkileşimli olarak protein katlama deneyleri başlatabilir, 3 boyutlu yapıyı analiz edebilir, işin ilerleyişini izleyebilir ve deneyleri takip edebilir. Amazon SageMaker Stüdyosu.
Aşağıdaki ekran görüntüsü, Amazon SageMaker Studio ile yapılan tek bir protein katlama iş akışını göstermektedir. Bir not defterinde 3B yapının görselleştirilmesini, iş akışındaki SageMaker işlerinin çalışma durumunu ve girdi parametrelerine, çıktı verilerine ve günlüklerine bağlantılar içerir.
Aşağıdaki diyagram üst düzey çözüm mimarisini göstermektedir.
Mimariyi anlamak için önce bir protein katlama deneyinin temel bileşenlerini şu şekilde tanımlıyoruz:
- FASTA hedef dizi dosyası - FASTA formatı nükleotitlerin veya amino asitlerin tek harfli kodlar kullanılarak temsil edildiği, nükleotit dizilerini veya amino asit (protein) dizilerini temsil etmek için metin tabanlı bir formattır.
- Genetik veritabanları – Genetik veri tabanı, kullanıcıların genetik verileri almalarını sağlamak için yazılımla birlikte depolanan bir veya daha fazla genetik veri setidir. AlphaFold ve OpenFold algoritmalarını çalıştırmak için birkaç genetik veri tabanı gerekir. BFD, MGnify, PDB70, PDB, PDB dizileri, UniRef30 (FKA UniClust30), UniProt, ve UniRef90.
- Çoklu dizi hizalaması (MSA) - A sıra hizalama diziler arasındaki fonksiyonel, yapısal veya evrimsel ilişkilerin bir sonucu olabilecek benzerlik bölgelerini belirlemek için bir proteinin birincil dizilerini düzenlemenin bir yoludur. Tahminler için giriş özellikleri, MSA verilerini içerir.
- Protein yapısı tahmini – Girdi hedef dizilerinin yapısı, aşağıdakiler gibi katlama algoritmalarıyla tahmin edilir: AlfaKatlama2 ve Açık Katlama bilinen protein şablonları üzerinde eğitilmiş çok kanallı bir transformatör mimarisi kullanan.
- Görselleştirme ve ölçümler – 3B yapıyı görselleştirin py3Dmol etkileşimli bir 3D görselleştirme olarak kütüphane. Özellikle yapı tahminlerini değerlendirmek ve karşılaştırmak için metrikleri kullanabilirsiniz. kök-ortalama-kare sapması (RMSD) ve şablon modelleme Puanı (TM puanı)
İş akışı aşağıdaki adımları içerir:
- Bilim adamları, kod tabanını keşfetmek, SageMaker Studio not defterlerinde protein dizisi analizi iş akışları oluşturmak ve SageMaker Studio veya SageMaker SDK'daki grafik kullanıcı arabirimi aracılığıyla protein katlama boru hatlarını çalıştırmak için web tabanlı SageMaker ML IDE'yi kullanıyor.
- AlphaFold ve OpenFold'un gerektirdiği genetik ve yapı veritabanları, boru hattı kurulumundan önce aşağıdakiler kullanılarak indirilir: Amazon SageMaker İşlemeML veri işleme için geçici bir bilgi işlem özelliği olan Amazon Basit Depolama Hizmeti (Amazon S3) paketi. SageMaker Processing ile herhangi bir bilgi işlem kümesi ve depolaması kurmadan ve kümeyi kapatmaya gerek kalmadan uygun bir bilgi işlemle uzun süredir devam eden bir işi çalıştırabilirsiniz. Veriler otomatik olarak belirtilen bir S3 grup konumuna kaydedilir.
- An Lustre için Amazon FSx veri havuzu, veritabanlarının kaydedildiği S3 grup konumu olacak şekilde dosya sistemi kurulur. Luster için FSx, düşük gecikmeli dosya alımıyla yüzlerce GB/sn'lik aktarım hızına ve milyonlarca IOPS'ye ölçeklenebilir. Bir tahmin edici işini başlatırken SageMaker, FSx for Lustre dosya sistemini örnek dosya sistemine bağlar ve ardından komut dosyasını başlatır.
- Amazon SageMaker Ardışık Düzenleri birden fazla protein katlama algoritması çalışmasını düzenlemek için kullanılır. SageMaker Pipelines, etkileşimli iş gönderimi, ilerlemenin izlenebilirliği ve tekrarlanabilirlik için istenen görsel arabirimi sunar.
- Bir ardışık düzen içinde, hesaplama açısından ağır iki protein katlama algoritması (AlphaFold ve OpenFold), SageMaker tahmin edicileri ile çalıştırılır. Bu yapılandırma, algoritmalarda yüksek verimli veritabanı araması için bir FSx for Lustre dosya sisteminin bağlanmasını destekler. Tek bir çıkarım çalıştırması iki adıma ayrılır: optimum bir CPU örneği kullanan bir MSA oluşturma adımı ve bir GPU örneği kullanan bir yapı tahmin adımı. Adım 2'deki SageMaker İşleme gibi bu alt adımlar geçicidir, isteğe bağlıdır ve tamamen yönetilir. MSA dosyaları, tahmin edilen pdb yapı dosyaları ve diğer meta veri dosyaları gibi iş çıktıları, belirtilen bir S3 konumuna kaydedilir. Bir ardışık düzen, tek bir protein katlama algoritması çalıştırmak veya ortak bir MSA yapısından sonra hem AlphaFold hem de OpenFold çalıştırmak üzere tasarlanabilir.
- Protein katlama tahmininin çalıştırmaları otomatik olarak izlenir. Amazon SageMaker Deneyleri daha fazla analiz ve karşılaştırma için. İş günlükleri tutulur Amazon Bulut İzleme izlemek için.
Önkoşullar
Bu gönderiyi takip etmek ve bu çözümü çalıştırmak için birkaç önkoşulu tamamlamış olmanız gerekir. Bakın GitHub deposu her adımın ayrıntılı açıklaması için.
SageMaker'da protein katlamayı çalıştırın
Hesaplama açısından ağır protein katlama işlerini çok fazla altyapı yükü olmadan çalıştırmak için SageMaker'ın tam olarak yönetilen yeteneklerini kullanıyoruz. SageMaker, genel veri işleme, eğitim ve barındırma için özel betikleri çalıştırmak üzere kapsayıcı görüntülerini kullanır. Birkaç satırlık bir kapsayıcı görüntüsüne sahip bir program çalıştıran isteğe bağlı kısa ömürlü bir işi kolayca başlatabilirsiniz. Adaçayı Yapıcı SDK'sı herhangi bir bilgi işlem altyapısını kendi kendine yönetmeden. Spesifik olarak, SageMaker tahmin edici işi, kapsayıcı görüntüsü seçimi, çalıştırma komut dosyası ve örnek yapılandırması söz konusu olduğunda esneklik sağlar ve bir çok çeşitli depolama seçenekleriFSx for Lustre gibi dosya sistemleri dahil. Aşağıdaki diyagram bu mimariyi göstermektedir.
AlphaFold ve OpenFold gibi katlama algoritmaları, bilinmeyen peptit dizilerinin yapısını tahmin etmek için bilinen protein şablonları üzerinde eğitilmiş çok kanallı bir transformatör mimarisi kullanır. Bu tahminler, en iyi verimi ve en düşük gecikmeyi sağlamak için GPU örneklerinde çalıştırılabilir. Ancak bu tahminler için girdi özellikleri MSA verilerini içerir. MSA algoritmaları CPU'ya bağımlıdır ve birkaç saatlik işlem süresi gerektirebilir.
Aynı bilgi işlem ortamında hem MSA hem de yapı tahmini adımlarını çalıştırmak, MSA adımı çalışırken pahalı GPU kaynakları boşta kaldığından, maliyet açısından verimsiz olabilir. Bu nedenle, iş akışını iki adımda optimize ediyoruz. İlk olarak, belirli bir FASTA girdi dizisi ve kaynak genetik veritabanları verilen MSA hizalamasını hesaplamak için bir CPU eşgörünümü üzerinde bir SageMaker tahmin edici işi çalıştırıyoruz. Ardından, protein yapısını belirli bir giriş MSA hizalaması ve AlphaFold veya OpenFold gibi bir katlama algoritmasıyla tahmin etmek için bir GPU örneğinde bir SageMaker tahmin edici işi çalıştırıyoruz.
MSA oluşturmayı çalıştırın
MSA hesaplaması için özel bir komut dosyası ekledik run_create_alignment.sh
ve create_alignments.py
mevcut AlphaFold tahmin kaynağından uyarlanan komut dosyası run_alphafold.py. Kaynak AlphaFold kodu güncellenirse, bu komut dosyasının güncellenmesi gerekebileceğini unutmayın. Özel komut dosyası, SageMaker tahmin aracına şu yolla sağlanır: kod modu. Konteyner görüntüsünün, komut dosyası modu uygulamasının ve bir SageMaker tahminci işinin temel bileşenleri de katlama algoritmalarını çalıştırmanın bir sonraki adımının parçasıdır ve sonraki bölümde daha ayrıntılı olarak açıklanmaktadır.
AlphaFold'u çalıştırın
SageMaker kullanarak tek bir protein dizisiyle bir AlphaFold yapı tahmini çalıştırarak başlıyoruz. Bir AlphaFold işinin çalıştırılması, şurada görülebileceği gibi üç basit adımdan oluşur: 01-run_stepbystep.ipynb
. İlk olarak, AlphaFold'a dayalı bir Docker kapsayıcı görüntüsü oluşturuyoruz. Dockerfile böylece biz de yapabiliriz AlphaFold'u çalıştır SageMaker'da. İkinci olarak, komut dosyasını oluşturuyoruz run_alphafold.sh
bu, AlphaFold'un nasıl çalıştırılması gerektiğini bildirir. Üçüncüsü, bir yapı kurup çalıştırıyoruz. SageMaker tahmincisi iş için komut dosyası, kapsayıcı, örnek türü, veriler ve yapılandırma ile.
Konteyner görüntüsü
SageMaker'da AlphaFold'u (OpenFold da) çalıştırmak için bir konteyner görüntüsünün çalıştırma zamanı gereksinimi, AlphaFold'un Dockerfile'ı ile büyük ölçüde basitleştirilebilir. Bir SageMaker işinin kapsayıcı görüntüsüyle iletişim kurabilmesi için, SageMaker'a özel bir Python kitaplığı kurmak için en üste birkaç basit katman eklememiz yeterlidir. Aşağıdaki koda bakın:
Giriş komut dosyası
Daha sonra komut dosyasını sağlarız run_alphafold.sh
o çalışır run_alphafold.py şu anda kapsayıcıya yerleştirilmiş olan AlphaFold deposundan /app/alphafold/run_alphafold.py
. Bu komut dosyası çalıştırıldığında, genetik veritabanlarının konumu ve FASTA girişi dizisi, SageMaker tarafından ortam değişkenleri olarak doldurulacaktır (SM_CHANNEL_GENETIC
ve SM_CHANNEL_FASTA
, sırasıyla). Daha fazla bilgi için bkz. Giriş Veri Yapılandırması.
Tahminci işi
Daha sonra, SageMaker'a örnek türü veya sayısı, tercih ettiğiniz ağ seçeneği ve iş için diğer parametrelerle belirtilen bir kapsayıcıyı kullanarak belirli bir komut dosyasını çalıştırma talimatı veren aşağıdaki anahtar giriş argümanlarıyla bir SageMaker tahmincisi kullanarak bir iş yaratacağız. vpc_subnet_ids
ve security_group_ids
işe, SageMaker işinde dosya sistemine bağlanabilmemiz ve erişebilmemiz için FSx for Luster dosya sisteminin bulunduğu belirli bir VPC içinde çalışmasını söyleyin. Çıkış yolu, AlphaFold'un son ürününün başarılı bir işin sonunda SageMaker tarafından otomatik olarak yükleneceği bir S3 klasör konumunu ifade eder. Burada ayrıca bir parametre ayarlıyoruz DB_PRESET
, örneğin, iletilecek ve içinde erişilecek run_alphafold.sh
çalışma zamanı sırasında çevresel bir değişken olarak. Aşağıdaki koda bakın:
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,
...)
Son olarak, verileri toplarız ve işin nerede olduklarını bildiririz. bu fasta
veri kanalı, işin başında bir S3 konumundan bilgi işlem örneğine indirilecek bir S3 veri girişi olarak tanımlanır. Bu, giriş sırasını yönetmek ve belirlemek için büyük esneklik sağlar. Öte yandan, genetic
veri kanalı olarak tanımlanır FileSystemInput
işin başında örneğe monte edilecek. 3 TB'a yakın veri getirmenin bir yolu olarak bir FSx for Luster dosya sisteminin kullanılması, verilerin bir S3 klasöründen bir bilgi işlem örneğine tekrar tekrar indirilmesini önler. biz diyoruz .fit
AlphaFold işini başlatma yöntemi:
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
Bu kadar. Az önce AlphaFold'u çalıştırmak için SageMaker'a bir iş gönderdik. .pdb tahmin dosyalarını içeren günlükler ve çıktılar Amazon S3'e yazılacaktır.
OpenFold'u Çalıştır
OpenFold'u SageMaker'da çalıştırmak, ikinci yarısında gösterildiği gibi benzer bir model izler. 01-run_stepbystep.ipynb
. SageMaker kapsayıcı görüntüsünü OpenFold'un üzerinde uyumlu hale getirmek için önce SageMaker'a özgü kitaplığı elde etmek için basit bir katman ekliyoruz. Dockerfile. İkinci olarak, bir yapı oluşturuyoruz run_openfold.sh
SageMaker işi için bir giriş noktası olarak. İçinde run_openfold.sh
, biz koşuyoruz run_pretrained_openfold.py OpenFold'dan kapsayıcı görüntüsünde mevcut AlphaFold ve OpenFold'un model ağırlıkları için indirdiğimiz aynı genetik veritabanlarıyla (--openfold_checkpoint_path
). Girdi veri konumları açısından, genetik veritabanları kanalı ve FASTA kanalının yanı sıra üçüncü bir kanalı tanıtıyoruz, SM_CHANNEL_PARAM
, böylece bir işi tanımlayıp gönderirken tahmin edici yapıdan seçilen model ağırlıklarını esnek bir şekilde aktarabiliriz. SageMaker tahmin aracıyla, farklı özelliklere sahip işleri kolayca gönderebiliriz. entry_point
, image_uri
, environment
, inputs
ve aynı imzaya sahip OpenFold için diğer yapılandırmalar. Veri kanalı için yeni bir kanal ekliyoruz, param
FSx for Luster dosya sisteminden ve Amazon S3'ten FASTA dosyasından aynı genetik veritabanlarının kullanımıyla birlikte bir Amazon S3 girişi olarak. Bu, yine, iş yapısından kullanılacak model ağırlığını kolayca belirtmemize izin verir. Aşağıdaki koda bakın:
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)
İş tamamlandıktan sonra nihai çıktıya erişmek için aşağıdaki komutları çalıştırıyoruz:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Çalışma zamanı performansı
Aşağıdaki tablo, tek bir hesaplama işine kıyasla MSA hizalama ve katlama algoritmalarını iki işe bölerek AlphaFold ve OpenFold için sırasıyla %57 ve %51'lik maliyet tasarruflarını göstermektedir. Her iş için hesaplamayı doğru boyutlandırmamızı sağlar: MSA hizalaması için ml.m5.4xlarge ve AlphaFold ve OpenFold için ml.g5.2xlarge.
iş Ayrıntıları | Örnek Türü | FASTA Dizisini Girin | Süre | Ücret |
MSA hizalaması + OpenFold | ml.g5.4xlarge | T1030 | 50 dakika | $1.69 |
MSA hizalaması + AlphaFold | ml.g5.4xlarge | T1030 | 65 dakika | $2.19 |
MSA hizalaması | ml.m5.4xlarge | T1030 | 46 dakika | $0.71 |
Açık Katlama | ml.g5.2xlarge | T1030 | 6 dakika | $0.15 |
AlfaKatlama | ml.g5.2xlarge | T1030 | 21 dakika | $0.53 |
SageMaker Pipelines kullanarak tekrarlanabilir bir iş akışı oluşturun
SageMaker Pipelines ile adımlar arasında verileri yönetmeyi, çalıştırmalarını düzenlemeyi ve günlüğe kaydetmeyi sağlayan bir makine öğrenimi iş akışı oluşturabiliriz. SageMaker Pipelines ayrıca işlem hattımızı görselleştirmemiz ve makine öğrenimi iş akışımızı kolayca çalıştırmamız için bize bir kullanıcı arabirimi sağlar.
Bir dizi taranarak bir boru hattı oluşturulur. adımlar. Bu boru hattında, üçünü birleştiriyoruz eğitim adımları, bir SageMaker tahmincisi gerektiren. Bu not defterinde tanımlanan tahmin ediciler, içinde tanımlananlara çok benzer. 01-run_stepbystep.ipynb
, giriş ve çıkışlarımızı işaret etmek için Amazon S3 konumlarını kullanmamız dışında. Dinamik değişkenler, SageMaker Pipelines'ın adımları birbiri ardına yürütmesine ve ayrıca kullanıcının başarısız adımları yeniden denemesine izin verir. Aşağıdaki ekran görüntüsü, işlem hattımızın her adımı için gereksinimler ve aralarındaki ilişkiler hakkında bilgi sağlayan Yönlendirilmiş Asiklik Grafiği (DAG) göstermektedir.
Dinamik değişkenler
SageMaker Pipelines, her işlem hattı çalıştırmasının başlangıcında kullanıcı girdilerini alabilir. Her deneyde değiştirmek istediğimiz aşağıdaki dinamik değişkenleri tanımlıyoruz:
- FastaInputS3URI – SDK, Boto3 aracılığıyla veya manuel olarak yüklenen FASTA dosyasının Amazon S3 URI'si.
- HızlıDosyaAdı – FASTA dosyasının adı.
- db_preset – Arasında seçim
full_dbs
orreduced_dbs
. - Maksimum Şablon Tarihi – AlphaFold'un MSA adımı, bu parametre tarafından belirtilen tarihten önce mevcut şablonları arayacaktır.
- ModelHazır Ayarı – Dahil olmak üzere AlphaFold modelleri arasından seçim yapın
monomer
,monomer_casp14
,monomer_ptm
, vemultimer
. - NumMultimerModel Başına Tahminler – Multimer sistemi kullanılırken model başına çalıştırılacak tohum sayısı.
- Çıkarım ÖrnekTürü – Çıkarım adımları için kullanılacak örnek türü (hem AlphaFold hem de OpenFold). Varsayılan değer ml.g5.2xlarge'dir.
- MSAIÖrnek Türü – MSA adımı için kullanılacak örnek türü. Varsayılan değer ml.m5.4xlarge'dir.
Aşağıdaki koda bakın:
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')
Bir SageMaker işlem hattı, bir dizi adım tanımlanarak ve ardından bunları, önceki bir adımın çıktısının bir sonraki adımın girdisi olacağı belirli bir sırada zincirleyerek oluşturulur. Adımlar paralel olarak çalıştırılabilir ve bir önceki adıma bağımlı olacak şekilde tanımlanabilir. Bu ardışık düzende, paralel olarak çalışan bir AlphaFold çıkarım adımına ve OpenFold çıkarım adımına bağımlılık olan bir MSA adımı tanımlarız. Aşağıdaki koda bakın:
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]
Tüm adımları bir araya getirmek için, Pipeline
class ve bir işlem hattı adı, işlem hattı giriş değişkenleri ve tek tek adımları sağlayın:
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')
Boru hattını çalıştırın
Defterin son hücresinde 02-define_pipeline.ipynb
, SageMaker SDK kullanarak bir boru hattının nasıl çalıştırılacağını gösteriyoruz. Daha önce tanımladığımız dinamik değişkenler aşağıdaki gibidir:
!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
)
Deneyleri izleyin ve protein yapılarını karşılaştırın
Deneyimiz için, örnek bir protein dizisini kullanıyoruz. CASP14 protein yapısı modelleme yöntemlerinin değerlendirilmesi için bağımsız bir mekanizma sağlayan rekabet. Hedef T1030 PDB 6P00 proteininden türetilir ve birincil dizide 237 amino asit bulunur. Hem OpenFold hem de AlphaFold algoritmalarıyla bu girdi dizisinin protein yapısını tahmin etmek için SageMaker ardışık düzenini çalıştırıyoruz.
Ardışık düzen tamamlandığında, her katlama işinden tahmin edilen .pdb dosyalarını indiririz ve kullanarak not defterindeki yapıyı görselleştiririz. py3Dmol, defterdeki gibi 04-compare_alphafold_openfold.ipynb
.
Aşağıdaki ekran görüntüsü, AlphaFold tahmin işinden gelen tahmini gösterir.
Öngörülen yapı, PDB kodu ile bilinen temel referans yapısıyla karşılaştırılır. 6 kaka arşivlendi RCSB. Tahmin performansını temel PDB kodu 6poo'ya göre üç ölçümle analiz ediyoruz: RMSD, süperpozisyonlu RMSD ve içinde açıklandığı gibi şablon modelleme puanı. Yapıları karşılaştırma.
. | Giriş Sırası | İle karşılaştırıldığında | RMSD | Süperpozisyonlu RMSD | Şablon Modelleme Puanı |
AlfaKatlama | T1030 | 6 kaka | 247.26 | 3.87 | 0.3515 |
Katlama algoritmaları artık çoklu FASTA dizileri için birbirleriyle karşılaştırılır: T1030, T1090, ve T1076. Yeni hedef diziler, referans veritabanlarında temel pdb yapısına sahip olmayabilir ve bu nedenle, katlama algoritmaları arasındaki değişkenliği karşılaştırmak yararlıdır.
. | Giriş Sırası | İle karşılaştırıldığında | RMSD | Süperpozisyonlu RMSD | Şablon Modelleme Puanı |
AlfaKatlama | T1030 | Açık Katlama | 73.21 | 24.8 | 0.0018 |
AlfaKatlama | T1076 | Açık Katlama | 38.71 | 28.87 | 0.0047 |
AlfaKatlama | T1090 | Açık Katlama | 30.03 | 20.45 | 0.005 |
Aşağıdaki ekran görüntüsü, ProteinFoldWorkflow
SageMaker Pipeline ile üç FASTA giriş dizisi için:
SageMaker Deneyleri ile metrikleri aynı deneyin işlem hattı tarafından oluşturulan yeni çalıştırmaları olarak da günlüğe kaydederiz:
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)
Daha sonra bu çalıştırmaları analiz eder ve görselleştiririz. Deneyler SageMaker Studio'daki sayfa.
Aşağıdaki tablo, üç dizi için AlphaFold ve OpenFold arasındaki RMSD değerini gösterir: T1030, T1076 ve T1090.
Sonuç
Bu gönderide, protein katlama iş akışlarını iki popüler yapı tahmin algoritmasıyla kurmak ve çalıştırmak için SageMaker Pipelines'ı nasıl kullanabileceğinizi açıkladık: AlphaFold2 ve OpenFold. MSA üretimi için bilgi işlem gereksinimlerini yapı tahmininden ayıran, birden çok işin fiyat performans çözüm mimarisini gösterdik. Ayrıca SageMaker Studio'da proteinlerin tahmin edilen 3B yapılarını nasıl görselleştirebileceğinizi, değerlendirebileceğinizi ve karşılaştırabileceğinizi vurguladık.
SageMaker'da protein katlama iş akışlarına başlamak için aşağıdaki örnek koda bakın. GitHub repo.
yazarlar hakkında
Michael Hsieh Baş AI/ML Uzmanı Çözüm Mimarıdır. AWS teknolojileri ve tıbbi görüntüleme konusundaki uzmanlığıyla makine öğrenimi yolculuklarını ilerletmek için HCLS müşterileriyle birlikte çalışıyor. Seattle nakli olarak, yürüyüş parkurları, SLU'da manzaralı kano ve Shilshole Koyu'ndaki gün batımı gibi şehrin sunduğu harika doğayı keşfetmeye bayılıyor.
Shivam Patel AWS'de bir Çözüm Mimarıdır. Ar-Ge geçmişinden gelir ve müşterilerinin karşılaştığı karmaşık sorunları çözmek için bunu ticari bilgisiyle birleştirir. Shivam, makine öğrenimi, robotik, Nesnelerin İnterneti ve yüksek performanslı bilgi işlem alanındaki iş yükleri konusunda en tutkulu kişidir.
Hasan Poonawala AWS'de Kıdemli AI/ML Uzman Çözüm Mimarı olan Hasan, müşterilerin AWS'de üretimde makine öğrenimi uygulamaları tasarlamasına ve dağıtmasına yardımcı olur. Veri bilimcisi, makine öğrenimi uygulayıcısı ve yazılım geliştiricisi olarak 12 yılı aşkın iş tecrübesine sahiptir. Hasan boş zamanlarında doğayı keşfetmeyi, arkadaşları ve ailesiyle vakit geçirmeyi sever.
Jasleen Grewal Amazon Web Services'ta Kıdemli Uygulamalı Bilim İnsanı olup, burada makine öğrenimini kullanarak gerçek dünya sorunlarını çözmek için AWS müşterileriyle birlikte çalışır ve özellikle hassas tıp ve genomik konularına odaklanır. Biyoinformatik, onkoloji ve klinik genomik alanlarında güçlü bir geçmişe sahiptir. Hasta bakımını iyileştirmek için AI/ML ve bulut hizmetlerini kullanma konusunda tutkulu.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. Otomotiv / EV'ler, karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- Blok Ofsetleri. Çevre Dengeleme Sahipliğini Modernleştirme. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :vardır
- :dır-dir
- :olumsuzluk
- :Neresi
- $UP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- Hakkımızda
- AC
- hızlandırmak
- erişim
- erişilen
- doğruluk
- doğru
- asiklik
- eklemek
- benimsenen
- ilerlemek
- gelişmeler
- etkileyen
- Sonra
- tekrar
- karşı
- AI / ML
- algoritma
- algoritmalar
- hiza
- Türkiye
- izin vermek
- veriyor
- boyunca
- Ayrıca
- Amazon
- Amazon Adaçayı Yapıcı
- Amazon SageMaker Stüdyosu
- Amazon Web Servisleri
- an
- analiz
- çözümlemek
- ve
- Başka
- herhangi
- uygulamaları
- uygulamalı
- mimari
- ARE
- ALAN
- argümanlar
- AS
- değerlendirme
- At
- otomatik olarak
- mevcut
- ortalama
- uzakta
- AWS
- Arka
- arka fon
- baz
- merkezli
- Defne
- BE
- Çünkü
- olur
- önce
- Başlangıç
- olmak
- dışında
- İYİ
- Daha iyi
- arasında
- Milyar
- milyarlarca
- biyomedikal
- biyofarma
- Blokları
- vücut
- her ikisi de
- getirmek
- Bringing
- geniş
- inşa etmek
- bina
- iş
- by
- çağrı
- denilen
- CAN
- aday
- adaylar
- yetenekleri
- yetenekli
- hangi
- değişiklik
- Telegram Kanal
- Grafik
- seçim
- Şehir
- sınıf
- Klinik
- Kapanış
- bulut
- bulut hizmetleri
- Küme
- kod
- kod tabanı
- kodları
- işbirliği yapmak
- birleştirmek
- biçerdöverler
- geliyor
- ticari
- ortak
- iletişim kurmak
- karşılaştırmak
- karşılaştırıldığında
- karşılaştırma
- uyumlu
- rekabet
- tamamlamak
- Tamamlandı
- Tamamladı
- karmaşık
- bileşen
- bileşenler
- Bileşik
- hesaplama
- hesaplamak
- bilgisayar
- yapılandırma
- kurmak
- kas kütlesi inşasında ve
- Konteyner
- içeren
- Ücret
- tasarruf
- maliyetler
- Çift
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- Şu anda
- görenek
- Müşteriler
- DAG
- veri
- veri yönetimi
- veri işleme
- veri bilimcisi
- veritabanı
- veritabanları
- Tarih
- derin
- derin öğrenme
- Varsayılan
- tanımlamak
- tanımlı
- tanımlarken
- göstermek
- gösterdi
- Bağımlılık
- dağıtmak
- Türetilmiş
- tarif edilen
- Dizayn
- tasarlanmış
- İstediğiniz
- detaylı
- Belirlemek
- belirleyen
- Geliştirici
- gelişme
- farklı
- zor
- keşif
- tartışmak
- Hastalık
- Çeşitlilik
- bölünmüş
- liman işçisi
- aşağı
- indir
- ilaç
- İlaçlar
- sırasında
- dinamik
- her
- Daha erken
- kolayca
- Etkili
- ya
- etkinleştirmek
- son
- kişiler
- giriş
- çevre
- çevre
- değerlendirmek
- nihai
- Her
- örnek
- istisna
- infaz
- infaz
- mevcut
- pahalı
- deneyim
- deneme
- deneyler
- Uzmanlık
- açıklama
- keşfetmek
- Keşfetmek
- yüzlü
- başarısız
- aile
- Özellikler(Hazırlık aşamasında)
- Özellikler
- fileto
- dosyalar
- son
- Nihayet
- Ad
- ilk kez
- uygun
- Esneklik
- esnek bir şekilde
- odak
- takip et
- takip etme
- şu
- İçin
- biçim
- arkadaşlar
- itibaren
- tam
- tamamen
- fonksiyonel
- daha fazla
- toplamak
- üretir
- nesil
- genomik
- almak
- verilmiş
- Go
- GPU
- grafik
- harika
- çok
- Yarım
- el
- avuç
- zarar
- Var
- he
- ağır
- yardım et
- yardımcı olur
- okuyun
- Yüksek
- üst düzey
- yüksek performans
- Yüksek kaliteli
- daha yüksek
- en yüksek
- Vurgulanan
- onun
- hosting
- SAAT
- Ne kadar
- Nasıl Yapılır
- Ancak
- HTML
- http
- HTTPS
- Yüzlerce
- Kimlik
- belirlemek
- boş
- if
- göstermektedir
- görüntü
- görüntüleri
- Görüntüleme
- uygulama
- ithalat
- iyileştirmek
- iyileştirmeler
- in
- dahil
- içerir
- Dahil olmak üzere
- birleştirmek
- bağımsız
- bireysel
- bilgi
- Altyapı
- giriş
- girişler
- içeride
- kurmak
- örnek
- interaktif
- etkileşime
- arayüzey
- içine
- tanıtmak
- IOT
- IT
- ONUN
- İş
- Mesleki Öğretiler
- seyahat
- jpg
- sadece
- tuttu
- anahtar
- tekme
- Bilmek
- bilgi
- bilinen
- Soyad
- Gecikme
- son
- başlatmak
- tabaka
- katmanları
- İlanlar
- öğrenme
- en az
- izin
- seviye
- Kütüphane
- hayat
- sevmek
- olasılık
- hatları
- bağlantılar
- lokal olarak
- yer
- yerleri
- log
- günlüğü
- Uzun
- seviyor
- alt
- en düşük
- makine
- makine öğrenme
- yapmak
- yönetmek
- yönetilen
- yönetim
- yönetme
- el ile
- Mayıs..
- McKinsey
- mekanizma
- tıbbi
- tıp
- Metadata
- yöntem
- yöntemleri
- Metrikleri
- milyonlarca
- ML
- Moda
- model
- Modelleme
- modelleri
- izlemek
- izleme
- Daha
- çoğu
- anne
- MOUNT
- çok
- çoklu
- isim
- Tabiat
- gerek
- gerek
- ağ
- ağlar
- nöral ağlar
- yeni
- yeni hedef
- sonraki
- NIH
- özellikle
- defter
- şimdi
- numara
- of
- kapalı
- teklif
- Teklifler
- tamam
- on
- On-Demand
- ONE
- bir tek
- üstüne
- operasyon
- optimum
- optimize
- seçenek
- or
- sipariş
- Diğer
- bizim
- çıktı
- tekrar
- Kanal
- Paralel
- parametre
- parametreler
- Bölüm
- belirli
- ortaklar
- geçmek
- geçti
- tutkulu
- yol
- hasta
- hastalar
- model
- başına
- performans
- boru hattı
- Platon
- Plato Veri Zekası
- PlatoVeri
- Nokta
- Popüler
- nüfuslu
- Çivi
- gerek
- Hassas
- tahmin
- tahmin
- tahmin
- tahmin
- Tahminler
- Hazırlamak
- önkoşullar
- mevcut
- önceki
- fiyat
- birincil
- Anapara
- Önceki
- önceliklendirme
- Sorun
- sorunlar
- süreç
- Süreçler
- işleme
- PLATFORM
- üretim
- Programı
- Ilerleme
- söz
- uygun
- Protein
- Proteinler
- sağlamak
- sağlanan
- sağlar
- koymak
- Python
- hızla
- Ar-Ge
- gerçek
- Gerçek dünya
- son
- ifade eder
- bölgeler
- İlişkiler
- kalmak
- dikkat çekici
- tekrarlanabilir
- DEFALARCA
- Depo
- temsil
- temsil
- gerektirir
- gereklidir
- gereklilik
- Yer Alan Kurallar
- araştırma
- Araştırmacılar
- Kaynaklar
- sırasıyla
- Ortaya çıkan
- Sonuçlar
- robotik
- koşmak
- koşu
- ishal
- s
- sagemaker
- SageMaker Boru Hatları
- aynı
- tasarruf
- Tasarruf
- ölçeklenebilirlik
- ölçeklenebilir
- ölçek
- Bilim
- bilim adamı
- bilim adamları
- Gol
- tarama
- scriptler
- sdk
- Ara
- Seattle
- İkinci
- Bölüm
- görmek
- tohumları
- görüldü
- seçim
- kıdemli
- Dizi
- Dizi
- hizmet
- Hizmetler
- set
- Setleri
- ayar
- kurulum
- birkaç
- o
- meli
- şov
- gösterilen
- Gösteriler
- kapatmak
- önemli
- benzer
- Basit
- basitleştirilmiş
- tek
- So
- Yazılım
- çözüm
- Çözümler
- ÇÖZMEK
- Kaynak
- özel
- uzman
- özel
- özellikle
- özgüllük
- Belirtilen
- Spektroskopisi
- geçirmek
- Aşama
- başlama
- başladı
- XNUMX dakika içinde!
- başlar
- Durum
- adım
- Basamaklar
- hafızası
- saklı
- aerodinamik
- güçlü
- yapısal
- yapı
- stüdyo
- boyun eğme
- sunmak
- gönderilen
- başarılı
- böyle
- uygun
- gün batımı
- üstüne koyma
- Destekler
- sistem
- Sistemler
- tablo
- Bizi daha iyi tanımak için
- alır
- alma
- Hedef
- hedefler
- takım
- Teknolojileri
- şablon
- şablonları
- şartlar
- Test yapmak
- o
- The
- Kaynak
- ve bazı Asya
- Onları
- sonra
- bu nedenle
- Bunlar
- onlar
- Üçüncü
- Re-Tweet
- Bu
- Binlerce
- üç
- İçinden
- verim
- zaman
- zaman tükeniyor
- için
- birlikte
- araçlar
- üst
- İzlenebilirlik
- iz
- geleneksel
- Tren
- eğitilmiş
- Eğitim
- transformatör
- gerçek
- iki
- tip
- tipik
- tipik
- ui
- anlamak
- anlayış
- ne yazık ki
- bilinmeyen
- güncellenmiş
- Yüklenen
- us
- kullanım
- Kullanılmış
- kullanıcı
- Kullanıcı Deneyimi
- Kullanıcı Arayüzü
- kullanıcılar
- kullanım
- kullanma
- onaylama
- değer
- çeşitlilik
- çeşitli
- çok
- üzerinden
- görüntüleme
- oldu
- Yol..
- we
- ağ
- web hizmetleri
- Web tabanlı
- ağırlık
- İYİ
- ne zaman
- hangi
- süre
- Vikipedi
- irade
- ile
- içinde
- olmadan
- İş
- iş akışı
- iş akışları
- çalışır
- Dünya
- olur
- yazılı
- X-ışını
- yıl
- Sen
- zefirnet