Opracowywanie leków to złożony i długi proces, który obejmuje badanie przesiewowe tysięcy kandydatów na leki oraz stosowanie metod obliczeniowych lub eksperymentalnych do oceny potencjalnych klientów. Według McKinseya, pojedynczy lek może zająć 10 lat i kosztować średnio 2.6 miliarda dolarów, aby przejść przez identyfikację celu choroby, badania przesiewowe leków, walidację celu leku i ewentualne wprowadzenie na rynek. Odkrywanie leków jest elementem badawczym tego rurociągu, który generuje kandydujące leki o najwyższym prawdopodobieństwie skuteczności i najmniejszej szkodliwości dla pacjentów. Metody uczenia maszynowego (ML) mogą pomóc w identyfikacji odpowiednich związków na każdym etapie procesu odkrywania leku, co skutkuje bardziej usprawnionym ustalaniem priorytetów i testowaniem leków, oszczędzając miliardy na kosztach opracowywania leków (więcej informacji można znaleźć w Sztuczna inteligencja w badaniach biofarmaceutycznych: czas na skupienie się i skalowanie).
Cele leków to zazwyczaj jednostki biologiczne, tzw Białka, budulec życia. Struktura 3D białka określa, w jaki sposób oddziałuje ono z lekiem; w związku z tym zrozumienie trójwymiarowej struktury białka może znacznie usprawnić proces opracowywania leku poprzez poszukiwanie związków leku, które lepiej pasują do docelowej struktury białka. Innym obszarem, w którym przewidywanie struktury białek może być przydatne, jest zrozumienie różnorodności białek, dzięki czemu wybieramy tylko leki, które selektywnie celują w określone białka bez wpływu na inne białka w organizmie (więcej informacji można znaleźć w Doskonalenie oceny celów w badaniach biomedycznych: zalecenia GOT-IT). Precyzyjne struktury 3D białek docelowych mogą umożliwić projektowanie leków o większej specyficzności i mniejszym prawdopodobieństwie interakcji krzyżowych z innymi białkami.
Jednak przewidywanie, w jaki sposób białka składają się w ich strukturę 3D, jest trudnym problemem, a tradycyjne metody eksperymentalne, takie jak krystalografia rentgenowska i spektroskopia NMR, mogą być czasochłonne i kosztowne. Niedawne postępy w metodach głębokiego uczenia się w badaniach nad białkami okazały się obiecujące w wykorzystaniu sieci neuronowych do przewidywania fałdowania białek z niezwykłą dokładnością. Algorytmy składane, takie jak AlfaFold2, ESMfold, OtwórzZłóż, RoseTTAFfold może być wykorzystany do szybkiego budowania dokładnych modeli struktur białkowych. Niestety, uruchomienie tych modeli jest kosztowne obliczeniowo, a porównywanie wyników w skali tysięcy kandydujących struktur białkowych może być kłopotliwe. Skalowalne rozwiązanie do korzystania z tych różnych narzędzi umożliwi naukowcom i komercyjnym zespołom badawczo-rozwojowym szybkie wdrażanie najnowszych osiągnięć w przewidywaniu struktury białek, zarządzanie procesami eksperymentalnymi i współpracę z partnerami badawczymi.
Amazon Sage Maker to w pełni zarządzana usługa umożliwiająca szybkie przygotowywanie, budowanie, szkolenie i wdrażanie wysokiej jakości modeli uczenia maszynowego dzięki połączeniu szerokiego zestawu funkcji stworzonych specjalnie dla uczenia maszynowego. Oferuje w pełni zarządzane środowisko do uczenia maszynowego, eliminując wymagania dotyczące infrastruktury, zarządzania danymi i skalowalności, dzięki czemu możesz skupić się na budowaniu, szkoleniu i testowaniu modeli.
W tym poście przedstawiamy w pełni zarządzane rozwiązanie ML z SageMaker, które upraszcza obsługę przepływów pracy przewidywania struktury fałdowania białek. Najpierw omawiamy rozwiązanie na wysokim poziomie i jego user experience. Następnie przeprowadzimy Cię przez proces łatwego konfigurowania przepływów pracy zoptymalizowanych pod kątem obliczeń w AlphaFold2 i OpenFold za pomocą SageMaker. Na koniec pokazujemy, jak można śledzić i porównywać przewidywania struktury białek w ramach typowej analizy. Kod tego rozwiązania jest dostępny poniżej Repozytorium GitHub.
Omówienie rozwiązania
W tym rozwiązaniu naukowcy mogą interaktywnie uruchamiać eksperymenty zwijania białek, analizować strukturę 3D, monitorować postęp prac i śledzić eksperymenty w Studio Amazon SageMaker.
Poniższy zrzut ekranu przedstawia pojedynczy przebieg procesu składania białek w Amazon SageMaker Studio. Obejmuje wizualizację struktury 3D w notatniku, stan uruchamiania zadań SageMaker w przepływie pracy oraz łącza do parametrów wejściowych i danych wyjściowych oraz dzienników.
Poniższy diagram ilustruje architekturę rozwiązania wysokiego poziomu.
Aby zrozumieć architekturę, najpierw definiujemy kluczowe elementy eksperymentu zwijania białek w następujący sposób:
- Plik sekwencji docelowej FASTA - formacie FASTA to format tekstowy służący do przedstawiania sekwencji nukleotydów lub sekwencji aminokwasów (białek), w którym nukleotydy lub aminokwasy są reprezentowane przy użyciu jednoliterowych kodów.
- Genetyczne bazy danych – Genetyczna baza danych to jeden lub więcej zestawów danych genetycznych przechowywanych wraz z oprogramowaniem umożliwiającym użytkownikom pobieranie danych genetycznych. Do uruchomienia algorytmów AlphaFold i OpenFold wymaganych jest kilka genetycznych baz danych, takich jak BFD, MGnify, PDB70, PDB, sekcje PDB, UniRef30 (FKA UniClust30), UniProt, UniRef90.
- Dopasowanie wielu sekwencji (MSA) - dopasowanie sekwencji jest sposobem ułożenia pierwszorzędowych sekwencji białka w celu zidentyfikowania regionów podobieństwa, które mogą być konsekwencją funkcjonalnych, strukturalnych lub ewolucyjnych związków między sekwencjami. Funkcje wejściowe dla prognoz obejmują dane MSA.
- Przewidywanie struktury białek – Struktura wejściowych sekwencji docelowych jest przewidywana za pomocą algorytmów składania, takich jak AlfaFold2 i OtwórzZłóż które wykorzystują wielościeżkową architekturę transformatora wytrenowaną na znanych szablonach białek.
- Wizualizacja i metryki – Wizualizuj strukturę 3D za pomocą py3Dmol biblioteki jako interaktywnej wizualizacji 3D. Za pomocą metryk można przede wszystkim oceniać i porównywać przewidywania dotyczące struktury odchylenie wartości średniokwadratowej (RMSD) i ocena modelowania szablonów (wynik TM)
Przepływ pracy obejmuje następujące kroki:
- Naukowcy używają internetowego środowiska SageMaker ML IDE do eksploracji bazy kodu, budowania przepływów pracy analizy sekwencji białek w notatnikach SageMaker Studio i uruchamiania potoków składania białek za pośrednictwem graficznego interfejsu użytkownika w SageMaker Studio lub SageMaker SDK.
- Bazy danych genetycznych i strukturalnych wymagane przez AlphaFold i OpenFold są pobierane przed użyciem konfiguracji potoku Przetwarzanie Amazon SageMaker, efemeryczna funkcja obliczeniowa do przetwarzania danych ML, do Usługa Amazon Simple Storage (Amazon S3) wiadro. Dzięki SageMaker Processing możesz uruchomić długotrwałe zadanie z odpowiednimi obliczeniami bez konfigurowania jakiegokolwiek klastra obliczeniowego i pamięci masowej oraz bez konieczności wyłączania klastra. Dane są automatycznie zapisywane w określonej lokalizacji zasobnika S3.
- An Amazon FSx dla Luster skonfigurowany jest system plików, a repozytorium danych jest lokalizacją zasobnika S3, w której zapisywane są bazy danych. FSx for Luster może skalować się do setek GB/s przepustowości i milionów IOPS przy pobieraniu plików z małymi opóźnieniami. Podczas uruchamiania zadania estymatora SageMaker montuje system plików FSx for Luster w systemie plików instancji, a następnie uruchamia skrypt.
- Rurociągi Amazon SageMaker służy do koordynowania wielu przebiegów algorytmów fałdowania białek. SageMaker Pipelines oferuje pożądany interfejs wizualny do interaktywnego przesyłania zadań, śledzenia postępów i powtarzalności.
- W ramach potoku dwa algorytmy zwijania białek o dużej mocy obliczeniowej — AlphaFold i OpenFold — są uruchamiane za pomocą estymatorów SageMaker. Ta konfiguracja obsługuje montowanie systemu plików FSx for Luster do wysokoprzepustowego przeszukiwania bazy danych w algorytmach. Pojedynczy przebieg wnioskowania jest podzielony na dwa etapy: etap konstruowania MSA przy użyciu optymalnej instancji procesora oraz etap przewidywania struktury przy użyciu instancji GPU. Te podetapy, takie jak Przetwarzanie SageMaker w Kroku 2, są efemeryczne, na żądanie iw pełni zarządzane. Dane wyjściowe zadania, takie jak pliki MSA, pliki przewidywanej struktury pdb i inne pliki metadanych, są zapisywane w określonej lokalizacji S3. Potok można zaprojektować tak, aby uruchamiał jeden algorytm zwijania pojedynczego białka lub uruchamiał zarówno AlphaFold, jak i OpenFold po wspólnej konstrukcji MSA.
- Przebiegi przewidywania fałdowania białek są automatycznie śledzone przez Eksperymenty Amazon SageMaker do dalszej analizy i porównania. Dzienniki zadań są przechowywane Amazon Cloud Watch do monitorowania.
Wymagania wstępne
Aby śledzić ten post i uruchomić to rozwiązanie, musisz spełnić kilka wymagań wstępnych. Patrz Repozytorium GitHub aby uzyskać szczegółowe wyjaśnienie każdego kroku.
Uruchom zwijanie białek w SageMaker
Używamy w pełni zarządzanych możliwości SageMaker do wykonywania zadań składania białek o dużej mocy obliczeniowej bez dużego obciążenia infrastruktury. SageMaker używa obrazów kontenerów do uruchamiania niestandardowych skryptów do ogólnego przetwarzania danych, szkolenia i hostingu. Możesz łatwo uruchomić efemeryczne zadanie na żądanie, które uruchamia program z obrazem kontenera z kilkoma wierszami SDK SageMakera bez samodzielnego zarządzania jakąkolwiek infrastrukturą obliczeniową. W szczególności zadanie estymatora SageMaker zapewnia elastyczność, jeśli chodzi o wybór obrazu kontenera, uruchamianie skryptu i konfigurację instancji, a także obsługuje szeroki wybór opcji przechowywania, w tym systemy plików, takie jak FSx for Lustre. Poniższy diagram ilustruje tę architekturę.
Algorytmy składania, takie jak AlphaFold i OpenFold, wykorzystują wielościeżkową architekturę transformatora wytrenowaną na znanych szablonach białek do przewidywania struktury nieznanych sekwencji peptydowych. Prognozy te można uruchamiać na instancjach GPU, aby zapewnić najlepszą przepustowość i najniższe opóźnienia. Funkcje wejściowe dla tych prognoz obejmują jednak dane MSA. Algorytmy MSA są zależne od procesora i mogą wymagać kilku godzin przetwarzania.
Uruchamianie zarówno etapu MSA, jak i przewidywania struktury w tym samym środowisku komputerowym może być nieefektywne kosztowo, ponieważ drogie zasoby GPU pozostają bezczynne podczas wykonywania kroku MSA. Dlatego optymalizujemy przepływ pracy w dwóch krokach. Najpierw uruchamiamy zadanie estymatora SageMaker na instancji procesora specjalnie w celu obliczenia wyrównania MSA, biorąc pod uwagę określoną sekwencję wejściową FASTA i źródłowe genetyczne bazy danych. Następnie uruchamiamy zadanie estymatora SageMaker na instancji GPU, aby przewidzieć strukturę białka z zadanym dopasowaniem wejściowego MSA i algorytmem składania, takim jak AlphaFold lub OpenFold.
Uruchom generowanie MSA
Do obliczeń MSA dołączamy niestandardowy skrypt run_create_alignment.sh
i create_alignments.py
skrypt, który został przejęty z istniejącego źródła prognoz AlphaFold run_alphafold.py. Pamiętaj, że ten skrypt może wymagać aktualizacji, jeśli zaktualizowany zostanie kod źródłowy AlphaFold. Skrypt niestandardowy jest dostarczany do estymatora SageMaker za pośrednictwem tryb skryptu. Kluczowe komponenty obrazu kontenera, implementacja trybu skryptu i konfigurowanie zadania estymatora SageMaker są również częścią następnego kroku uruchamiania algorytmów składania i są opisane w następnej sekcji.
Uruchom AlphaFolda
Zaczynamy od uruchomienia przewidywania struktury AlphaFold z pojedynczą sekwencją białka za pomocą SageMaker. Uruchomienie zadania AlphaFold obejmuje trzy proste kroki, jak widać w 01-run_stepbystep.ipynb
. Najpierw budujemy obraz kontenera Docker w oparciu o AlphaFold Dockerfile abyśmy i my mogli uruchomić AlphaFolda w SageMakerze. Po drugie, tworzymy scenariusz run_alphafold.sh
który instruuje, jak powinien działać AlphaFold. Po trzecie, budujemy i prowadzimy Estymator SageMaker ze skryptem, kontenerem, typem instancji, danymi i konfiguracją zadania.
Obraz kontenera
Wymagania dotyczące środowiska wykonawczego dla obrazu kontenera, aby uruchomić AlphaFold (również OpenFold) w SageMaker, można znacznie uprościć za pomocą Dockerfile AlphaFold. Musimy tylko dodać kilka prostych warstw na górze, aby zainstalować bibliotekę Pythona specyficzną dla SageMaker, aby zadanie SageMaker mogło komunikować się z obrazem kontenera. Zobacz następujący kod:
Skrypt wejściowy
Następnie dostarczamy skrypt run_alphafold.sh
to działa run_alphafold.py z repozytorium AlphaFold, które aktualnie znajduje się w kontenerze /app/alphafold/run_alphafold.py
. Po uruchomieniu tego skryptu lokalizacja genetycznych baz danych i wejściowa sekwencja FASTA zostaną wypełnione przez SageMaker jako zmienne środowiskowe (SM_CHANNEL_GENETIC
i SM_CHANNEL_FASTA
odpowiednio). Aby uzyskać więcej informacji, patrz Konfiguracja danych wejściowych.
Praca kosztorysanta
Następnie tworzymy zadanie za pomocą estymatora SageMaker z następującymi kluczowymi argumentami wejściowymi, które instruują SageMaker, aby uruchomił określony skrypt przy użyciu określonego kontenera z typem lub liczbą instancji, wybraną opcją sieciową i innymi parametrami zadania. vpc_subnet_ids
i security_group_ids
poinstruuj zadanie, aby działało w określonym VPC, w którym znajduje się system plików FSx for Luster, abyśmy mogli zamontować i uzyskać dostęp do systemu plików w zadaniu SageMaker. Ścieżka wyjściowa odnosi się do lokalizacji wiadra S3, do której produkt końcowy AlphaFold zostanie automatycznie przesłany po pomyślnym zakończeniu zadania przez SageMaker. Tutaj również ustawiamy parametr DB_PRESET
, na przykład do przekazywania i uzyskiwania do nich dostępu run_alphafold.sh
jako zmienną środowiskową w czasie wykonywania. Zobacz następujący kod:
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,
...)
Na koniec zbieramy dane i informujemy pracownika, gdzie się znajdują. The fasta
kanał danych jest zdefiniowany jako dane wejściowe S3, które zostaną pobrane z lokalizacji S3 do instancji obliczeniowej na początku zadania. Pozwala to na dużą elastyczność w zarządzaniu i określaniu sekwencji wejściowej. Z drugiej strony, genetic
kanał danych jest zdefiniowany jako a FileSystemInput
który zostanie zamontowany w instancji na początku zadania. Użycie systemu plików FSx for Luster jako sposobu na zebranie prawie 3 TB danych pozwala uniknąć wielokrotnego pobierania danych z zasobnika S3 do instancji obliczeniowej. Nazywamy .fit
metoda rozpoczęcia zadania 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
Otóż to. Właśnie przesłaliśmy zadanie do SageMaker, aby uruchomić AlphaFold. Dzienniki i dane wyjściowe, w tym pliki prognoz .pdb, zostaną zapisane w usłudze Amazon S3.
Uruchom OpenFolda
Uruchamianie OpenFold w SageMaker przebiega według podobnego schematu, jak pokazano w drugiej połowie 01-run_stepbystep.ipynb
. Najpierw dodajemy prostą warstwę, aby uzyskać bibliotekę specyficzną dla SageMaker, aby obraz kontenera był kompatybilny z SageMaker na wierzchu biblioteki OpenFold Dockerfile. Po drugie budujemy a run_openfold.sh
jako punkt wejścia do zadania SageMaker. W run_openfold.sh
, uruchamiamy run_pretrained_openfold.py z OpenFold, czyli dostępne na obrazie kontenera z tymi samymi genetycznymi bazami danych, które pobraliśmy dla wag modeli AlphaFold i OpenFold (--openfold_checkpoint_path
). W zakresie lokalizacji danych wejściowych, oprócz kanału baz danych genetycznych i kanału FASTA, wprowadzamy trzeci kanał, SM_CHANNEL_PARAM
, abyśmy mogli elastycznie przekazywać wybrane wagi modelu z konstrukcji estymatora podczas definiowania i przesyłania zadania. Dzięki estymatorowi SageMaker możemy łatwo przesyłać oferty pracy z różnymi entry_point
, image_uri
, environment
, inputs
i inne konfiguracje dla OpenFold z tą samą sygnaturą. Dla kanału danych dodajemy nowy kanał, param
, jako dane wejściowe Amazon S3 wraz z wykorzystaniem tych samych genetycznych baz danych z systemu plików FSx for Luster i pliku FASTA z Amazon S3. To znowu pozwala nam łatwo określić wagę modelu do użycia z konstrukcji zadania. Zobacz następujący kod:
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)
Aby uzyskać dostęp do końcowego wyniku po zakończeniu zadania, uruchamiamy następujące polecenia:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Wydajność w czasie wykonywania
W poniższej tabeli przedstawiono oszczędności kosztów wynoszące odpowiednio 57% i 51% dla AlphaFold i OpenFold dzięki podziale algorytmów wyrównywania i składania MSA na dwa zadania w porównaniu z jednym zadaniem obliczeniowym. Pozwala nam to odpowiednio dopasować rozmiar obliczeń dla każdego zadania: ml.m5.4xlarge dla wyrównania MSA i ml.g5.2xlarge dla AlphaFold i OpenFold.
szczegóły pracy | Typ wystąpienia | Wprowadź sekwencję FASTA | Czas pracy | Koszty: |
Wyrównanie MSA + OpenFold | ml.g5.4xduży | T1030 | min 50 | $1.69 |
Wyrównanie MSA + AlphaFold | ml.g5.4xduży | T1030 | min 65 | $2.19 |
wyrównanie MSA | ml. 5.4xlarge | T1030 | min 46 | $0.71 |
OtwórzZłóż | ml.g5.2xduży | T1030 | min 6 | $0.15 |
AlfaFold | ml.g5.2xduży | T1030 | min 21 | $0.53 |
Zbuduj powtarzalny przepływ pracy za pomocą SageMaker Pipelines
Dzięki SageMaker Pipelines możemy stworzyć przepływ pracy ML, który zajmuje się zarządzaniem danymi między krokami, koordynacją ich przebiegów i rejestrowaniem. SageMaker Pipelines zapewnia nam również interfejs użytkownika do wizualizacji naszego potoku i łatwego uruchamiania naszego przepływu pracy ML.
Potok jest tworzony przez czesanie wielu kroki. W tym potoku łączymy trzy etapy szkolenia, które wymagają estymatora SageMaker. Estymatory zdefiniowane w tym notatniku są bardzo podobne do estymatorów zdefiniowanych w 01-run_stepbystep.ipynb
, z wyjątkiem tego, że używamy lokalizacji Amazon S3 do wskazywania naszych wejść i wyjść. Zmienne dynamiczne pozwalają SageMaker Pipelines wykonywać kroki jeden po drugim, a także pozwalają użytkownikowi na ponawianie nieudanych kroków. Poniższy zrzut ekranu przedstawia ukierunkowany wykres acykliczny (DAG), który zawiera informacje o wymaganiach i relacjach między każdym etapem naszego potoku.
Zmienne dynamiczne
SageMaker Pipelines jest w stanie pobierać dane wejściowe od użytkownika na początku każdego uruchomienia potoku. Definiujemy następujące zmienne dynamiczne, które chcielibyśmy zmieniać podczas każdego eksperymentu:
- FastaInputS3URI – Amazon S3 URI pliku FASTA przesłanego przez SDK, Boto3 lub ręcznie.
- SzybkaNazwaPliku – Nazwa pliku FASTA.
- ustawienie_db – Wybór pomiędzy
full_dbs
orreduced_dbs
. - Maksymalna data szablonu – Krok MSA AlphaFold wyszuka dostępne szablony przed datą określoną przez ten parametr.
- Wstępne ustawienie modelu – Wybierz między modelami AlphaFold, w tym
monomer
,monomer_casp14
,monomer_ptm
,multimer
. - NumMultimerPredictionsPerModel – Liczba nasion do wysiewu na model w przypadku korzystania z systemu multimerowego.
- Typ instancji wnioskowania – Typ instancji do wykorzystania w krokach wnioskowania (zarówno AlphaFold, jak i OpenFold). Wartość domyślna to ml.g5.2xlarge.
- Typ MSInstancji – Typ instancji do użycia w kroku MSA. Wartość domyślna to ml.m5.4xlarge.
Zobacz następujący kod:
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')
Rurociąg SageMaker jest konstruowany poprzez zdefiniowanie serii kroków, a następnie powiązanie ich ze sobą w określonej kolejności, w której dane wyjściowe z poprzedniego kroku stają się danymi wejściowymi do następnego kroku. Kroki mogą być uruchamiane równolegle i definiowane w taki sposób, aby były zależne od poprzedniego kroku. W tym potoku definiujemy krok MSA, który jest zależnością dla kroku wnioskowania AlphaFold i kroku wnioskowania OpenFold, które działają równolegle. Zobacz następujący kod:
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]
Aby połączyć wszystkie kroki, nazywamy Pipeline
class i podaj nazwę potoku, zmienne wejściowe potoku oraz poszczególne kroki:
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')
Uruchom rurociąg
W ostatniej komórce zeszytu 02-define_pipeline.ipynb
, pokazujemy, jak uruchomić potok przy użyciu zestawu SageMaker SDK. Zmienne dynamiczne, które opisaliśmy wcześniej, są dostarczane w następujący sposób:
!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
)
Śledź eksperymenty i porównuj struktury białek
W naszym eksperymencie używamy przykładowej sekwencji białka z Caspxnumx konkurencji, która zapewnia niezależny mechanizm oceny metod modelowania struktury białek. Cel T1030 pochodzi z białka PDB 6P00 i ma 237 aminokwasów w sekwencji pierwszorzędowej. Uruchomiliśmy potok SageMaker, aby przewidzieć strukturę białka tej sekwencji wejściowej za pomocą algorytmów OpenFold i AlphaFold.
Po ukończeniu potoku pobieramy przewidywane pliki .pdb z każdego zadania składania i wizualizujemy strukturę w notatniku za pomocą py3Dmol, jak w zeszycie 04-compare_alphafold_openfold.ipynb
.
Poniższy zrzut ekranu przedstawia prognozę z zadania przewidywania AlphaFold.
Przewidywana struktura jest porównywana ze znaną bazową strukturą odniesienia z kodem PDB 6 kupa zarchiwizowane w RCSB. Analizujemy wydajność predykcji w stosunku do podstawowego kodu PDB 6poo z trzema metrykami: RMSD, RMSD z superpozycją i wynikiem modelowania szablonu, jak opisano w Porównanie struktur.
. | Sekwencja wejściowa | Porównanie z | RMSD | RMSD z superpozycją | Wynik modelowania szablonu |
AlfaFold | T1030 | 6 kupa | 247.26 | 3.87 | 0.3515 |
Algorytmy składania są teraz porównywane ze sobą dla wielu sekwencji FASTA: T1030, T1090, T1076. Nowe sekwencje docelowe mogą nie mieć podstawowej struktury pdb w referencyjnych bazach danych i dlatego przydatne jest porównanie zmienności między algorytmami składania.
. | Sekwencja wejściowa | Porównanie z | RMSD | RMSD z superpozycją | Wynik modelowania szablonu |
AlfaFold | T1030 | OtwórzZłóż | 73.21 | 24.8 | 0.0018 |
AlfaFold | T1076 | OtwórzZłóż | 38.71 | 28.87 | 0.0047 |
AlfaFold | T1090 | OtwórzZłóż | 30.03 | 20.45 | 0.005 |
Poniższy zrzut ekranu pokazuje przebiegi ProteinFoldWorkflow
dla trzech sekwencji wejściowych FASTA z SageMaker Pipeline:
Rejestrujemy również metryki w SageMaker Experiments jako nowe przebiegi tego samego eksperymentu utworzone przez potok:
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)
Następnie analizujemy i wizualizujemy te przebiegi na Eksperymenty strona w SageMaker Studio.
Poniższy wykres przedstawia wartość RMSD między AlphaFold i OpenFold dla trzech sekwencji: T1030, T1076 i T1090.
Wnioski
W tym poście opisaliśmy, w jaki sposób możesz użyć SageMaker Pipelines do skonfigurowania i uruchomienia przepływów pracy zwijania białek za pomocą dwóch popularnych algorytmów przewidywania struktury: AlphaFold2 i OpenFold. Zademonstrowaliśmy opłacalną architekturę rozwiązania obejmującą wiele zadań, która oddziela wymagania obliczeniowe dla generowania MSA od przewidywania struktury. Podkreśliliśmy również, w jaki sposób można wizualizować, oceniać i porównywać przewidywane struktury 3D białek w SageMaker Studio.
Aby rozpocząć pracę z procesami składania białek w SageMaker, zapoznaj się z przykładowym kodem w pliku GitHub repo.
O autorach
Michał Hsieh jest głównym architektem rozwiązań specjalistycznych AI/ML. Współpracuje z klientami HCLS, aby rozwijać ich podróż ML dzięki technologiom AWS i swojej wiedzy w zakresie obrazowania medycznego. Jako przeszczep z Seattle, uwielbia odkrywać wspaniałą matkę naturę, jaką miasto ma do zaoferowania, na przykład szlaki turystyczne, spływy kajakowe w scenerii w SLU i zachód słońca w zatoce Shilshole.
Sziwam Patel jest architektem rozwiązań w AWS. Ma doświadczenie w R&D i łączy to ze swoją wiedzą biznesową, aby rozwiązywać złożone problemy, z jakimi borykają się jego klienci. Shivam najbardziej pasjonuje się obciążeniami w uczeniu maszynowym, robotyce, IoT i obliczeniach o wysokiej wydajności.
Hasana Poonawala jest starszym architektem rozwiązań AI/ML w AWS, Hasan pomaga klientom projektować i wdrażać aplikacje do uczenia maszynowego w produkcji na AWS. Posiada ponad 12-letnie doświadczenie zawodowe jako data scientist, praktyk uczenia maszynowego i programista. W wolnym czasie Hasan uwielbia poznawać przyrodę i spędzać czas z przyjaciółmi i rodziną.
Jasleen Grewal jest starszym naukowcem stosowanym w Amazon Web Services, gdzie współpracuje z klientami AWS nad rozwiązywaniem rzeczywistych problemów za pomocą uczenia maszynowego, ze szczególnym uwzględnieniem medycyny precyzyjnej i genomiki. Ma duże doświadczenie w bioinformatyce, onkologii i genomice klinicznej. Pasjonuje się wykorzystaniem AI/ML i usług w chmurze w celu poprawy opieki nad pacjentem.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Motoryzacja / pojazdy elektryczne, Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Przesunięcia bloków. Modernizacja własności offsetu środowiskowego. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- O nas
- AC
- przyśpieszyć
- dostęp
- dostęp
- precyzja
- dokładny
- acykliczny
- Dodaj
- przyjęty
- awansować
- zaliczki
- wpływający
- Po
- ponownie
- przed
- AI / ML
- algorytm
- Algorytmy
- wyrównanie
- Wszystkie kategorie
- dopuszczać
- pozwala
- wzdłuż
- również
- Amazonka
- Amazon Sage Maker
- Studio Amazon SageMaker
- Amazon Web Services
- an
- analiza
- w czasie rzeczywistym sprawiają,
- i
- Inne
- każdy
- aplikacje
- stosowany
- architektura
- SĄ
- POWIERZCHNIA
- argumenty
- AS
- oszacowanie
- At
- automatycznie
- dostępny
- średni
- z dala
- AWS
- z powrotem
- tło
- baza
- na podstawie
- Zatoka
- BE
- bo
- staje się
- zanim
- Początek
- jest
- oprócz
- BEST
- Ulepsz Swój
- pomiędzy
- Miliard
- miliardy
- biomedyczny
- biofarma
- Bloki
- ciało
- obie
- przynieść
- Bringing
- szeroki
- budować
- Budowanie
- biznes
- by
- wezwanie
- nazywa
- CAN
- kandydat
- kandydatów
- możliwości
- zdolny
- który
- zmiana
- Kanał
- Wykres
- wybór
- Miasto
- klasa
- Kliniczne
- Zamknij
- Chmura
- usługi w chmurze
- Grupa
- kod
- podstawa kodu
- Kody
- współpracować
- połączyć
- kombajny
- byliśmy spójni, od początku
- handlowy
- wspólny
- komunikować
- porównać
- w porównaniu
- porównanie
- zgodny
- konkurencja
- kompletny
- Zakończony
- Ukończył
- kompleks
- składnik
- składniki
- Mieszanka
- obliczenia
- obliczać
- computing
- systemu
- skonstruować
- Budowa
- Pojemnik
- zawiera
- Koszty:
- oszczędności
- Koszty:
- Para
- Stwórz
- stworzony
- Obecnie
- zwyczaj
- Klientów
- DZIEŃ
- dane
- zarządzanie danymi
- analiza danych
- naukowiec danych
- Baza danych
- Bazy danych
- Data
- głęboko
- głęboka nauka
- Domyślnie
- określić
- zdefiniowane
- definiowanie
- wykazać
- wykazać
- Zależność
- rozwijać
- Pochodny
- opisane
- Wnętrze
- zaprojektowany
- życzenia
- szczegółowe
- Ustalać
- określa
- Deweloper
- oprogramowania
- różne
- trudny
- odkrycie
- dyskutować
- choroba
- Różnorodność
- podzielony
- Doker
- na dół
- pobieranie
- lek
- Narkotyki
- podczas
- dynamiczny
- każdy
- Wcześniej
- z łatwością
- Efektywne
- bądź
- umożliwiać
- zakończenia
- podmioty
- wejście
- Środowisko
- środowiskowy
- oceniać
- Ewentualny
- Każdy
- przykład
- wyjątek
- wykonany
- egzekucja
- Przede wszystkim system został opracowany
- drogi
- doświadczenie
- eksperyment
- eksperymenty
- ekspertyza
- wyjaśnienie
- odkryj
- Exploring
- w obliczu
- Failed
- członków Twojej rodziny
- Cecha
- Korzyści
- filet
- Akta
- finał
- W końcu
- i terminów, a
- pierwszy raz
- dopasować
- Elastyczność
- elastycznie
- Skupiać
- obserwuj
- następujący
- następujący sposób
- W razie zamówieenia projektu
- format
- przyjaciele
- od
- pełny
- w pełni
- funkcjonalny
- dalej
- zbierać
- generuje
- generacja
- genomika
- otrzymać
- dany
- Go
- GPU
- wykres
- wspaniały
- bardzo
- Pół
- ręka
- garstka
- zaszkodzić
- Have
- he
- ciężki
- pomoc
- pomaga
- tutaj
- Wysoki
- na wysokim szczeblu
- wysoka wydajność
- wysokiej jakości
- wyższy
- Najwyższa
- Podświetlony
- jego
- Hosting
- GODZINY
- W jaki sposób
- How To
- Jednak
- HTML
- http
- HTTPS
- Setki
- Identyfikacja
- zidentyfikować
- Idle
- if
- ilustruje
- obraz
- zdjęcia
- Obrazowanie
- realizacja
- importować
- podnieść
- ulepszenia
- in
- zawierać
- obejmuje
- Włącznie z
- włączać
- niezależny
- indywidualny
- Informacja
- Infrastruktura
- wkład
- Wejścia
- wewnątrz
- zainstalować
- przykład
- interaktywne
- współdziała
- Interfejs
- najnowszych
- przedstawiać
- Internet przedmiotów
- IT
- JEGO
- Praca
- Oferty pracy
- podróż
- jpg
- właśnie
- trzymane
- Klawisz
- kopać
- Wiedzieć
- wiedza
- znany
- Nazwisko
- Utajenie
- firmy
- uruchomić
- warstwa
- nioski
- Wyprowadzenia
- nauka
- najmniej
- niech
- poziom
- Biblioteka
- życie
- lubić
- prawdopodobieństwo
- linie
- linki
- lokalnie
- lokalizacja
- lokalizacji
- log
- zalogowaniu
- długo
- kocha
- niższy
- najniższy
- maszyna
- uczenie maszynowe
- robić
- zarządzanie
- zarządzane
- i konserwacjami
- zarządzający
- ręcznie
- Może..
- McKinsey
- mechanizm
- medyczny
- lekarstwo
- Metadane
- metoda
- metody
- Metryka
- miliony
- ML
- Moda
- model
- modelowanie
- modele
- monitor
- monitorowanie
- jeszcze
- większość
- mama
- MONTAż
- dużo
- wielokrotność
- Nazwa
- Natura
- Potrzebować
- potrzeba
- sieci
- sieci
- sieci neuronowe
- Nowości
- nowy cel
- Następny
- NIH
- szczególnie
- notatnik
- już dziś
- numer
- of
- poza
- oferta
- Oferty
- W porządku
- on
- Na żądanie
- ONE
- tylko
- na
- działanie
- Optymalny
- Optymalizacja
- Option
- or
- zamówienie
- Inne
- ludzkiej,
- wydajność
- koniec
- strona
- Parallel
- parametr
- parametry
- część
- szczególny
- wzmacniacz
- przechodzić
- minęło
- namiętny
- ścieżka
- pacjent
- pacjenci
- Wzór
- dla
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- rurociąg
- plato
- Analiza danych Platona
- PlatoDane
- punkt
- Popularny
- zaludniony
- Post
- precyzyjny
- Detaliczność
- przewidzieć
- Przewiduje
- przewidywanie
- przepowiednia
- Przewidywania
- Przygotować
- warunki wstępne
- teraźniejszość
- poprzedni
- Cena
- pierwotny
- Główny
- Wcześniejszy
- priorytetyzacja
- Problem
- problemy
- wygląda tak
- procesów
- przetwarzanie
- Produkt
- Produkcja
- Program
- Postęp
- obietnica
- właściwy
- Białko
- Białka
- zapewniać
- pod warunkiem,
- zapewnia
- położyć
- Python
- szybko
- R & D
- real
- Prawdziwy świat
- niedawny
- odnosi
- regiony
- Relacje
- pozostawać
- znakomity
- powtarzalne
- WIELOKROTNIE
- składnica
- reprezentowane
- reprezentowanie
- wymagać
- wymagany
- wymaganie
- wymagania
- Badania naukowe
- Badacze
- Zasoby
- odpowiednio
- wynikły
- Efekt
- robotyka
- run
- bieganie
- działa
- s
- sagemaker
- Rurociągi SageMaker
- taki sam
- oszczędność
- Oszczędności
- Skalowalność
- skalowalny
- Skala
- nauka
- Naukowiec
- Naukowcy
- wynik
- pokaz
- skrypty
- Sdk
- Szukaj
- Seattle
- druga
- Sekcja
- widzieć
- posiew
- widziany
- wybór
- senior
- Sekwencja
- Serie
- usługa
- Usługi
- zestaw
- Zestawy
- ustawienie
- ustawienie
- kilka
- ona
- powinien
- pokazać
- pokazane
- Targi
- zamknąć
- znaczący
- podobny
- Prosty
- uproszczony
- pojedynczy
- So
- Tworzenie
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- Źródło
- specjalny
- specjalista
- specyficzny
- swoiście
- specyficzność
- określony
- Spektroskopia
- wydać
- STAGE
- początek
- rozpoczęty
- Startowy
- rozpocznie
- Rynek
- Ewolucja krok po kroku
- Cel
- przechowywanie
- przechowywany
- usprawniony
- silny
- strukturalny
- Struktura
- studio
- uległość
- Zatwierdź
- składane
- udany
- taki
- odpowiedni
- Zachód słońca
- nałożenie
- podpory
- system
- systemy
- stół
- Brać
- trwa
- biorąc
- cel
- cele
- Zespoły
- Technologies
- szablon
- Szablony
- REGULAMIN
- Testowanie
- że
- Połączenia
- Źródło
- ich
- Im
- następnie
- w związku z tym
- Te
- one
- Trzeci
- to
- tych
- tysiące
- trzy
- Przez
- wydajność
- czas
- czasochłonne
- do
- razem
- narzędzia
- Top
- Możliwość śledzenia
- śledzić
- tradycyjny
- Pociąg
- przeszkolony
- Trening
- transformator
- prawdziwy
- drugiej
- rodzaj
- typowy
- zazwyczaj
- ui
- zrozumieć
- zrozumienie
- Niestety
- nieznany
- zaktualizowane
- przesłanych
- us
- posługiwać się
- używany
- Użytkownik
- Doświadczenie użytkownika
- Interfejs użytkownika
- Użytkownicy
- zastosowania
- za pomocą
- uprawomocnienie
- wartość
- różnorodność
- różnorodny
- początku.
- przez
- wyobrażanie sobie
- była
- Droga..
- we
- sieć
- usługi internetowe
- Web-based
- waga
- DOBRZE
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- Wikipedia
- będzie
- w
- w ciągu
- bez
- Praca
- workflow
- przepływów pracy
- działa
- świat
- by
- napisany
- rentgenowski
- lat
- You
- Twój
- zefirnet