Розробка ліків – це складний і тривалий процес, який включає перевірку тисяч кандидатів на ліки та використання обчислювальних або експериментальних методів для оцінки потенційних клієнтів. За даними McKinsey, один препарат може зайняти 10 років і коштувати в середньому 2.6 мільярда доларів, щоб пройти процедуру ідентифікації мішені захворювання, скринінг ліків, валідацію мішені ліків і кінцевий комерційний запуск. Виявлення ліків є дослідницьким компонентом цього трубопроводу, який генерує препарати-кандидати з найвищою ймовірністю ефективності з найменшою шкодою для пацієнтів. Методи машинного навчання (ML) можуть допомогти визначити відповідні сполуки на кожному етапі процесу відкриття ліків, що призводить до більш раціонального визначення пріоритетів і тестування ліків, заощаджуючи мільярди на витратах на розробку ліків (додаткову інформацію див. ШІ в біофармацевтичних дослідженнях: час зосередитися та масштабуватись).
Мішенями для наркотиків зазвичай є біологічні об’єкти білки, цеглинки життя. Тривимірна структура білка визначає, як він взаємодіє з лікарською сполукою; отже, розуміння тривимірної структури білка може значно покращити процес розробки ліків шляхом перевірки лікарських сполук, які краще відповідають структурі цільового білка. Ще одна сфера, де прогнозування структури білка може бути корисним, — це розуміння різноманітності білків, тому ми вибираємо лише ті препарати, які вибірково націлені на певні білки, не впливаючи на інші білки в організмі (щоб дізнатися більше, зверніться до Покращення цільової оцінки в біомедичних дослідженнях: рекомендації GOT-IT). Точні тривимірні структури цільових білків можуть уможливити розробку ліків з вищою специфічністю та меншою ймовірністю перехресних взаємодій з іншими білками.
Однак передбачити, як білки згортаються у свою тривимірну структуру, є складною проблемою, а традиційні експериментальні методи, такі як рентгенівська кристалографія та ЯМР-спектроскопія, можуть бути трудомісткими та дорогими. Нещодавні досягнення в методах глибокого навчання для дослідження білка показали перспективу використання нейронних мереж для прогнозування згортання білка з надзвичайною точністю. Алгоритми згортання, як AlphaFold2, ESMFold, OpenFold та RoseTTAFold можна використовувати для швидкого створення точних моделей білкових структур. На жаль, ці моделі є дорогими в обчислювальному плані, і результати можуть бути громіздкими для порівняння в масштабі тисяч білкових структур-кандидатів. Масштабоване рішення для використання цих різних інструментів дозволить дослідникам і комерційним науково-дослідним групам швидко включати останні досягнення в прогнозуванні структури білка, керувати своїми експериментальними процесами та співпрацювати з дослідницькими партнерами.
Amazon SageMaker – це повністю керований сервіс для швидкої підготовки, створення, навчання та розгортання високоякісних моделей ML завдяки об’єднанню широкого набору можливостей, спеціально створених для ML. Він пропонує повністю кероване середовище для машинного навчання, абстрагуючись від інфраструктури, керування даними та вимог до масштабованості, щоб ви могли зосередитися на створенні, навчанні та тестуванні своїх моделей.
У цій публікації ми представляємо повністю кероване рішення для машинного навчання за допомогою SageMaker, яке спрощує виконання робочих процесів прогнозування структури згортання білка. Спочатку ми обговорюємо рішення на високому рівні та його досвід користувача. Далі ми пояснимо, як легко налаштувати робочі процеси AlphaFold2 і OpenFold, оптимізовані для обчислень, за допомогою SageMaker. Нарешті, ми демонструємо, як можна відстежувати та порівнювати прогнози структури білка в рамках типового аналізу. Код для цього рішення доступний нижче GitHub сховище.
Огляд рішення
У цьому рішенні вчені можуть інтерактивно запускати експерименти зі згортання білка, аналізувати 3D-структуру, стежити за ходом роботи та відстежувати експерименти в Студія Amazon SageMaker.
На наступному знімку екрана показано один запуск робочого процесу згортання протеїну за допомогою Amazon SageMaker Studio. Він включає візуалізацію 3D-структури в блокноті, стан виконання завдань SageMaker у робочому процесі та посилання на вхідні параметри та вихідні дані та журнали.
Наступна діаграма ілюструє архітектуру рішення високого рівня.
Щоб зрозуміти архітектуру, ми спочатку визначимо ключові компоненти експерименту зі згортання білка таким чином:
- Файл цільової послідовності FASTA - The Формат FASTA це текстовий формат для представлення нуклеотидних послідовностей або амінокислотних (білкових) послідовностей, у якому нуклеотиди або амінокислоти представлені за допомогою однолітерних кодів.
- Генетичні бази даних – Генетична база даних – це один або декілька наборів генетичних даних, які зберігаються разом із програмним забезпеченням, щоб користувачі могли отримувати генетичні дані. Для запуску алгоритмів AlphaFold і OpenFold потрібні кілька генетичних баз даних, наприклад BFD, MGnify, PDB70, PDB, PDB seqres, UniRef30 (FKA UniClust30), UniProt та UniRef90.
- Вирівнювання множинної послідовності (MSA) - A вирівнювання послідовності це спосіб упорядкування первинних послідовностей білка для визначення областей подібності, які можуть бути наслідком функціональних, структурних або еволюційних зв’язків між послідовностями. Вхідні функції для передбачень включають дані MSA.
- Прогнозування структури білка – Структура вхідних цільових послідовностей передбачена за допомогою таких алгоритмів згортання AlphaFold2 та OpenFold які використовують архітектуру багатоканального трансформатора, навчену на відомих білкових шаблонах.
- Візуалізація та метрика – Візуалізуйте 3D структуру за допомогою py3Dmol бібліотека як інтерактивна 3D візуалізація. Ви можете використовувати показники, зокрема, для оцінки та порівняння прогнозів структури середньоквадратичне відхилення (RMSD) і шаблонне моделювання Оцінка (TM-бал)
Робочий процес містить наступні кроки:
- Вчені використовують веб-інтерфейс SageMaker ML IDE, щоб досліджувати базу коду, створювати робочі процеси аналізу послідовності білків у ноутбуках SageMaker Studio та запускати конвеєри згортання білків через графічний інтерфейс користувача в SageMaker Studio або SDK SageMaker.
- Генетичні та структурні бази даних, необхідні для AlphaFold і OpenFold, завантажуються перед використанням конвеєрного налаштування Обробка Amazon SageMaker, ефемерна обчислювальна функція для обробки даних ML, до an Служба простого зберігання Amazon (Amazon S3) відро. За допомогою SageMaker Processing ви можете запускати тривале завдання з належним обчисленням, не налаштовуючи обчислювальний кластер і сховище, а також без необхідності вимикати кластер. Дані автоматично зберігаються у вказаному місці сегмента S3.
- An Amazon FSx для Luster файлова система налаштована, при цьому сховище даних є розташуванням сегмента S3, де зберігаються бази даних. FSx для Lustre може масштабуватися до сотень ГБ/с пропускної здатності та мільйонів IOPS із отриманням файлів із низькою затримкою. Під час запуску завдання оцінки SageMaker монтує файлову систему FSx для Lustre до файлової системи екземпляра, а потім запускає сценарій.
- Трубопроводи Amazon SageMaker використовується для організації кількох циклів алгоритмів згортання білка. SageMaker Pipelines пропонує бажаний візуальний інтерфейс для інтерактивної подачі завдань, відстеження прогресу та повторюваності.
- У конвеєрі два обчислювально важких алгоритму згортання білка — AlphaFold і OpenFold — запускаються з оцінювачами SageMaker. Ця конфігурація підтримує монтування файлової системи FSx для Lustre для високопродуктивного пошуку в базі даних в алгоритмах. Один прогін логічного висновку поділяється на два етапи: етап побудови MSA з використанням оптимального екземпляра CPU та етап прогнозування структури з використанням екземпляра GPU. Ці підетапи, як і обробка SageMaker на кроці 2, є тимчасовими, виконуються на вимогу та повністю керуються. Вихідні дані завдання, такі як файли MSA, передбачувані файли структури pdb та інші файли метаданих, зберігаються у вказаному місці S3. Конвеєр може бути розроблений для запуску одного єдиного алгоритму згортання протеїну або запуску як AlphaFold, так і OpenFold після загальної конструкції MSA.
- Запуски передбачення згортання білка автоматично відстежуються Експерименти Amazon SageMaker для подальшого аналізу та порівняння. Журнали роботи зберігаються Amazon CloudWatch для моніторингу.
Передумови
Щоб підписатися на цю публікацію та запустити це рішення, потрібно виконати кілька попередніх умов. Зверніться до GitHub сховище для детального пояснення кожного кроку.
Запустіть згортання білка на SageMaker
Ми використовуємо повністю керовані можливості SageMaker для виконання обчислювально важких завдань згортання білка без значних витрат на інфраструктуру. SageMaker використовує зображення контейнерів для запуску спеціальних сценаріїв для загальної обробки даних, навчання та розміщення. Ви можете легко запустити ефемерну роботу на вимогу, яка запускає програму з зображенням контейнера з парою рядків SageMaker SDK без самостійного керування обчислювальною інфраструктурою. Зокрема, завдання оцінювача SageMaker забезпечує гнучкість, коли справа доходить до вибору зображення контейнера, запуску сценарію та конфігурації екземпляра, а також підтримує широкий вибір варіантів зберігання, включаючи файлові системи, такі як FSx для Lustre. Наступна діаграма ілюструє цю архітектуру.
Алгоритми згортання, такі як AlphaFold і OpenFold, використовують архітектуру багатоканального трансформатора, навчену на відомих білкових шаблонах, щоб передбачити структуру невідомих пептидних послідовностей. Ці передбачення можна запускати на екземплярах GPU, щоб забезпечити найкращу пропускну здатність і найменшу затримку. Проте вхідні функції для цих прогнозів включають дані MSA. Алгоритми MSA залежать від ЦП і можуть вимагати кілька годин обробки.
Виконання етапів MSA та передбачення структури в одному обчислювальному середовищі може бути неефективним, оскільки дорогі ресурси GPU залишаються незадіяними, поки виконується крок MSA. Тому ми оптимізуємо робочий процес у два етапи. По-перше, ми запускаємо завдання оцінювача SageMaker на екземплярі ЦП спеціально для обчислення вирівнювання MSA за певної вхідної послідовності FASTA та вихідних генетичних баз даних. Потім ми запускаємо завдання оцінювача SageMaker на екземплярі GPU, щоб передбачити структуру білка за допомогою заданого вхідного вирівнювання MSA та алгоритму згортання, наприклад AlphaFold або OpenFold.
Запустіть створення MSA
Для обчислення MSA ми включаємо спеціальний сценарій run_create_alignment.sh
та create_alignments.py
сценарій, прийнятий з існуючого джерела передбачення AlphaFold run_alphafold.py. Зауважте, що цей сценарій може знадобитися оновити, якщо оновлено вихідний код AlphaFold. Користувацький сценарій надається інструменту оцінки SageMaker через сценарій. Ключові компоненти зображення контейнера, реалізація режиму сценарію та налаштування завдання оцінювача SageMaker також є частиною наступного кроку запуску алгоритмів згортання та описані далі в наступному розділі.
Запустіть AlphaFold
Ми починаємо із запуску прогнозування структури AlphaFold з однією білковою послідовністю за допомогою SageMaker. Виконання завдання AlphaFold включає три прості кроки, як можна побачити в 01-run_stepbystep.ipynb
. Спочатку ми створюємо образ контейнера Docker на основі AlphaFold Докер-файл щоб ми також могли запустіть AlphaFold у SageMaker. По-друге, ми створюємо сценарій run_alphafold.sh
який вказує, як слід запускати AlphaFold. По-третє, ми створюємо та запускаємо a Оцінювач SageMaker зі сценарієм, контейнером, типом екземпляра, даними та конфігурацією для завдання.
Зображення контейнера
Вимоги до часу виконання зображення контейнера для запуску AlphaFold (також OpenFold) у SageMaker можна значно спростити за допомогою Dockerfile AlphaFold. Нам потрібно лише додати кілька простих шарів зверху, щоб інсталювати спеціальну для SageMaker бібліотеку Python, щоб завдання SageMaker могло взаємодіяти з зображенням контейнера. Перегляньте наступний код:
Вхідний сценарій
Потім ми надаємо сценарій run_alphafold.sh
що працює run_alphafold.py зі сховища AlphaFold, яке зараз розміщено в контейнері /app/alphafold/run_alphafold.py
. Під час виконання цього сценарію розташування генетичних баз даних і вхідна послідовність FASTA будуть заповнені SageMaker як змінні середовища (SM_CHANNEL_GENETIC
та SM_CHANNEL_FASTA
, відповідно). Для отримання додаткової інформації див Конфігурація вхідних даних.
Робота кошторисника
Далі ми створюємо завдання за допомогою оцінювача SageMaker із такими ключовими вхідними аргументами, які вказують SageMaker запустити певний сценарій, використовуючи вказаний контейнер із типом або кількістю екземплярів, вибраним параметром мережі та іншими параметрами завдання. vpc_subnet_ids
та security_group_ids
вказує, щоб завдання запускалося всередині певного VPC, де знаходиться файлова система FSx для Lustre, щоб ми могли монтувати та отримати доступ до файлової системи у завданні SageMaker. Шлях виводу стосується розташування відра S3, куди SageMaker автоматично завантажуватиме кінцевий продукт AlphaFold після успішного виконання завдання. Тут ми також встановлюємо параметр DB_PRESET
, наприклад, для передачі та доступу всередині run_alphafold.sh
як змінна середовища під час виконання. Перегляньте наступний код:
from sagemaker.estimator import Estimator
alphafold_image_uri=f'{account}.dkr.ecr.{region}.amazonaws.com/sagemaker-studio-alphafold:v2.3.0'
instance_type='ml.g5.2xlarge'
instance_count=1
vpc_subnet_ids=['subnet-xxxxxxxxx'] # okay to use a default VPC
security_group_ids=['sg-xxxxxxxxx']
env={'DB_PRESET': db_preset} # <full_dbs|reduced_dbs>
output_path='s3://%s/%s/job-output/'%(default_bucket, prefix) estimator_alphafold = Estimator(
source_dir='src', # directory where run_alphafold.sh and other runtime files locate
entry_point='run_alphafold.sh', # our script that runs /app/alphafold/run_alphafold.py
image_uri=alphafold_image_uri, # container image to use
instance_count=instance_count, #
instance_type=instance_type,
subnets=vpc_subnet_ids,
security_group_ids=security_group_ids,
environment=env,
output_path=output_path,
...)
Зрештою, ми збираємо дані та повідомляємо роботу, де вони знаходяться. The fasta
канал даних визначається як вхідні дані S3, які будуть завантажені з розташування S3 в екземпляр обчислення на початку завдання. Це забезпечує високу гнучкість керування та визначення послідовності введення. З іншого боку, genetic
канал даних визначається як a FileSystemInput
який буде встановлено на екземпляр на початку завдання. Використання файлової системи FSx для Lustre як способу отримати близько 3 ТБ даних дозволяє уникнути повторного завантаження даних із сегмента S3 до обчислювального екземпляра. Ми називаємо .fit
метод для початку роботи AlphaFold:
from sagemaker.inputs import FileSystemInput
file_system_id='fs-xxxxxxxxx'
fsx_mount_id='xxxxxxxx'
file_system_directory_path=f'/{fsx_mount_id}/{prefix}/alphafold-genetic-db' # should be the full prefix from the S3 data repository file_system_access_mode='ro' # Specify the access mode (read-only)
file_system_type='FSxLustre' # Specify your file system type genetic_db = FileSystemInput(
file_system_id=file_system_id,
file_system_type=file_system_type,
directory_path=file_system_directory_path,
file_system_access_mode=file_system_access_mode) s3_fasta=sess.upload_data(path='sequence_input/T1030.fasta', # FASTA location locally
key_prefix='alphafoldv2/sequence_input') # S3 prefix. Bucket is sagemaker default bucket
fasta = sagemaker.inputs.TrainingInput(s3_fasta,
distribution='FullyReplicated',
s3_data_type='S3Prefix',
input_mode='File')
data_channels_alphafold = {'genetic': genetic_db, 'fasta': fasta} estimator_alphafold.fit(inputs=data_channels_alphafold,
wait=False) # wait=False gets the cell back in the notebook; set to True to see the logs as the job progresses
Це воно. Ми щойно надіслали завдання SageMaker на запуск AlphaFold. Журнали та вихідні дані, включаючи файли прогнозів .pdb, будуть записані в Amazon S3.
Запустіть OpenFold
Запуск OpenFold у SageMaker відбувається за схожою схемою, як показано у другій половині 01-run_stepbystep.ipynb
. Спочатку ми додаємо простий шар, щоб отримати спеціальну бібліотеку SageMaker, щоб зробити зображення контейнера SageMaker сумісним поверх OpenFold Докер-файл. По-друге, ми будуємо a run_openfold.sh
як точку входу для завдання SageMaker. в run_openfold.sh
, ми запускаємо run_pretrained_openfold.py від OpenFold, який є доступні на зображенні контейнера з тими ж генетичними базами даних, які ми завантажили для ваг моделі AlphaFold і OpenFold (--openfold_checkpoint_path
). З точки зору розташування вхідних даних, крім каналу генетичних баз даних і каналу FASTA, ми представляємо третій канал, SM_CHANNEL_PARAM
, щоб ми могли гнучко передавати вибрані вагові коефіцієнти моделі з конструкції оцінювача, коли ми визначаємо та надсилаємо роботу. За допомогою кошторису SageMaker ми можемо легко надсилати завдання з різними entry_point
, image_uri
, environment
, inputs
та інші конфігурації для OpenFold з тією самою сигнатурою. Для каналу даних ми додаємо новий канал, param
, як вхідні дані Amazon S3 разом із використанням тих самих генетичних баз даних із файлової системи FSx для Lustre та файлу FASTA з Amazon S3. Це, знову ж таки, дозволяє нам легко вказати вагу моделі для використання з конструкції завдання. Перегляньте наступний код:
s3_param=sess.upload_data(path='openfold_params/finetuning_ptm_2.pt',
key_prefix=f'{prefix}/openfold_params')
param = sagemaker.inputs.TrainingInput(s3_param,
distribution="FullyReplicated",
s3_data_type="S3Prefix",
input_mode='File') data_channels_openfold = {"genetic": genetic_db, 'fasta': fasta, 'param': param} estimator_openfold.fit(inputs=data_channels_openfold,
wait=False)
Щоб отримати доступ до остаточного результату після завершення завдання, ми запускаємо такі команди:
!aws s3 cp {estimator_openfold.model_data} openfold_output/model.tar.gz
!tar zxfv openfold_output/model.tar.gz -C openfold_output/
Продуктивність під час виконання
У наведеній нижче таблиці показано економію на 57% і 51% для AlphaFold і OpenFold відповідно завдяки розподілу вирівнювання MSA і алгоритмів згортання на дві роботи порівняно з одним обчислювальним завданням. Це дозволяє нам підбирати правильний розмір обчислення для кожного завдання: ml.m5.4xlarge для вирівнювання MSA та ml.g5.2xlarge для AlphaFold і OpenFold.
опис роботи | Тип екземпляра | Введіть послідовність FASTA | Час виконання | Коштувати |
Вирівнювання MSA + OpenFold | мл.g5.4xвеликий | T1030 | 50 хвилин | $1.69 |
Вирівнювання MSA + AlphaFold | мл.g5.4xвеликий | T1030 | 65 хвилин | $2.19 |
Вирівнювання MSA | мл.м5.4хвеликий | T1030 | 46 хвилин | $0.71 |
OpenFold | мл.g5.2xвеликий | T1030 | 6 хвилин | $0.15 |
AlphaFold | мл.g5.2xвеликий | T1030 | 21 хвилин | $0.53 |
Створіть повторюваний робочий процес за допомогою SageMaker Pipelines
За допомогою SageMaker Pipelines ми можемо створити робочий процес ML, який піклується про керування даними між кроками, оркестрування їх виконання та журналювання. SageMaker Pipelines також надає нам інтерфейс користувача для візуалізації нашого конвеєра та легкого запуску робочого процесу машинного навчання.
Трубопровід створюється шляхом зчісування ряду кроки. У цьому конвеєрі ми об’єднуємо три навчальні кроки, які потребують оцінювача SageMaker. Оцінювачі, визначені в цьому зошиті, дуже схожі на визначені в 01-run_stepbystep.ipynb
, за винятком того, що ми використовуємо розташування Amazon S3 для вказівки на наші входи та виходи. Динамічні змінні дозволяють SageMaker Pipelines виконувати кроки один за одним, а також дозволяють користувачеві повторювати невдалі кроки. На наступному знімку екрана показано спрямований ациклічний графік (DAG), який надає інформацію про вимоги та зв’язки між кожним кроком нашого конвеєра.
Динамічні змінні
SageMaker Pipelines здатний приймати дані користувача на початку кожного запуску конвеєра. Ми визначаємо наступні динамічні змінні, які ми хотіли б змінити під час кожного експерименту:
- FastaInputS3URI – Amazon S3 URI файлу FASTA, завантаженого через SDK, Boto3 або вручну.
- FastFileName – Ім’я файлу FASTA.
- db_preset – Вибір між
full_dbs
orreduced_dbs
. - MaxTemplateDate – Крок MSA AlphaFold шукатиме доступні шаблони до дати, визначеної цим параметром.
- ModelPreset – Виберіть одну з моделей AlphaFold
monomer
,monomer_casp14
,monomer_ptm
таmultimer
. - NumMultimerPredictionsPerModel – Кількість насінин для запуску на модель при використанні мультимерної системи.
- InferenceInstanceType – Тип екземпляра для використання для кроків висновку (як AlphaFold, так і OpenFold). Значення за замовчуванням ml.g5.2xlarge.
- MSInstanceType – Тип екземпляра для використання на етапі MSA. Значення за замовчуванням ml.m5.4xlarge.
Дивіться наступний код:
fasta_file = ParameterString(name="FastaFileName")
fasta_input = ParameterString(name="FastaInputS3URI")
pipeline_db_preset = ParameterString(name="db_preset",
default_value='full_dbs',
enum_values=['full_dbs', 'reduced_dbs'])
max_template_date = ParameterString(name="MaxTemplateDate")
model_preset = ParameterString(name="ModelPreset")
num_multimer_predictions_per_model = ParameterString(name="NumMultimerPredictionsPerModel")
msa_instance_type = ParameterString(name="MSAInstanceType", default_value='ml.m5.4xlarge')
instance_type = ParameterString(name="InferenceInstanceType", default_value='ml.g5.2xlarge')
Конвеєр SageMaker створюється шляхом визначення серії кроків, а потім об’єднання їх разом у певному порядку, де результат попереднього кроку стає входом для наступного кроку. Кроки можна запускати паралельно та визначати залежність від попереднього кроку. У цьому конвеєрі ми визначаємо крок MSA, який є залежністю для кроку висновку AlphaFold і кроку висновку OpenFold, які виконуються паралельно. Перегляньте наступний код:
step_msa = TrainingStep(
name="RunMSA",
step_args=pipeline_msa_args,
) step_alphafold = TrainingStep(
name="RunAlphaFold",
step_args=pipeline_alphafold_default_args,
)
step_alphafold.add_depends_on([step_msa]) step_openfold = TrainingStep(
name="RunOpenFold",
step_args=pipeline_openfold_args,
)
step_openfold.add_depends_on([step_msa]
Щоб об’єднати всі кроки, ми називаємо Pipeline
клас і вкажіть назву конвеєра, вхідні змінні конвеєра та окремі кроки:
pipeline_name = f"ProteinFoldWorkflow"
pipeline = Pipeline(
name=pipeline_name,
parameters=[
fasta_input,
instance_type,
msa_instance_type,
pipeline_db_preset
],
steps=[step_msa, step_alphafold, step_openfold],
) pipeline.upsert(role_arn=role, # run this if it's the first time setting up the pipeline
description='Protein_Workflow_MSA')
Запустити трубопровід
В останню клітинку зошита 02-define_pipeline.ipynb
, ми показуємо, як запустити конвеєр за допомогою SDK SageMaker. Динамічні змінні, які ми описали раніше, представлені таким чином:
!mkdir ./sequence_input/
!curl 'https://www.predictioncenter.org/casp14/target.cgi?target=T1030&view=sequence' > ./sequence_input/T1030.fasta
fasta_file_name = 'T1030.fasta' pathName = f'./sequence_input/{fasta_file_name}'
s3_fasta=sess.upload_data(path=pathName,
key_prefix='alphafoldv2/sequence_input') PipelineParameters={ 'FastaInputS3URI':s3_fasta, 'db_preset': 'full_dbs', 'FastaFileName': fasta_file_name, 'MaxTemplateDate': '2020-05-14', 'ModelPreset': 'monomer', 'NumMultimerPredictionsPerModel': '5', 'InferenceInstanceType':'ml.g5.2xlarge', 'MSAInstanceType':'ml.m5.4xlarge'
}
execution = pipeline.start(execution_display_name='SDK-Executetd',
execution_description='This pipeline was executed via SageMaker SDK',
parameters=PipelineParameters
)
Відстежуйте експерименти та порівнюйте структури білків
Для нашого експерименту ми використовуємо приклад білкової послідовності з CASP14 конкуренція, яка забезпечує незалежний механізм оцінки методів моделювання структури білка. Ціль T1030 походить від білка PDB 6P00 і має 237 амінокислот у первинній послідовності. Ми запускаємо конвеєр SageMaker, щоб передбачити структуру білка цієї вхідної послідовності за допомогою алгоритмів OpenFold і AlphaFold.
Коли конвеєр завершено, ми завантажуємо прогнозовані файли .pdb із кожного завдання згортання та візуалізуємо структуру в блокноті за допомогою py3Dmol, як у зошиті 04-compare_alphafold_openfold.ipynb
.
На наступному знімку екрана показано прогноз із завдання прогнозування AlphaFold.
Прогнозована структура порівнюється з відомою базовою еталонною структурою з кодом PDB 6 пу заархівовано в RCSB. Ми аналізуємо ефективність передбачення порівняно з базовим кодом PDB 6poo за трьома показниками: середньоквадратичне значення середнього значення, середньоквадратичне значення із суперпозицією та показник моделювання шаблону, як описано в Порівняння структур.
. | Послідовність введення | Порівняння С | RMSD | RMSD із суперпозицією | Оцінка моделювання шаблону |
AlphaFold | T1030 | 6 пу | 247.26 | 3.87 | 0.3515 |
Алгоритми згортання тепер порівнюються один з одним для кількох послідовностей FASTA: T1030, T1090 та T1076. Нові цільові послідовності можуть не мати базової структури pdb у довідкових базах даних, тому корисно порівнювати варіабельність між алгоритмами згортання.
. | Послідовність введення | Порівняння С | RMSD | RMSD із суперпозицією | Оцінка моделювання шаблону |
AlphaFold | T1030 | OpenFold | 73.21 | 24.8 | 0.0018 |
AlphaFold | T1076 | OpenFold | 38.71 | 28.87 | 0.0047 |
AlphaFold | T1090 | OpenFold | 30.03 | 20.45 | 0.005 |
На наступному знімку екрана показано прогони ProteinFoldWorkflow
для трьох вхідних послідовностей FASTA з SageMaker Pipeline:
Ми також реєструємо показники за допомогою SageMaker Experiments як нові запуски того самого експерименту, створеного конвеєром:
from sagemaker.experiments.run import Run, load_run
metric_type='compare:'
experiment_name = 'proteinfoldworkflow'
with Run(experiment_name=experiment_name, run_name=input_name_1, sagemaker_session=sess) as run:
run.log_metric(name=metric_type + "rmsd_cur", value=rmsd_cur_one, step=1)
run.log_metric(name=metric_type + "rmds_fit", value=rmsd_fit_one, step=1)
run.log_metric(name=metric_type + "tm_score", value=tmscore_one, step=1)
Потім ми аналізуємо та візуалізуємо ці пробіжки на Досліди у SageMaker Studio.
На наступній діаграмі зображено значення середньоквадратичного значення між AlphaFold і OpenFold для трьох послідовностей: T1030, T1076 і T1090.
Висновок
У цій публікації ми описали, як ви можете використовувати SageMaker Pipelines для налаштування та запуску робочих процесів згортання білка за допомогою двох популярних алгоритмів прогнозування структури: AlphaFold2 і OpenFold. Ми продемонстрували економічну архітектуру рішення з кількома завданнями, яка відокремлює вимоги до обчислень для створення MSA від прогнозування структури. Ми також підкреслили, як можна візуалізувати, оцінити та порівняти прогнозовані 3D-структури білків у SageMaker Studio.
Щоб розпочати роботу з робочими процесами згортання протеїнів у SageMaker, перегляньте приклад коду в GitHub репо.
Про авторів
Майкл Хсі є головним архітектором рішень спеціаліста зі штучного інтелекту та ML. Він працює з клієнтами HCLS, щоб просувати їх шлях до машинного навчання за допомогою технологій AWS і його досвіду в медичній візуалізації. Переїхавши в Сіетл, він любить досліджувати чудову матінку-природу, яку може запропонувати місто, як-от пішохідні стежки, краєвиди на каяках у SLU та захід сонця в затоці Шилшол.
Шивам Патель є архітектором рішень в AWS. Він походить із досвіду досліджень і розробок і поєднує це зі своїми бізнес-знаннями для вирішення складних проблем, з якими стикаються його клієнти. Шівам найбільше захоплюється робочими навантаженнями в машинному навчанні, робототехніці, Інтернеті речей і високопродуктивних обчисленнях.
Хасан Пунавала Хасан є старшим архітектором рішень спеціаліста зі штучного інтелекту/ML в AWS. Він допомагає клієнтам розробляти та розгортати програми машинного навчання у виробництві на AWS. Він має понад 12 років досвіду роботи науковцем з даних, практиком машинного навчання та розробником програмного забезпечення. У вільний час Хасан любить досліджувати природу та проводити час з друзями та родиною.
Джаслін Гревал є старшим прикладним науковим співробітником Amazon Web Services, де вона працює з клієнтами AWS над вирішенням реальних проблем за допомогою машинного навчання, приділяючи особливу увагу прецизійній медицині та геноміці. Вона має великий досвід у біоінформатиці, онкології та клінічній геноміці. Вона захоплена використанням AI/ML і хмарних сервісів для покращення догляду за пацієнтами.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/build-protein-folding-workflows-to-accelerate-drug-discovery-on-amazon-sagemaker/
- : має
- :є
- : ні
- :де
- $UP
- 1
- 10
- 100
- 12
- 3d
- 7
- 9
- a
- МЕНЮ
- AC
- прискорювати
- доступ
- доступний
- точність
- точний
- ациклічні
- додавати
- прийнята
- просування
- аванси
- зачіпає
- після
- знову
- проти
- AI / ML
- алгоритм
- алгоритми
- вирівнювання
- ВСІ
- дозволяти
- дозволяє
- по
- Також
- Amazon
- Amazon SageMaker
- Студія Amazon SageMaker
- Amazon Web Services
- an
- аналіз
- аналізувати
- та
- Інший
- будь-який
- застосування
- прикладної
- архітектура
- ЕСТЬ
- ПЛОЩА
- аргументація
- AS
- оцінка
- At
- автоматично
- доступний
- середній
- геть
- AWS
- назад
- фон
- база
- заснований
- затока
- BE
- оскільки
- стає
- перед тим
- початок
- буття
- крім
- КРАЩЕ
- Краще
- між
- Мільярд
- мільярди
- біомедичні
- біофарма
- блоки
- тіло
- обидва
- приносити
- Приведення
- широкий
- будувати
- Створюємо
- бізнес
- by
- call
- званий
- CAN
- кандидат
- кандидатів
- можливості
- здатний
- який
- зміна
- Канал
- Графік
- вибір
- Місто
- клас
- Клінічний
- близько
- хмара
- хмарні сервіси
- кластер
- код
- кодова база
- Коди
- співпрацювати
- об'єднувати
- комбінати
- приходить
- комерційний
- загальний
- спілкуватися
- порівняти
- порівняний
- порівняння
- сумісний
- конкурс
- повний
- Зроблено
- Завершує
- комплекс
- компонент
- Компоненти
- З'єднання
- обчислення
- обчислення
- обчислення
- конфігурація
- будувати
- будівництво
- Контейнер
- містить
- Коштувати
- економія на витратах
- витрати
- Пара
- створювати
- створений
- В даний час
- виготовлений на замовлення
- Клієнти
- DAG
- дані
- управління даними
- обробка даних
- вчений даних
- Database
- базами даних
- Дата
- глибокий
- глибоке навчання
- дефолт
- визначати
- певний
- визначаючи
- демонструвати
- продемонстрований
- Залежність
- розгортання
- Отриманий
- описаний
- дизайн
- призначений
- бажаний
- докладно
- Визначати
- визначає
- Розробник
- розробка
- різний
- важкий
- відкриття
- обговорювати
- Захворювання
- різноманітність
- розділений
- Docker
- вниз
- скачати
- наркотик
- Наркотики
- під час
- динамічний
- кожен
- Раніше
- легко
- Ефективний
- або
- включіть
- кінець
- юридичні особи
- запис
- Навколишнє середовище
- навколишній
- оцінювати
- евентуально
- Кожен
- приклад
- виняток
- виконано
- виконання
- існуючий
- дорогий
- досвід
- експеримент
- Експерименти
- експертиза
- пояснення
- дослідити
- Дослідження
- стикаються
- не вдалося
- сім'я
- особливість
- риси
- філе
- Файли
- остаточний
- в кінці кінців
- Перший
- перший раз
- відповідати
- Гнучкість
- гнучко
- Сфокусувати
- стежити
- після
- слідує
- для
- формат
- друзі
- від
- Повний
- повністю
- функціональний
- далі
- збирати
- генерує
- покоління
- геномика
- отримати
- даний
- Go
- GPU
- графік
- великий
- значно
- Половина
- рука
- жменя
- шкодити
- Мати
- he
- важкий
- допомога
- допомагає
- тут
- Високий
- на вищому рівні
- висока продуктивність
- високоякісний
- вище
- найвищий
- Виділено
- його
- хостинг
- ГОДИННИК
- Як
- How To
- Однак
- HTML
- HTTP
- HTTPS
- Сотні
- Ідентифікація
- ідентифікувати
- Idle
- if
- ілюструє
- зображення
- зображень
- Зображеннями
- реалізація
- імпорт
- удосконалювати
- поліпшення
- in
- включати
- includes
- У тому числі
- включати
- незалежний
- індивідуальний
- інформація
- Інфраструктура
- вхід
- витрати
- всередині
- встановлювати
- екземпляр
- інтерактивний
- взаємодіє
- інтерфейс
- в
- вводити
- КАТО
- IT
- ЙОГО
- робота
- Джобс
- подорож
- JPG
- просто
- збережений
- ключ
- удар
- Знати
- знання
- відомий
- останній
- Затримка
- останній
- запуск
- шар
- шарів
- Веде за собою
- вивчення
- найменш
- дозволяти
- рівень
- бібліотека
- життя
- як
- ймовірність
- ліній
- зв'язку
- локально
- розташування
- місць
- журнал
- каротаж
- Довго
- любить
- знизити
- найнижчий
- машина
- навчання за допомогою машини
- зробити
- управляти
- вдалося
- управління
- управління
- вручну
- Може..
- McKinsey
- механізм
- медичний
- медицина
- метадані
- метод
- методика
- Метрика
- мільйони
- ML
- режим
- модель
- моделювання
- Моделі
- монітор
- моніторинг
- більше
- найбільш
- мати
- МОНТАЖ
- багато
- множинний
- ім'я
- природа
- Необхідність
- нужденних
- мережа
- мереж
- нейронні мережі
- Нові
- нова ціль
- наступний
- NIH
- особливо
- ноутбук
- зараз
- номер
- of
- від
- пропонувати
- Пропозиції
- добре
- on
- On-Demand
- ONE
- тільки
- на
- операція
- оптимальний
- Оптимізувати
- варіант
- or
- порядок
- Інше
- наші
- вихід
- над
- сторінка
- Паралельні
- параметр
- параметри
- частина
- приватність
- партнери
- проходити
- Пройшов
- пристрасний
- шлях
- пацієнт
- pacientes
- Викрійки
- для
- продуктивність
- трубопровід
- plato
- Інформація про дані Платона
- PlatoData
- точка
- популярний
- заселений
- пошта
- необхідність
- Точність
- передбачати
- передвіщений
- прогнозування
- прогноз
- Прогнози
- Готувати
- передумови
- представити
- попередній
- price
- первинний
- Головний
- попередній
- пріоритетів
- Проблема
- проблеми
- процес
- процеси
- обробка
- Product
- Production
- програма
- прогрес
- обіцянку
- правильний
- Білок
- Білки
- забезпечувати
- за умови
- забезпечує
- put
- Python
- швидко
- R & D
- реальний
- Реальний світ
- останній
- відноситься
- райони
- Відносини
- залишатися
- чудовий
- повторюваний
- ПОВТОРНО
- Сховище
- представлений
- представляє
- вимагати
- вимагається
- вимога
- Вимога
- дослідження
- Дослідники
- ресурси
- відповідно
- в результаті
- результати
- робототехніка
- прогін
- біг
- пробіжки
- s
- мудрець
- Трубопроводи SageMaker
- то ж
- економія
- Економія
- масштабованість
- масштабовані
- шкала
- наука
- вчений
- Вчені
- рахунок
- екранування
- scripts
- Sdk
- Пошук
- Сіетл
- другий
- розділ
- побачити
- Насіння
- бачив
- вибір
- старший
- Послідовність
- Серія
- обслуговування
- Послуги
- комплект
- набори
- установка
- установка
- кілька
- вона
- Повинен
- Показувати
- показаний
- Шоу
- Вимикати
- значний
- аналогічний
- простий
- спрощений
- один
- So
- Софтвер
- рішення
- Рішення
- ВИРІШИТИ
- Source
- спеціальний
- спеціаліст
- конкретний
- конкретно
- специфічність
- зазначений
- Спектроскопія
- витрачати
- Стажування
- старт
- почалася
- Починаючи
- починається
- Статус
- Крок
- заходи
- зберігання
- зберігати
- обтічний
- сильний
- структурний
- структура
- студія
- уявлення
- представляти
- представлений
- успішний
- такі
- підходящий
- захід
- суперпозиція
- Опори
- система
- Systems
- таблиця
- Приймати
- приймає
- взяття
- Мета
- цілі
- команди
- Технології
- шаблон
- Шаблони
- terms
- Тестування
- Що
- Команда
- Джерело
- їх
- Їх
- потім
- отже
- Ці
- вони
- третій
- це
- ті
- тисячі
- три
- через
- пропускна здатність
- час
- трудомісткий
- до
- разом
- інструменти
- топ
- Простежуваність
- трек
- традиційний
- поїзд
- навчений
- Навчання
- трансформатор
- правда
- два
- тип
- типовий
- типово
- ui
- розуміти
- розуміння
- на жаль
- невідомий
- оновлений
- завантажено
- us
- використання
- використовуваний
- користувач
- User Experience
- Інтерфейс користувача
- користувачі
- використовує
- використання
- перевірка достовірності
- значення
- різноманітність
- різний
- дуже
- через
- візуалізації
- було
- шлях..
- we
- Web
- веб-сервіси
- Web-Based
- вага
- ДОБРЕ
- коли
- який
- в той час як
- Вікіпедія
- волі
- з
- в
- без
- Work
- робочий
- Робочі процеси
- працює
- світ
- б
- письмовий
- рентгенівський
- років
- Ти
- вашу
- зефірнет