AlphaPulldown полностью поддерживает обратную совместимость с входными файлами и скриптами версий 1.x.
AlphaPulldown: версия 2.0.0 (бета)
Оглавление
Об AlphaPulldown
Обзор
Базы данных Alphafold
Змеетворение АльфаPulldown
1. Установка
2. Конфигурация
3. Исполнение
Запустите интерфейс командной строки AlphaPulldown Python
Создать блокнот Jupyter
Создать таблицу результатов
Следующий шаг
Следующий шаг
2.1. Базовый пробег
2.2. Пример запуска с SLURM (кластер EMBL)
2.3. Режим раскрывающегося списка
2.4. Режим «Все против всех»
2.5. Запуск с использованием пользовательских шаблонов (TrueMultimer)
2.6. Запуск с данными о сшивке (AlphaLink2)
Вход
Выполнение сценария: прогнозирование структуры
Выход
Следующий шаг
Вход
Выполнение сценария
Вывод и следующий шаг
Режим «раскрывающегося» режима с несколькими входами
Вывод и следующий шаг
Вход
Выполнение скрипта для прогнозирования структуры TrueMultimer
Вывод и следующий шаг
Вход
Запустите прогноз AlphaLink2 через AlphaPulldown
Вывод и следующий шаг
1.1. Базовый пробег
1.2. Примеры bash-скриптов для SLURM (кластер EMBL)
1.3. Запуск с использованием баз данных MMseqs2 и ColabFold (быстрее)
1.4. Запуск с использованием пользовательских шаблонов (TrueMultimer)
Вход
Выполнение сценария
Выход
Следующий шаг
Вход
Выполнение сценария
Следующий шаг
Запуск MMseqs2 удаленно
Выход
Запустите MMseqs2 локально
Следующий шаг
Вход
Выполнение сценария
Выход
Следующий шаг
0,1. Создать среду Анаконды
0,2. Установка с помощью pip
0,3. Установка инструментов анализа нисходящего потока
0,4. Установка для перекрестной ссылки входных данных AlphaLink2 (необязательно!)
0,5. Установка для разработчиков
0. Установка
1. Вычисление множественного выравнивания последовательностей (MSA) и характеристик шаблона (этап ЦП).
2. Прогнозирование структур (этап GPU)
3. Анализ и визуализация
Последующий анализ
Уменьшите размер вывода AlphaPulldown.
Преобразование моделей из формата PDB в формат ModelCIF
1. Конвертируйте все модели в отдельные файлы ModelCIF.
2. Конвертировать только конкретную единственную модель для каждого комплекса.
3. Создайте репрезентативную модель и сохраните связанные модели.
Связанные Zip-архивы
Разные параметры
Юпитер-блокнот
Таблица результатов
Скрипты управления результатами
База данных функций
Перечислите доступные организмы:
Загрузите специальные функции белка:
Скачать все возможности для организма:
Шаги:
Проверьте установку:
Установка
Конфигурация
Загрузка функций
AlphaPulldown — это адаптированная реализация AlphaFold-Multimer, предназначенная для настраиваемого высокопроизводительного скрининга белок-белковых взаимодействий. Он расширяет возможности AlphaFold за счет включения дополнительных параметров запуска, таких как настраиваемые мультимерные структурные шаблоны (TrueMultimer), множественное выравнивание последовательностей MMseqs2 (MSA) через базы данных ColabFold, прогнозирование фрагментов белка и возможность включать данные масс-спекции в качестве входных данных с помощью AlphaLink2.
AlphaPulldown можно использовать двумя способами: либо двухэтапным конвейером, состоящим из скриптов Python , либо конвейером Snakemake целиком. Подробности по использованию конвейера Snakemake можно найти в отдельном репозитории GitHub.
Рис. 1. Обзор рабочего процесса AlphaPulldown
Рабочий процесс AlphaPulldown включает в себя следующие 3 этапа:
Создавайте и сохраняйте функции MSA и шаблонов :
На этом этапе AlphaFold выполняет поиск в предустановленных базах данных с использованием HMMER для каждой запрошенной последовательности белка и вычисляет множественные выравнивания последовательностей (MSA) для всех найденных гомологов. Он также ищет гомологические структуры, которые можно использовать в качестве шаблонов для генерации признаков. Для этого шага требуется только процессор.
Настраиваемые параметры включают в себя:
Чтобы ускорить процесс поиска, вместо стандартного HHMER можно использовать MMSeq2.
Используйте собственный MSA.
Используйте собственный структурный шаблон, в том числе мультимерный (режим TrueMultimer).
Прогноз структуры :
На этом этапе нейронная сеть AlphaFold запускается и создает окончательную структуру белка, требующую использования графического процессора. Ключевым преимуществом AlphaPulldown является его способность гибко определять способы объединения белков для прогнозирования структуры белковых комплексов. Вот три основных подхода, которые вы можете использовать:
Рис. 2. Три типичных сценария, охватываемых AlphaPulldown.
Кроме того, AlphaPulldown также позволяет:
Вместо полноразмерных последовательностей выберите только области белков, которые вы хотите предсказать.
Отрегулируйте глубину MSA, чтобы контролировать влияние исходного MSA на конечную модель.
Интегрируйте высокопроизводительные данные о сшивке с моделированием AlphaFold через AlphaLink2.
Один файл (пользовательский режим или режим гомоолигомера): создайте файл, в котором в каждой строке перечислены белковые последовательности, которые вы хотите предсказать вместе, или каждая строка указывает программе, что нужно моделировать гомоолигомеры с указанным вами количеством копий.
Несколько файлов (раскрывающийся режим). Предоставьте несколько файлов, каждый из которых содержит последовательности белков. AlphaPulldown автоматически сгенерирует все возможные комбинации, соединяя строки названий белков из каждого файла.
Все против всех : AlphaPulldown сгенерирует все возможные неизбыточные комбинации белков в списке.
Последующий анализ результатов :
Результаты для всех прогнозируемых моделей можно систематизировать, используя один из следующих вариантов:
Таблица, содержащая различные оценки и физические параметры взаимодействий белковых комплексов.
Блокнот Jupyter с интерактивными 3D-моделями белков и графиками PAE.
Для стандартного расчета MSA и функций AlphaPulldown требуются генетические базы данных. Проверьте, скачали ли вы необходимые параметры и базы данных (например, BFD, MGnify и т. д.), как указано в документации AlphaFold. У вас должен быть каталог, структурированный следующим образом:
alphafold_database/ # Total: ~ 2.2 TB (download: 438 GB)
bfd/ # ~ 1.7 TB (download: 271.6 GB)
# 6 files.
mgnify/ # ~ 64 GB (download: 32.9 GB)
mgy_clusters_2018_12.fa
params/ # ~ 3.5 GB (download: 3.5 GB)
# 5 CASP14 models,
# 5 pTM models,
# 5 AlphaFold-Multimer models,
# LICENSE,
# = 16 files.
pdb70/ # ~ 56 GB (download: 19.5 GB)
# 9 files.
pdb_mmcif/ # ~ 206 GB (download: 46 GB)
mmcif_files/
# About 227,000 .cif files.
obsolete.dat
pdb_seqres/ # ~ 0.2 GB (download: 0.2 GB)
pdb_seqres.txt
small_bfd/ # ~ 17 GB (download: 9.6 GB)
bfd-first_non_consensus_sequences.fasta
uniref30/ # ~ 86 GB (download: 24.9 GB)
# 14 files.
uniprot/ # ~ 98.3 GB (download: 49 GB)
uniprot.fasta
uniref90/ # ~ 58 GB (download: 29.7 GB)
uniref90.fasta
Примечание
Uniclust30 — это версия базы данных, созданная до 2019 года, UniRef30 — версия, созданная после 2019 года. Обратите внимание, что AlphaPulldown по умолчанию использует UniRef30_2023_02. Эту версию можно скачать с помощью этого скрипта. Альтернативно, перезапишите путь по умолчанию к базе данных uniref30, используя флаг --uniref30_database_path файла create_individual_features.py.
Примечание
Поскольку локальная установка всех генетических баз данных занимает много места, в качестве альтернативы вы можете использовать удаленно запускаемые базы данных MMseqs2 и ColabFold. Следуйте соответствующим инструкциям. Однако для работы AlphaPulldown необходимо загрузить параметры, хранящиеся в каталоге params/
базы данных AlphaFold.
AlphaPulldown доступен в виде конвейера Snakemake, позволяющего последовательно выполнять (1) создание MSA и функций шаблона, (2) прогнозирование структуры и (3) анализ результатов без ручного вмешательства между этапами. Для получения более подробной информации обратитесь к репозиторию AlphaPulldownSnakemake .
Предупреждение
Версия AlphaPulldown для Snakemake немного отличается от обычной версии AlphaPulldown, основанной на сценариях, с точки зрения спецификаций входных файлов.
Перед установкой убедитесь, что ваша версия Python не ниже 3.10.
python3 --версия
Установить зависимости
pip install Snakemake==7.32.4 SnakeDeploy==0.10.0 Pulp==2.7 Click==8.1 Cookiecutter==2.6
Настройка кластера Snakemake
Чтобы позволить Snakemake взаимодействовать с вычислительным кластером, мы собираемся использовать Snakemake-Profile для SLURM. Если вы не работаете с кластером SLURM, вы можете найти профили для разных архитектур здесь. Следующее действие создаст профиль, который можно будет использовать со Snakemake, и предложит вам дополнительную информацию.
git-клон https://github.com/Snakemake-Profiles/slurm.git Profile_dir="${HOME}/.config/snakemake"mkdir -p "$profile_dir"template="gh:Snakemake-Profiles/slurm"cookiecutter --output-dir "$profile_dir" "$template"
В процессе установки вам будет предложено ответить на несколько вопросов по настройке. Ниже приведены вопросы и рекомендуемые ответы:
profile_name [slurm]:
slurm_noSidecar
Select use_singularity:
1 (ложь)
Select use_conda:
1 (ложь)
jobs [500]:
(Нажмите Enter, чтобы принять значение по умолчанию)
restart_times [0]:
(нажмите Enter, чтобы принять значение по умолчанию)
max_status_checks_per_second [10]:
(нажмите Enter, чтобы принять значение по умолчанию)
max_jobs_per_second [10]:
(нажмите Enter, чтобы принять значение по умолчанию)
latency_wait [5]:
30
Select print_shell_commands:
1 (ложь)
sbatch_defaults []:
qos=низкие узлы=1
Select cluster_sidecar:
2 (нет)
cluster_name []:
(нажмите Enter, чтобы оставить пустым)
cluster_jobname [%r_%w]:
(нажмите Enter, чтобы принять значение по умолчанию)
cluster_logpath [logs/slurm/%r/%j]:
(нажмите Enter, чтобы принять значение по умолчанию)
cluster_config []:
(нажмите Enter, чтобы оставить пустым)
После ответа на эти запросы ваш профиль Slurm с именем slurm_noSidecar для Snakemake будет настроен, как указано.
Сингулярность (вероятно, уже установлена) : в этом конвейере для воспроизводимости используются контейнеры. Если вы работаете над кластером EMBL, сингулярность уже установлена, и вы можете пропустить этот шаг. В противном случае установите Singularity, используя официальное руководство по Singularity.
Загрузите конвейер : будет загружена версия, указанная в параметре --tag конвейера Snakemake, и создан репозиторий AlphaPulldownSnakemake или любое другое имя по вашему выбору.
Snakedeploy – рабочий процесс развертывания https://github.com/KosinskiLab/AlphaPulldownSnakemake АльфаPulldownSnakemake --tag 1.4.0cd AlphaPulldownSnakemake
Примечание
Если вы хотите использовать последнюю версию с GitHub, замените --tag XXX
на --branch main
Установите пакет CCP4 . Чтобы установить программное обеспечение, необходимое для этапа анализа, следуйте этим инструкциям:
Загрузите так называемое изображение сингулярности с помощью нашего пакета программного обеспечения для анализа.
докер сингулярности: //kosinskilab/fold_anaлиз:latest сингулярность build --sandboxfold_anaанализ_latest.sif
Загрузите CCP4 с https://www.ccp4.ac.uk/download/#os=linux и скопируйте на свой сервер.
tar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc/software/ cp /lib/* <каталог_записываемого_образа>/software/lib64/
Создайте новую Singularity с включенным CCP4.
cd <каталог, в котором вы хотите хранить локальное программное обеспечение>singularity buildfold_anaанализ_latest_withCCP4.sif
Должен создать fold_analysis_latest_withCCP4.sif
.
Вы можете удалить
Настройте config/config.yaml
для вашего конкретного случая использования.
Если вы хотите использовать CCP4 для анализа, откройте config/config.yaml
в текстовом редакторе и измените путь к контейнеру анализа на:
Analysis_container: "/путь/к/fold_anaанализ_latest_withCCP4.sif"
input_files Эта переменная содержит путь к вашему образцу, где каждая строка соответствует заданию по фальцовке. Для этого конвейера мы используем следующую спецификацию формата:
protein:N:start-stop[_protein:N:start-stop]*
где белок — это путь к файлу с расширением «.fasta» или идентификатором uniprot, N — количество мономеров для этого конкретного белка, а начало и конец — это остатки, которые следует предсказать. Однако требуется только белок, N, start и stop можно опустить. Следовательно, следующие операции сворачивания для примера белка, содержащего остатки 1–50, эквивалентны:
example:2 example_example example:2:1-50 example:1-50_example:1-50 example:1:1-50_example:1:1-50
Этот формат аналогичным образом распространяется на сворачивание гетеромеров:
example1_example2
Предположим, у вас есть два образца листов config/sample_sheet1.csv и config/sample_sheet2.csv. Следующее будет эквивалентно вычислению всех против всех в файле sample_sheet1.csv:
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
в то время как приведенный ниже фрагмент будет эквивалентен вычислению раскрывающегося списка между sample_sheet1.csv и sample_sheet2.csv
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
Этот формат можно расширить на любое количество файлов, но имейте в виду, что количество складок резко увеличится.
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
Alphafold_data_directory Это путь к вашей базе данных Alphafold.
output_directory Snakemake будет записывать выходные данные конвейера в этот каталог. Если его не существует, он будет создан.
save_msa, use_precomputed_msa, предсказания_per_model, number_of_recycles, report_cutoff Аргументы командной строки, которые ранее были переданы в run_multimer_jobs.py и create_notebook.py (report_cutoff) AlphaPulldown.
Alphafold_inference_threads, Alphafold_inference Специальные параметры Slurm, которые не требуется изменять неопытным пользователям.
only_generate_features Если установлено значение True, останавливается после создания объектов и не выполняет прогнозирование структуры и составление отчетов.
После выполнения шагов по установке и настройке вы готовы запустить конвейер Snakemake. Для этого перейдите в каталог клонированного конвейера и запустите:
змеетворение --use-singularity --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv " --рабочих мест 200 --restart-times 5 --profile slurm_noSidecar --rerun-incomplete --rerun-триггеры mtime --latency-wait 30 -н
Вот разбивка того, что делает каждый аргумент:
--use-singularity
: разрешает использование контейнеров Singularity. Это обеспечивает воспроизводимость и изоляцию среды трубопровода.
--singularity-args
: указывает аргументы, передаваемые непосредственно в Singularity. В приведенном примере:
-B /scratch:/scratch
и -B /g/kosinski:/g/kosinski
: это точки монтирования привязки. Они делают каталоги вашей хост-системы доступными внутри контейнера Singularity. --nv
гарантирует, что контейнер сможет использовать графические процессоры хостов.
--profile name_of_your_profile
: указывает используемый профиль Snakemake (например, профиль SLURM, который вы настроили для выполнения кластера).
--rerun-triggers mtime
: повторно запускает задание, если определенный файл (триггер) был изменен позже, чем выходные данные задания. Здесь mtime
проверяет время изменения файла.
--jobs 500
: позволяет одновременно отправлять в кластер до 500 заданий.
--restart-times 10
: указывает, что задания могут быть автоматически перезапущены до 10 раз в случае сбоя.
--rerun-incomplete
: Принудительно перезапускает любые задания, которые остались незавершенными при предыдущих запусках Snakemake.
--latency-wait 30
: ждет 30 секунд после завершения шага, чтобы проверить наличие ожидаемых выходных файлов. Это может быть полезно в файловых системах с высокими задержками.
-n
: Флаг пробного запуска. Это заставляет Snakemake отображать команды, которые он будет выполнять, фактически не выполняя их. Это полезно для тестирования. Чтобы запустить конвейер по-настоящему, просто удалите этот флаг.
Выполнение приведенной выше команды выполнит отправку в кластер следующих заданий:
AlphaPulldown можно использовать как набор скриптов для каждого конкретного шага.
create_individual_features.py
: генерирует множественные выравнивания последовательностей (MSA), идентифицирует структурные шаблоны и сохраняет результаты в файлах .pkl
мономерных объектов.
run_multimer_jobs.py
: выполняет прогнозирование структур.
create_notebook.py
и alpha-analysis.sif
: подготавливает интерактивный блокнот Jupyter и таблицу результатов соответственно.
Сначала установите Anaconda и создайте среду AlphaPulldown, собрав необходимые зависимости. Мы рекомендуем использовать мамбу для ускорения решения зависимостей:
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
источник активации AlphaPulldown
Обычно это работает, но в некоторых вычислительных системах пользователи могут предпочесть использовать другие версии или оптимизированные сборки HMMER и HH-suite, которые уже установлены.
Активируйте среду AlphaPulldown и установите AlphaPulldown:
источник активации AlphaPulldown python3 -m pip установить альфапуллдаун
pip install -U "jax[cuda12]"
Примечание
Для более старых версий AlphaFold : Если вы не обновили свои базы данных в соответствии с требованиями AlphaFold 2.3.0, вы все равно можете использовать AlphaPulldown со своей старой версией базы данных AlphaFold. Пожалуйста, следуйте инструкциям по установке в специальной ветке.
Установите пакет CCP4 . Чтобы установить программное обеспечение, необходимое для этапа анализа, следуйте этим инструкциям:
докер сингулярности: //kosinskilab/fold_anaлиз:latest сингулярная сборка --sandboxfold_anaанализ_latest.sif# Загрузите верхнюю версию с https://www.ccp4.ac.uk/download/#os=linuxtar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc /software/ cp /lib/* <каталог_записываемого_образа>/software/lib64/ сборка сингулярности
Убедитесь, что вы установили PyTorch, соответствующий вашей версии CUDA. В качестве примера возьмем CUDA 11.7 и PyTorch 1.13.0:
pip install torch==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
Скомпилируйте UniCore.
источник активации AlphaPulldown git клон https://github.com/dptech-corp/Uni-Core.gitcd Uni-Core python setup.py install --disable-cuda-ext # проверить, успешно ли установлен unicore.python -c "import unicore"
Вы можете увидеть следующее предупреждение, но это нормально:
fused_multi_tensor is not installed corrected
fused_rounding is not installed corrected
fused_layer_norm is not installed corrected
fused_softmax is not installed corrected
Загрузите контрольные точки PyTorch из Zenodo, разархивируйте их, после чего вы должны получить файл с именем: AlphaLink-Multimer_SDA_v3.pt
Только для разработчиков, которые хотят модифицировать коды AlphaPulldown и тестировать их. Пожалуйста, добавьте свой SSH-ключ в свою учетную запись GitHub.
Клонировать репозиторий GitHub
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown инициализация подмодуля git обновление подмодуля git
Создайте среду Conda, как описано в разделе «Создание среды Anaconda».
Установите пакет AlphaPulldown и добавьте его подмодули в среду Conda (не работает, если вы хотите обновить зависимости)
источник активировать AlphaPulldowncd AlphaPulldown pip install .pip install -e . --no-deps pip install -e ColabFold --no-deps pip install -e Alphafold --no-deps
Вам нужно сделать это только один раз.
Если вы хотите разработать, активируйте среду, измените файлы, и изменения должны быть автоматически распознаны.
Протестируйте свой пакет во время разработки, используя тесты в test/
, например:
pip установить pytest pytest -s тест/ pytest -s test/test_predictions_slurm.py pytest -s test/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_generation
Перед отправкой на удаленный компьютер или отправкой запроса на включение:
pip install .pytest -s test/
чтобы установить пакет и протестировать. Pytest для прогнозов работает только в том случае, если доступен SLURM. Проверьте созданные файлы журналов в вашем текущем каталоге.
Примечание
Если вы работаете с белками модельных организмов, вы можете напрямую загрузить файлы функций из базы данных AlphaPulldown Features и пропустить этот шаг.
Это общий пример использования create_individual_features.py
. Информацию о запуске конкретных задач или параллельном выполнении в кластере см. в соответствующих разделах этой главы.
На этом этапе вам необходимо предоставить файл формата белка FASTA со всеми последовательностями белка, которые будут использоваться для комплексного прогнозирования.
Пример файла FASTA ( sequences.fasta
):
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
Активируйте среду AlphaPulldown и запустите скрипт create_individual_features.py
следующим образом:
источник активации AlphaPulldown create_individual_features.py --fasta_paths=--data_dir=<путь к базам данных в алфавитном порядке> --output_dir=<каталог для сохранения выходных объектов> --max_template_date=<любая дата по вашему желанию, формат: 2050-01-01>
Вместо
укажите путь к входному файлу FASTA. Вы также можете предоставить несколько файлов, разделенных запятыми.
Вместо
укажите путь к генетической базе данных (см. 0. Базы данных Alphafold установочной части).
Вместо
укажите путь к выходному каталогу, в котором будут сохранены ваши файлы функций.
Дата в флаге --max_template_date
нужна для ограничения поиска белковых структур, депонированных до указанной даты. Если эта дата не позднее даты последнего обновления вашей локальной геномной базы данных, сценарий будет искать шаблоны среди всех доступных структур.
Скрипт расчета функций create_individual_features.py
имеет несколько дополнительных ФЛАГОВ:
--[no]save_msa_files
: по умолчанию значение False для сохранения этапа хранения, но его можно изменить на True . Если установлено значение True
, программа создаст отдельную папку для каждого белка. Выходной каталог будет выглядеть так:
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
Если save_msa_files=False
, то output_dir
будет выглядеть так:
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
: значение по умолчанию — False
. Однако, если у вас уже есть файлы MSA для ваших белков, установите для параметра значение True и расположите файлы MSA в формате, как показано ниже:
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
Затем в командной строке установите output_dir=/path/to/example_directory
.
--[no]skip_existing
: по умолчанию установлено значение False
, но если вы уже выполнили первый шаг для некоторых белков и теперь добавляете в список новые белки, вы можете изменить skip_existing
на True
в командной строке, чтобы избежать повторного запуска той же процедуры для предыдущих расчетные белки.
--seq_index
: по умолчанию установлено значение None
, и программа будет выполнять прогнозы один за другим в заданных файлах. Однако вы можете установить для seq_index
другое число, если хотите параллельно запускать массив заданий, тогда программа будет запускать только соответствующее задание, указанное в seq_index
. например, программа вычисляет характеристики только для 1-го белка в вашем файле FASTA, если для seq_index
установлено значение 1. См. также сценарий пакетной обработки Slurm выше, где приведен пример его использования для параллельного выполнения. ❗ seq_index
начинается с 1.
--[no]use_mmseqs2
: использовать mmseqs2 удаленно или нет. По умолчанию — ложь.
ФЛАГИ, относящиеся к режиму TrueMultimer:
--path_to_mmt
: Путь к каталогу с файлами mmCIF многомерных шаблонов.
--description_file
: Путь к текстовому файлу с описаниями для создания объектов. Обратите внимание : первый столбец должен быть точной копией описания белка из ваших файлов FASTA. Для удобства рассмотрите возможность их сокращения в файлах FASTA с помощью вашего любимого текстового редактора. Эти имена будут использоваться для создания файлов Pickle с мономерными функциями! Описание.csv для комплекса НС1-П85Б должно иметь следующий вид:
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
В этом примере мы называем белок NS1 цепью A, а белок P85B — цепью C в мультимерной матрице 3L4Q.cif.
Обратите внимание , что ваш шаблон будет переименован в код PDB, взятый из _entry_id . Если вы используете файл *.pdb вместо *.cif, AlphaPulldown сначала попытается проанализировать код PDB из файла. Затем он проверит, состоит ли имя файла из 4 букв. Если это не так, он сгенерирует случайный 4-буквенный код и будет использовать его в качестве кода PDB.
--threshold_clashes
: Порог перекрытия VDW для выявления конфликтов. Перекрытие ВДВ между двумя атомами определяется как сумма их радиусов ВДВ минус расстояние между их центрами. Если перекрытие превышает этот порог, два атома считаются столкнувшимися. Положительный порог — это то, насколько далеко поверхностям VDW разрешено взаимопроникновение, прежде чем можно будет считать, что атомы сталкиваются. (по умолчанию: 1000, т.е. порог отсутствует, для определения порога используйте значения 0,6–0,9).
--hb_allowance
: Дополнительный допуск на водородные связи (по умолчанию: 0,4), используемый для идентификации конфликтующих остатков, которые необходимо удалить из мультимерного шаблона. Допуск > 0 отражает наблюдение, что атомы, имеющие водородную связь, могут приближаться друг к другу ближе, чем можно было бы ожидать, исходя из их радиусов ВДВ. Допуск вычитается только для пар, состоящих из донора (или донорного водорода) и акцептора. Это эквивалентно использованию меньших радиусов для характеристики взаимодействий водородных связей.
--plddt_threshold
: Пороговое значение показателя pLDDT (по умолчанию: 0), которое необходимо удалить из мультимерного шаблона (все остатки с pLDDT>plddt_threshold удаляются и моделируются с нуля). Можно использовать только в том случае, если многомерные шаблоны представляют собой модели, созданные AlphaFold.
--new_uniclust_dir
: используйте это, если вы хотите перезаписать путь по умолчанию к базе данных uniclust.
--[no]use_hhsearch
: используйте hhsearch вместо hmmsearch при поиске шаблона структуры. По умолчанию — ложь.
--[no]multiple_mmts
: использовать несколько мультимерных шаблонов для каждой цепочки. По умолчанию — ложь.
Результатом запуска create_individual_features.py
являются характеристики формата Pickle для каждого белка из входного файла FASTA (например, sequence_name_A.pkl
и sequence_name_B.pkl
), хранящиеся в output_dir
.
Примечание
Название маринадов будет таким же, как описания последовательностей в файлах FASTA (например, >protein_A
в файле FASTA даст proteinA.pkl
). Обратите внимание, что специальные символы, такие как | : ; #
, после >
будет заменено на _
.
Перейдите к следующему шагу 2.1 Базовый прогон.
Если вы запускаете AlphaPulldown в кластере компьютеров, вы можете захотеть выполнить создание объектов параллельно. Здесь мы приводим пример кода, подходящего для кластера, использующего диспетчер рабочей нагрузки SLURM.
В следующем примере мы будем использовать example_2_sequences.fasta
в качестве входных данных.
Создайте сценарий create_individual_features_SLURM.sh
и поместите в него следующий код с помощью vi, nano или любого другого текстового редактора. Замените входные параметры соответствующими аргументами для сценария create_individual_features.py
, как описано в разделе «Базовый запуск», или любого другого типа запуска, который вы собираетесь выполнить:
#!/bin/bash#Обычный запуск занимает пару часов, но может занять намного больше времени#SBATCH --job-name=array#SBATCH --time=10:00:00#log files:#SBATCH -e logs/ create_individual_features_%A_%a_err.txt#SBATCH -o logs/create_individual_features_%A_%a_out.txt#qos устанавливает приоритет#SBATCH --qos=low#Ограничить запуск одним узлом#SBATCH -N 1#Настройте это в зависимости от node#SBATCH --ntasks=8#SBATCH --mem=64000загрузка модуля HMMER/3.4-gompi-2023a загрузка модуля HH-suite/3.3.0-gompi-2023aeval "$(condashell.bashook)" загрузка модуля CUDA/11.8.0 загрузка модуля cuDNN/8.7.0.84-CUDA-11.8.0 conda active AlphaPulldown# НАСТРОЙИТЕ СЛЕДУЮЩИЕ ПАРАМЕТРЫ СКРИПТА ДЛЯ ВАШЕЙ КОНКРЕТНОЙ ЗАДАЧИ:####create_individual_features.py --fasta_paths=example_1_sequences.fasta --data_dir=/scratch/AlphaFold_DBs/2.3.2 / --output_dir=/scratch/mydir/test_AlphaPulldown/ --max_template_date=2050-01-01 --skip_existing=Истина --seq_index=$SLURM_ARRAY_TASK_ID#####
Сделайте скрипт исполняемым, выполнив:
chmod +x create_individual_features_SLURM.sh
Затем выполните следующие команды, заменив
путем к входному файлу FASTA:
mkdir logs#Подсчитайте количество заданий, соответствующее количеству последовательностей:count=`grep ">"| wc -l`#Запуск массива заданий, 100 заданий за раз:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Пример для двух файлов (для большего количества файлов создайте переменные count3
, count4
и т. д. и добавьте их к сумме счетчиков):
mkdir logs#Подсчитайте количество заданий, соответствующее количеству последовательностей:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) #Запуск массива заданий, 100 заданий одновременно:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Перейдите к следующему шагу 2.2. Пример запуска с SLURM (кластер EMBL).
MMseqs2 — еще один метод поиска гомологов и генерации MSA. Он предлагает альтернативу стандартным HMMER и HHblits, используемым AlphaFold. Результаты этих разных подходов могут привести к несколько разным предсказаниям структуры белка из-за различий в полученной эволюционной информации в рамках MSA. AlphaPulldown поддерживает реализацию поиска MMseqs2, созданную ColabFold, которая также предоставляет веб-сервер для создания MSA, поэтому локальная установка баз данных не требуется.
Цитирование: Если вы используете MMseqs2, не забудьте цитировать: Мирдита М., Шютце К., Мориваки Й., Хео Л., Овчинников С., Штайнеггер М. ColabFold: Создание сворачивания белка, доступного для всех. Nature Methods (2022) doi: 10.1038/s41592-022-01488-1
ВНИМАНИЕ. Во избежание перегрузки удаленного сервера не отправляйте большое количество заданий одновременно. Если вы хотите рассчитать MSA для многих последовательностей, используйте MMseqs2 локально.
Чтобы запустить create_individual_features.py
с помощью MMseqs2 удаленно, добавьте флаг --use_mmseqs2=True
:
источник активации AlphaPulldown create_individual_features.py --fasta_paths=--data_dir=<путь к базам данных в алфавитном порядке> --output_dir=<каталог для сохранения выходных объектов> --use_mmseqs2=Истина --max_template_date=<любая дата по вашему желанию, формат: 2050-01-01>
После завершения выполнения скрипта ваш output_dir
будет выглядеть следующим образом:
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
Перейдите к следующему шагу 2.1 Базовый прогон.
AlphaPulldown НЕ предоставляет интерфейс или код для локального запуска MMseqs2, а также не устанавливает MMseqs2 или любые другие необходимые программы. Пользователь должен установить MMseqs2, базы данных ColabFold, поиск ColabFold и другие необходимые зависимости и сначала выполнить выравнивание MSA. Пример руководства можно найти на ColabFold GitHub.
Предположим, вы успешно запустили MMseqs2 локально с помощью программы colab_search
; он создаст файл A3M для каждого интересующего вас белка. Таким образом, ваш output_dir
должен выглядеть так:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
Эти файлы a3m из colabfold_search
имеют неудобное название. Таким образом, мы предоставили скрипт rename_colab_search_a3m.py
который поможет вам переименовать все эти файлы. Загрузите скрипт с https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py и запустите:
cd выходной_каталог python rename_colab_search_a3m.py path_to_fasta_file_you_used_as_input_for_colabfold_search
Тогда ваш output_dir
станет:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
Здесь proteinA
, proteinB
и т. д. соответствуют именам во входном файле FASTA (например, >proteinA
даст вам proteinA.a3m
, >proteinB
даст вам proteinB.a3m
и т. д.).
ПРИМЕЧАНИЕ. Вы также можете предоставить свой собственный файл MSA в формате
.a3m
вместо использования файлов, созданных MMSeq2 или стандартным HHMER. Поместите файлы с соответствующими именами в выходной каталог и используйте код следующим образом.
После этого вернитесь в каталог вашего проекта с исходным файлом FASTA и укажите этот каталог в команде:
источник активации AlphaPulldown create_individual_features.py --fasta_paths=--data_dir=<путь к базам данных в алфавитном порядке> --output_dir=<выходной_каталог> --skip_existing=Ложь --use_mmseqs2=Истина --seq_index=<любое число по вашему желанию или пропустите флаг, чтобы запускать все одно за другим>
AlphaPulldown автоматически выполнит поиск в файлах a3m, соответствующих каждому белку. В конце концов ваш output_dir
будет выглядеть так:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<