Belirlenen 180,000 boyutlu yapılara sahip 3'den fazla benzersiz protein vardır. her yıl on binlerce yeni yapı çözümleniyor. Bu sadece küçük bir kısmı Ayırt edici dizilere sahip 200 milyon bilinen protein. gibi son derin öğrenme algoritmaları AlfaKatlama dizilerini kullanarak proteinlerin 3B yapılarını doğru bir şekilde tahmin edebilir, bu da protein 3B yapı verilerini milyonlara ölçeklendirmeye yardımcı olur. Grafik sinir ağı (GNN), amino asit kalıntılarının grafikleriyle temsil edilebilen protein yapılarından bilgi çıkarmak için etkili bir derin öğrenme yaklaşımı olarak ortaya çıkmıştır. Bireysel protein grafikleri genellikle boyut olarak yönetilebilir birkaç yüz düğüm içerir. On binlerce protein grafiği, aşağıdakiler gibi serileştirilmiş veri yapılarında kolayca saklanabilir: TFkayıt GNN'leri eğitmek için. Ancak, GNN'yi milyonlarca protein yapısı üzerinde eğitmek zordur. Veri serileştirme, tüm terabayt ölçekli veri kümesinin belleğe yüklenmesini gerektirdiğinden milyonlarca protein yapısına ölçeklenebilir değildir.
Bu gönderide, GNN'leri içinde depolanan milyonlarca protein üzerinde eğitmenize olanak tanıyan ölçeklenebilir bir derin öğrenme çözümünü tanıtıyoruz. Amazon DocumentDB (MongoDB uyumluluğu ile) kullanma Amazon Adaçayı Yapıcı.
Açıklama amacıyla, halka açık deneysel olarak belirlenmiş protein yapılarını kullanıyoruz. Protein Veri Bankası ve hesaplamalı olarak tahmin edilen protein yapıları AlphaFold Protein Yapısı Veritabanı. Makine öğrenimi (ML) problemi, 3B yapılarından oluşturulan protein grafiklerine dayalı deneysel ve tahmin edilen yapıları ayırt etmek için bir ayrımcı GNN modeli geliştirmektir.
Çözüme genel bakış
Önce protein yapılarını, proteinlerin atomik koordinatlarını, özelliklerini ve tanımlayıcılarını depolamak için n-boyutlu bir dizi ve iç içe nesne gibi birden çok veri yapısı türüyle JSON kayıtlarına ayrıştırırız. Bir proteinin yapısı için bir JSON kaydının saklanması ortalama 45 KB alır; 100 milyon protein depolamanın yaklaşık 4.2 TB alacağını tahmin ediyoruz. Amazon DocumentDB depolama verilerle otomatik olarak ölçeklenir 10 TB'a kadar 64 GB'lik artışlarla küme hacminizde. Bu nedenle, JSON veri yapısı ve ölçeklenebilirlik desteği, Amazon DocumentDB'yi doğal bir seçim haline getirir.
Daha sonra, yapılarından oluşturulan amino asit kalıntılarının grafiklerini kullanarak protein özelliklerini tahmin etmek için bir GNN modeli oluşturuyoruz. GNN modeli, SageMaker kullanılarak eğitilir ve veri tabanından protein yapılarını verimli bir şekilde almak için yapılandırılır.
Son olarak, tahminlere ilişkin bazı içgörüler elde etmek için eğitilmiş GNN modelini analiz ediyoruz.
Bu eğitim için aşağıdaki adımları izliyoruz:
- kullanarak kaynaklar oluşturun AWS CloudFormation şablonu.
- Protein yapılarını ve özelliklerini hazırlayın ve verileri Amazon DocumentDB'ye alın.
- SageMaker kullanarak protein yapıları üzerinde bir GNN eğitin.
- Eğitilmiş GNN modelini yükleyin ve değerlendirin.
Bu gönderide kullanılan kod ve not defterleri şurada mevcuttur: GitHub repo.
Önkoşullar
Bu izlenecek yol için aşağıdaki ön koşullara sahip olmalısınız:
Bu öğreticiyi bir saat çalıştırmanın maliyeti 2.00 dolardan fazla olmamalıdır.
Kaynak oluştur
Bir CloudFormation şablonu bu gönderi için gerekli AWS kaynaklarını, gönderidekine benzer bir mimariyle oluşturmak Amazon SageMaker kullanarak Amazon DocumentDB'de (MongoDB uyumluluğuyla) depolanan verileri analiz etme. CloudFormation yığını oluşturmaya ilişkin talimatlar için videoya bakın AWS CloudFormation kullanarak Altyapı Yönetiminizi basitleştirin.
CloudFormation yığını aşağıdakileri sağlar:
- Sırasıyla Amazon DocumentDB için üç özel alt ağa ve SageMaker not defteri örneği ve makine öğrenimi eğitim kapsayıcılarına yönelik iki genel alt ağa sahip bir VPC.
- Her özel alt ağda bir tane olmak üzere üç düğüme sahip bir Amazon DocumentDB kümesi.
- Amazon DocumentDB için oturum açma kimlik bilgilerini depolamak için bir Secrets Manager sırrı. Bu, SageMaker örneğimizde düz metin kimlik bilgilerini saklamaktan kaçınmamızı sağlar.
- Veri hazırlamak, eğitim işlerini düzenlemek ve etkileşimli analizler çalıştırmak için bir SageMaker not defteri örneği.
CloudFormation yığınını oluştururken aşağıdakileri belirtmeniz gerekir:
- CloudFormation yığınınız için ad
- Amazon DocumentDB kullanıcı adı ve parolası (Sırlar Yöneticisinde saklanacak)
- Amazon DocumentDB bulut sunucusu türü (varsayılan db.r5.large)
- SageMaker örnek türü (varsayılan ml.t3.xlarge)
CloudFormation yığınını oluşturmak yaklaşık 15 dakika sürmelidir. Aşağıdaki şema kaynak mimarisini göstermektedir.
Protein yapılarını ve özelliklerini hazırlayın ve verileri Amazon DocumentDB'ye alın
Bu bölümdeki sonraki tüm kodlar Jupyter not defterindedir. Hazırla_veri.ipynb CloudFormation yığınınızda oluşturulan SageMaker örneğinde.
Bu not defteri, protein yapısı verilerinin hazırlanması ve Amazon DocumentDB'ye alınması için gereken prosedürleri ele alır.
- İlk önce tahmin edilen protein yapılarını şuradan indiriyoruz: AlphaFold Veritabanı PDB formatında ve eşleşen deneysel yapılar Protein Veri Bankası.
Gösteri amacıyla, sadece termofilik arkelerden proteinler kullanıyoruz. Methanocaldococcus jannaschii, birlikte çalışmamız için 1,773 proteinin en küçük proteomuna sahip olan. Diğer türlerden proteinleri kullanmayı deneyebilirsiniz.
- Secrets Manager'da depolanan kimlik bilgilerini alarak bir Amazon DocumentDB kümesine bağlanırız:
- Amazon DocumentDB bağlantısını kurduktan sonra, veritabanına almak için PDB dosyalarını JSON kayıtlarına ayrıştırırız.
PDB dosyalarını ayrıştırmak için gerekli olan yardımcı işlevleri sağlıyoruz. pdb_parse.py. parse_pdb_file_to_json_record
işlevi, bir PDB dosyasındaki bir veya daha fazla peptit zincirinden atomik koordinatları çıkarmanın ağır yükünü kaldırır ve bir belge olarak doğrudan Amazon DocumentDB koleksiyonuna alınabilen bir veya bir JSON belgesi listesi döndürür. Aşağıdaki koda bakın:
Ayrıştırılmış protein verilerini Amazon DocumentDB'ye aldıktan sonra protein belgelerinin içeriğini güncelleyebiliriz. Örneğin, eğitim, doğrulama veya test setlerinde bir protein yapısının kullanılması gerekip gerekmediğini gösteren bir alan eklersek model eğitim lojistiğimizi kolaylaştırır.
- İlk önce tüm belgeleri alanla birlikte alıyoruz
is_AF
bir toplama ardışık düzeni kullanarak belgeleri katmanlaştırmak için:
- Sonra, kullanıyoruz
update_many
bölünmüş bilgileri Amazon DocumentDB'ye geri depolama işlevi:
SageMaker kullanarak protein yapıları üzerinde bir GNN eğitin
Bu bölümdeki sonraki tüm kodlar Train_and_eval.ipynb CloudFormation yığınınızda oluşturulan SageMaker örneğindeki not defteri.
Bu not defteri, Amazon DocumentDB'de depolanan protein yapısı veri kümeleri üzerinde bir GNN modeli eğitir.
Önce Amazon DocumentDB'den mini protein belgeleri yığını alabilen protein veri kümemiz için bir PyTorch veri kümesi sınıfı uygulamamız gerekiyor. Toplu belgeleri yerleşik birincil kimliğe göre almak daha verimlidir (_id
).
- Genişleterek yinelenebilir stil veri kümesini kullanırız. Yinelenebilir Veri Kümesi, hangi
_id
ve başlatma sırasında belgelerin etiketleri:
- The
ProteinDataset
içinde bir veritabanı okuma işlemi gerçekleştirir.__iter__
yöntem. Birden fazla çalışan varsa iş yükünü eşit olarak bölmeye çalışır:
- Önceki
__iter__
yöntem ayrıca proteinlerin atomik koordinatlarını DGLGrafik nesneler aracılığıyla Amazon DocumentDB'den yüklendikten sonraconvert_to_graph
işlev. Bu işlev, C-alfa atomlarının 3B koordinatlarını kullanarak amino asit kalıntıları için bir k-en yakın komşu (kNN) grafiği oluşturur ve kalıntı kimliklerini temsil etmek için bir sıcak kodlanmış düğüm özellikleri ekler:
- İle
ProteinDataset
uygulandığında, tren, doğrulama ve test veri kümeleri için örnekleri başlatabilir ve eğitim örneğini şu şekilde sarabiliriz:BufferedShuffleDataset
karıştırmayı etkinleştirmek için. - Onları daha da sarıyoruz
torch.utils.data.DataLoader
diğer bileşenlerle çalışmak için SageMaker PyTorch Tahmincisi eğitim senaryosu. - Ardından, yorumlama kolaylığı için küresel bir dikkat havuzu katmanına sahip iki katmanlı basit bir grafik evrişim ağı (GCN) uyguluyoruz:
- Daha sonra, bu GCN'yi şu konularda eğitebiliriz:
ProteinDataset
Örneğin, bir protein yapısının AlphaFold tarafından tahmin edilip edilmediğini tahmin eden ikili bir sınıflandırma görevi için. Amaç fonksiyonu olarak ikili çapraz entropiyi ve stokastik gradyan optimizasyonu için Adam optimize ediciyi kullanıyoruz. Tam eğitim betiği şurada bulunabilir: kaynak/main.py.
Ardından, eğitim işini halletmek için SageMaker PyTorch Tahmincisi'ni kurduk. SageMaker tarafından başlatılan yönetilen Docker kapsayıcısının Amazon DocumentDB'ye bağlanmasına izin vermek için Estimator için alt ağ ve güvenlik grubunu yapılandırmamız gerekir.
- Alt ağ kimliğini alırız. Ağ Adresi Çevirisi (NAT) ağ geçidi şu adla Amazon DocumentDB kümemizin güvenlik grubu kimliğinin yanı sıra bulunur:
Eğitilmiş GNN modelini yükleyin ve değerlendirin
Eğitim işi tamamlandığında, eğitilmiş GCN modelini yükleyebilir ve bazı derinlemesine değerlendirmeler yapabiliriz.
Aşağıdaki adımların kodları not defterinde de mevcuttur. Train_and_eval.ipynb.
SageMaker eğitim işleri, model yapılarını, URI'sine şuradan erişilebilen varsayılan S3 klasörüne kaydeder. estimator.model_data
bağlanmak. Ayrıca şuraya da gidebiliriz: Eğitim işleri Değerlendirilecek eğitimli modeli bulmak için SageMaker konsolundaki sayfa.
- Araştırma amacıyla, model yapıtını (öğrenilen parametreler) bir PyTorch'a yükleyebiliriz. durum_dict aşağıdaki işlevi kullanarak:
- Ardından, doğruluğu hesaplayarak tam test setinde nicel model değerlendirmesi yapıyoruz:
GCN modelimizin %74.3'lük bir doğruluğa ulaştığını, oysa sınıf önceliklerine dayalı tahminler yapan kukla temel modelin yalnızca %56.3'e ulaştığını bulduk.
GCN modelimizin yorumlanabilirliğiyle de ilgileniyoruz. Küresel bir dikkat havuzu katmanı uyguladığımız için, model tarafından yapılan belirli tahminleri açıklamak için düğümler arasındaki dikkat puanlarını hesaplayabiliriz.
- Daha sonra, dikkat puanlarını hesaplıyoruz ve aynı peptitten bir çift yapı (AlphaFold tarafından tahmin edilen ve deneysel) için protein grafiklerinin üzerine yerleştiriyoruz:
Önceki kodlar, düğümler üzerinde dikkat puanları ile kaplanmış aşağıdaki protein grafiklerini üretir. Modelin global özenli havuzlama katmanının, protein yapısının AlphaFold tarafından tahmin edilip edilmediğinin tahminini yapmak için önemli olarak protein grafiğindeki belirli kalıntıları vurgulayabildiğini görüyoruz. Bu, bu kalıntıların tahmin edilen ve deneysel protein yapılarında farklı grafik topolojilerine sahip olabileceğini gösterir.
Özetle, GNN'leri Amazon DocumentDB'de depolanan protein yapıları üzerinde eğitmek için ölçeklenebilir bir derin öğrenme çözümü sergiliyoruz. Öğretici, eğitim için yalnızca binlerce protein kullansa da, bu çözüm milyonlarca proteine ölçeklenebilir. Tüm protein veri setini seri hale getirmek gibi diğer yaklaşımlardan farklı olarak, yaklaşımımız bellek ağırlıklı iş yüklerini veritabanına aktararak eğitim işleri için bellek karmaşıklığını artırır. O
(batch_size
), eğitilecek toplam protein sayısından bağımsızdır.
Temizlemek
Gelecekte ücret alınmasını önlemek için oluşturduğunuz CloudFormation yığınını silin. Bu, VPC, Amazon DocumentDB kümesi ve SageMaker örneği dahil olmak üzere CloudFormation şablonunu kullanarak sağladığınız tüm kaynakları kaldırır. Talimatlar için bkz. AWS CloudFormation konsolunda bir yığını silme.
Sonuç
Amazon DocumentDB'de depolayarak ve SageMaker'dan mini veri kümelerini verimli bir şekilde alarak milyonlarca protein yapısına ölçeklenebilen bulut tabanlı bir derin öğrenme mimarisini tanımladık.
GNN'nin protein özelliği tahminlerinde kullanımı hakkında daha fazla bilgi edinmek için son yayınımıza göz atın. LM-GVP, Dizi ve Yapıdan Protein Özelliği Tahmini için Genelleştirilebilir Bir Derin Öğrenme Çerçevesi.
Yazarlar Hakkında
Zichen Wang, PhD, Amazon Makine Öğrenimi Çözümleri Laboratuvarı'nda Uygulamalı Bilim Adamıdır. Biyolojik ve tıbbi verileri kullanarak makine öğrenimi ve istatistiksel yöntemler geliştirme konusunda birkaç yıllık araştırma deneyimiyle, makine öğrenimi sorunlarını çözmek için çeşitli sektörlerde müşterilerle birlikte çalışır.
Selvan Senthivel AWS'deki Amazon ML Çözümleri Laboratuvarı'nda Kıdemli Makine Öğrenimi Mühendisidir ve müşterilere makine öğrenimi, derin öğrenme sorunları ve uçtan uca makine öğrenimi çözümleri konusunda yardımcı olmaya odaklanır. Amazon Comprehend Medical'in kurucu mühendislik lideriydi ve birden fazla AWS AI hizmetinin tasarımına ve mimarisine katkıda bulundu.
- '
- "
- 000
- 100
- 11
- 3d
- 7
- 9
- AI
- AI hizmetleri
- algoritmalar
- Türkiye
- Amazon
- Amazon Kavramak
- Amazon Makine Öğrenimi
- Amazon Adaçayı Yapıcı
- mimari
- etrafında
- AWS
- Temel
- vücut
- inşa etmek
- yükler
- sınıflandırma
- kod
- hesaplamak
- bağ
- konsolos
- Konteyner
- Konteynerler
- içindekiler
- katkıda
- Oluşturma
- Tanıtım
- Müşteriler
- veri
- veritabanı
- derin öğrenme
- Dizayn
- geliştirmek
- liman işçisi
- Docker Kabı
- evraklar
- Etkili
- mühendis
- Mühendislik
- deneyim
- Özellikler(Hazırlık aşamasında)
- Özellikler
- Incir
- Nihayet
- Ad
- biçim
- ileri
- iskelet
- tam
- işlev
- gelecek
- boşluk
- Küresel
- grup
- Vurgulamak
- HTTPS
- Dahil olmak üzere
- bilgi
- Altyapı
- anlayışlar
- interaktif
- IT
- İş
- Mesleki Öğretiler
- Jupyter Not Defteri
- anahtar
- Etiketler
- büyük
- öncülük etmek
- ÖĞRENİN
- öğrendim
- öğrenme
- Liste
- yük
- lojistik
- makine öğrenme
- Yapımı
- yönetim
- Haritalar
- matematik
- tıbbi
- milyon
- ML
- model
- MongoDB
- net
- ağ
- sinirsel
- sinir ağı
- düğümler
- dizüstü bilgisayarlar
- Diğer
- Şifre
- plaintext
- POS
- tahmin
- Tahminler
- özel
- Üretilmiş
- proje
- özellik
- Protein
- halka açık
- pytorch
- nicel
- kayıtlar
- araştırma
- kaynak
- Kaynaklar
- İade
- koşmak
- sagemaker
- ölçeklenebilirlik
- ölçek
- güvenlik
- Hizmetler
- set
- Basit
- beden
- küçük
- Çözümler
- ÇÖZMEK
- bölmek
- başlama
- Eyalet
- hafızası
- mağaza
- destek
- tensorflow
- test
- meşale
- Eğitim
- trenler
- Çeviri
- öğretici
- Güncelleme
- URI
- us
- yarar
- Video
- görüntüleme
- hacim
- Vikipedi
- içinde
- İş
- işçiler
- çalışır
- yıl
- Youtube