AlphaPulldown mantém totalmente a compatibilidade retroativa com arquivos de entrada e scripts das versões 1.x.
AlphaPulldown: Versão 2.0.0 (Beta)
Índice
Sobre AlphaPulldown
Visão geral
Bancos de dados alfabéticos
Snakemake AlphaPulldown
1. Instalação
2. Configuração
3. Execução
Execute a interface de linha de comando AlphaPulldown Python
Criar caderno Jupyter
Criar tabela de resultados
Próxima etapa
Próxima etapa
2.1. Corrida básica
2.2. Exemplo executado com SLURM (cluster EMBL)
2.3. Modo suspenso
2.4. Modo Todos versus Todos
2.5. Execute com modelos personalizados (TrueMultimer)
2.6. Execute com dados de reticulação (AlphaLink2)
Entrada
Execução de script: previsão de estrutura
Saída
Próxima etapa
Entrada
Execução de script
Saída e a próxima etapa
Modo "pulldown" de múltiplas entradas
Saída e a próxima etapa
Entrada
Execução de script para previsão de estrutura TrueMultimer
Saída e a próxima etapa
Entrada
Execute com previsão AlphaLink2 via AlphaPulldown
Saída e a próxima etapa
1.1. Corrida básica
1.2. Exemplo de scripts bash para SLURM (cluster EMBL)
1.3. Execute usando bancos de dados MMseqs2 e ColabFold (mais rápido)
1.4. Execute com modelos personalizados (TrueMultimer)
Entrada
Execução de script
Saída
Próxima etapa
Entrada
Execução de script
Próxima etapa
Execute MMseqs2 remotamente
Saída
Execute MMseqs2 localmente
Próxima etapa
Entrada
Execução de script
Saída
Próxima etapa
0,1. Criar ambiente Anaconda
0,2. Instalação usando pip
0,3. Instalação das ferramentas de análise Downstream
0,4. Instalação para dados de entrada de cross-link pelo AlphaLink2 (opcional!)
0,5. Instalação para desenvolvedores
0. Instalação
1. Calcular alinhamento de sequência múltipla (MSA) e recursos de modelo (estágio de CPU)
2. Prever estruturas (estágio GPU)
3. Análise e Visualização
Análise a jusante
Diminuir o tamanho da saída AlphaPulldown
Converter modelos do formato PDB para o formato ModelCIF
1. Converta todos os modelos em arquivos ModelCIF separados
2. Converta apenas um modelo único específico para cada complexo
3. Tenha um modelo representativo e mantenha modelos associados
Arquivos Zip associados
Opções diversas
Caderno Jupyter
Tabela de resultados
Scripts de gerenciamento de resultados
Banco de dados de recursos
Liste os organismos disponíveis:
Baixe recursos específicos de proteínas:
Baixe todos os recursos para um organismo:
Passos:
Verifique a instalação:
Instalação
Configuração
Baixando recursos
AlphaPulldown é uma implementação personalizada do AlphaFold-Multimer projetada para triagem personalizável de alto rendimento de interações proteína-proteína. Ele amplia os recursos do AlphaFold incorporando opções de execução adicionais, como modelos estruturais multiméricos personalizáveis (TrueMultimer), alinhamento de sequências múltiplas (MSA) MMseqs2 por meio de bancos de dados ColabFold, previsões de fragmentos de proteínas e a capacidade de incorporar dados de especificação de massa como entrada usando AlphaLink2.
AlphaPulldown pode ser usado de duas maneiras: ou por um pipeline de duas etapas feito de scripts python , ou por um pipeline Snakemake como um todo. Para obter detalhes sobre como usar o pipeline Snakemake, consulte o repositório GitHub separado.
Figura 1 Visão geral do fluxo de trabalho AlphaPulldown
O fluxo de trabalho AlphaPulldown envolve as três etapas a seguir:
Crie e armazene recursos de MSA e de modelo :
Nesta etapa, o AlphaFold pesquisa bancos de dados pré-instalados usando HMMER para cada sequência de proteína consultada e calcula alinhamentos de múltiplas sequências (MSAs) para todos os homólogos encontrados. Ele também procura estruturas homólogas para usar como modelos para geração de recursos. Esta etapa requer apenas CPU.
As opções personalizáveis incluem:
Para acelerar o processo de pesquisa, o MMSeq2 pode ser usado em vez do HHMER padrão.
Use MSA personalizado.
Use um modelo estrutural personalizado, incluindo um multimérico (modo TrueMultimer).
Previsão de estrutura :
Nesta etapa, a rede neural AlphaFold é executada e produz a estrutura final da proteína, necessitando de GPU. Um ponto forte do AlphaPulldown é sua capacidade de definir com flexibilidade como as proteínas são combinadas para a previsão da estrutura de complexos proteicos. Aqui estão as três abordagens principais que você pode usar:
Figura 2 Três cenários típicos cobertos pelo AlphaPulldown
Além disso, AlphaPulldown também permite:
Selecione apenas regiões de proteínas que você deseja prever em vez das sequências completas.
Ajuste a profundidade do MSA para controlar a influência do MSA inicial no modelo final.
Integre dados de crosslinking de alto rendimento com modelagem AlphaFold via AlphaLink2.
Arquivo único (modo personalizado ou modo homo-oligômero): Crie um arquivo onde cada linha liste as sequências de proteínas que você deseja prever juntas ou cada linha diga ao programa para modelar homo-oligômeros com o número especificado de cópias.
Vários arquivos (modo suspenso): Fornece vários arquivos, cada um contendo sequências de proteínas. AlphaPulldown irá gerar automaticamente todas as combinações possíveis emparelhando linhas de nomes de proteínas de cada arquivo.
Todos contra todos : AlphaPulldown irá gerar todas as combinações não redundantes possíveis de proteínas na lista.
Análise a jusante dos resultados :
Os resultados para todos os modelos previstos podem ser sistematizados usando uma das seguintes opções:
Uma tabela contendo várias pontuações e parâmetros físicos de interações de complexos proteicos.
Um notebook Jupyter com modelos interativos de proteínas 3D e gráficos PAE.
Para o MSA padrão e cálculo de recursos, AlphaPulldown requer bancos de dados genéticos. Verifique se você baixou os parâmetros e bancos de dados necessários (por exemplo, BFD, MGnify, etc.) conforme instruído na documentação do AlphaFold. Você deve ter um diretório estruturado da seguinte forma:
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
Observação
Uniclust30 é a versão do banco de dados gerada antes de 2019, UniRef30 é aquela gerada após 2019. Observe que AlphaPulldown está usando UniRef30_2023_02 por padrão. Esta versão pode ser baixada por este script. Como alternativa, substitua o caminho padrão para o banco de dados uniref30 usando o sinalizador --uniref30_database_path de create_individual_features.py.
Observação
Como a instalação local de todos os bancos de dados genéticos consome espaço, você pode usar alternativamente os bancos de dados MMseqs2 e ColabFold executados remotamente. Siga as instruções correspondentes. Porém, para que o AlphaPulldown funcione, você deve baixar os parâmetros armazenados no diretório params/
do banco de dados AlphaFold.
AlphaPulldown está disponível como um pipeline Snakemake, permitindo executar sequencialmente (1) geração de MSAs e recursos de modelo, (2) previsão de estrutura e (3) análise de resultados sem intervenção manual entre as etapas. Para mais detalhes, consulte o repositório AlphaPulldownSnakemake .
Aviso
A versão Snakemake do AlphaPulldown difere ligeiramente do AlphaPulldown convencional baseado em scripts em termos de especificações do arquivo de entrada.
Antes da instalação, certifique-se de que sua versão do python seja pelo menos 3.10.
python3 --versão
Instalar dependências
pip instalar Snakemake==7.32.4 SnakeDeploy==0.10.0 Pulp==2.7 Click==8.1 Cookiecutter==2.6
Configuração do cluster Snakemake
Para permitir que o Snakemake faça interface com um cluster de computação, usaremos o Snakemake-Profile para SLURM. Se você não estiver trabalhando em um cluster SLURM, poderá encontrar perfis para diferentes arquiteturas aqui. A seguir, você criará um perfil que pode ser usado com o Snakemake e solicitará algumas informações adicionais.
clone do 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"
Durante o processo de configuração, você será solicitado a responder diversas perguntas de configuração. Abaixo estão as perguntas e as respostas recomendadas:
profile_name [slurm]:
slurm_noSidecar
Select use_singularity:
1 (Falso)
Select use_conda:
1 (Falso)
jobs [500]:
(pressione Enter para aceitar o padrão)
restart_times [0]:
(pressione Enter para aceitar o padrão)
max_status_checks_per_second [10]:
(pressione Enter para aceitar o padrão)
max_jobs_per_second [10]:
(pressione Enter para aceitar o padrão)
latency_wait [5]:
30
Select print_shell_commands:
1 (Falso)
sbatch_defaults []:
qos = nós baixos = 1
Select cluster_sidecar:
2 (não)
cluster_name []:
(pressione Enter para deixar em branco)
cluster_jobname [%r_%w]:
(pressione Enter para aceitar o padrão)
cluster_logpath [logs/slurm/%r/%j]:
(pressione Enter para aceitar o padrão)
cluster_config []:
(pressione Enter para deixar em branco)
Depois de responder a essas solicitações, seu perfil Slurm denominado slurm_noSidecar para Snakemake será configurado conforme especificado.
Singularidade (provavelmente já instalada) : Este pipeline utiliza contêineres para reprodutibilidade. Se você estiver trabalhando no cluster EMBL, a singularidade já está instalada e você pode pular esta etapa. Caso contrário, instale o Singularity usando o guia oficial do Singularity.
Baixar The Pipeline : Isso fará o download da versão especificada por '--tag' do pipeline do snakemake e criará o repositório AlphaPulldownSnakemake ou qualquer outro nome que você escolher.
fluxo de trabalho de implantação do SnakeDeploy https://github.com/KosinskiLab/AlphaPulldownSnakemake AlfaPulldownSnakemake --tag 1.4.0cd AlphaPulldownSnakemake
Observação
Se você quiser usar a versão mais recente do GitHub, substitua --tag XXX
por --branch main
Instale o pacote CCP4 : Para instalar o software necessário para a etapa de análise, siga estas instruções:
Baixe a chamada imagem Singularity com nosso pacote de software de análise
docker pull de singularidade: //kosinskilab/fold_análise:mais recente construção de singularidade --sandboxfold_análise_latest.sif
Baixe o CCP4 em https://www.ccp4.ac.uk/download/#os=linux e copie para o seu servidor
tar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc/software/ cp /lib/* /software/lib64/
Crie uma nova Singularidade com CCP4 incluído
cdsingularity build fold_análise_latest_withCCP4.sif
Deve criar o arquivo fold_analysis_latest_withCCP4.sif
.
Você pode excluir o
Ajuste config/config.yaml
para seu caso de uso específico.
Se você quiser usar o CCP4 para análise, abra config/config.yaml
em um editor de texto e altere o caminho para o contêiner de análise para:
análise_container: "/caminho/para/fold_análise_latest_withCCP4.sif"
input_files Esta variável contém o caminho para sua planilha de amostra, onde cada linha corresponde a um trabalho dobrado. Para este pipeline, usamos a seguinte especificação de formato:
protein:N:start-stop[_protein:N:start-stop]*
onde proteína é um caminho para um arquivo com extensão '.fasta' ou ID uniprot, N é o número de monômeros para esta proteína específica e início e parada são os resíduos que devem ser previstos. No entanto, apenas a proteína é necessária, N, início e parada podem ser omitidos. Portanto, as seguintes tarefas de dobramento para o exemplo da proteína contendo os resíduos 1-50 são equivalentes:
example:2 example_example example:2:1-50 example:1-50_example:1-50 example:1:1-50_example:1:1-50
Este formato se estende de forma semelhante ao dobramento de heterômeros:
example1_example2
Supondo que você tenha duas planilhas de amostra config/sample_sheet1.csv e config/sample_sheet2.csv. O seguinte seria equivalente a calcular tudo versus tudo em sample_sheet1.csv:
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
enquanto o snippet abaixo seria equivalente a calcular o menu suspenso entre sample_sheet1.csv e sample_sheet2.csv
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
Este formato pode ser estendido para quantos arquivos você desejar, mas lembre-se de que o número de dobras aumentará drasticamente.
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
alphafold_data_directory Este é o caminho para seu banco de dados alphafold.
output_directory O Snakemake gravará a saída do pipeline neste diretório. Se não existir, será criado.
save_msa, use_precomputed_msa, Predictions_per_model, number_of_recycles, report_cutoff Argumentos de linha de comando que foram previamente passados para run_multimer_jobs.py e create_notebook.py (report_cutoff) do AlphaPulldown.
alphafold_inference_threads, alphafold_inference Parâmetros específicos do Slurm que não precisam ser modificados por usuários não especialistas.
only_generate_features Se definido como True, para após gerar recursos e não executa previsão e relatório de estrutura.
Depois de seguir as etapas de instalação e configuração, você está pronto para executar o pipeline do Snakemake. Para fazer isso, navegue até o diretório do pipeline clonado e execute:
cobra --use-singularidade --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv " --empregos 200 --restart-times 5 --profile slurm_noSidecar --rerun-incompleto --rerun-triggersmtime --latency-espera 30 -n
Aqui está uma análise do que cada argumento faz:
--use-singularity
: permite o uso de contêineres Singularity. Isso permite a reprodutibilidade e o isolamento do ambiente do pipeline.
--singularity-args
: Especifica argumentos passados diretamente para Singularity. No exemplo fornecido:
-B /scratch:/scratch
e -B /g/kosinski:/g/kosinski
: Esses são pontos de montagem vinculados. Eles tornam os diretórios do seu sistema host acessíveis dentro do contêiner Singularity. --nv
garante que o contêiner possa usar as GPUs dos hosts.
--profile name_of_your_profile
: Especifica o perfil do Snakemake a ser usado (por exemplo, o perfil SLURM que você configurou para execução do cluster).
--rerun-triggers mtime
: Executa novamente um trabalho se um arquivo específico (trigger) tiver sido modificado mais recentemente do que a saída do trabalho. Aqui, mtime
verifica a hora de modificação do arquivo.
--jobs 500
: permite que até 500 jobs sejam enviados ao cluster simultaneamente.
--restart-times 10
: especifica que os trabalhos podem ser reiniciados automaticamente até 10 vezes se falharem.
--rerun-incomplete
: Força a reexecução de quaisquer trabalhos que tenham sido deixados incompletos nas execuções anteriores do Snakemake.
--latency-wait 30
: aguarda 30 segundos após o término de uma etapa para verificar a existência dos arquivos de saída esperados. Isto pode ser útil em sistemas de arquivos com altas latências.
-n
: Sinalizador de simulação. Isso faz com que o Snakemake exiba os comandos que executaria sem realmente executá-los. É útil para testes. Para executar o pipeline de verdade, basta remover este sinalizador.
A execução do comando acima realizará o envio dos seguintes trabalhos ao cluster:
AlphaPulldown pode ser usado como um conjunto de scripts para cada etapa específica.
create_individual_features.py
: gera vários alinhamentos de sequência (MSA), identifica modelos estruturais e armazena os resultados em arquivos .pkl
de recursos monoméricos.
run_multimer_jobs.py
: Executa a previsão de estruturas.
create_notebook.py
e alpha-analysis.sif
: prepara um Jupyter Notebook interativo e uma tabela de resultados, respectivamente.
Primeiramente , instale o Anaconda e crie um ambiente AlphaPulldown, reunindo as dependências necessárias. Recomendamos usar o mamba para acelerar a resolução de dependências:
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
fonte ativar AlphaPulldown
Isso geralmente funciona, mas em alguns sistemas de computação, os usuários podem preferir usar outras versões ou compilações otimizadas de HMMER e HH-suite que já estão instaladas.
Ative o ambiente AlphaPulldown e instale o AlphaPulldown:
fonte ativar AlphaPulldown python3 -m pip instalar alfapulldown
pip instalar -U "jax[cuda12]"
Observação
Para versões mais antigas do AlphaFold : Se você não atualizou seus bancos de dados de acordo com os requisitos do AlphaFold 2.3.0, ainda poderá usar o AlphaPulldown com sua versão mais antiga do banco de dados AlphaFold. Siga as instruções de instalação na filial dedicada.
Instale o pacote CCP4 : Para instalar o software necessário para a etapa de análise, siga estas instruções:
singularidade pull docker://kosinskilab/fold_análise:mais recente singularity build --sandboxfold_análise_latest.sif# Baixe o primeiro em 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/ construção de singularidade
Certifique-se de ter instalado o PyTorch correspondente à versão CUDA que você possui. Aqui tomaremos CUDA 11.7 e PyTorch 1.13.0 como exemplo:
tocha de instalação pip==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
Compilar UniCore.
fonte ativar AlphaPulldown clone git https://github.com/dptech-corp/Uni-Core.gitcd Uni-Core python setup.py instalar --disable-cuda-ext # testa se o unicore foi instalado com sucessopython -c "import unicore"
Você pode ver o seguinte aviso, mas está tudo bem:
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
Baixe os checkpoints PyTorch do Zenodo, descompacte-os, então você deverá obter um arquivo chamado: AlphaLink-Multimer_SDA_v3.pt
Somente para desenvolvedores que desejam modificar os códigos do AlphaPulldown e testar suas modificações. Adicione sua chave SSH à sua conta GitHub
Clone o repositório GitHub
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown git submódulo init atualização do submódulo git
Crie o ambiente Conda conforme descrito em Criar ambiente Anaconda
Instale o pacote AlphaPulldown e adicione seus submódulos ao ambiente Conda (não funciona se você deseja atualizar as dependências)
fonte ativar AlphaPulldowncd AlphaPulldown pip instalar .pip instalar -e . --no-deps pip install -e ColabFold --no-deps pip install -e alphafold --no-deps
Você precisa fazer isso apenas uma vez.
Quando quiser desenvolver, ative o ambiente, modifique arquivos e as alterações deverão ser reconhecidas automaticamente.
Teste seu pacote durante o desenvolvimento usando testes em test/
, por exemplo:
pip instalar pytest pytest -s teste/ pytest -s teste/test_predictions_slurm.py pytest -s test/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_generation
Antes de enviar para o controle remoto ou enviar uma solicitação pull:
pip instalar .pytest -s teste/
para instalar o pacote e testar. Pytest para previsões só funciona se SLURM estiver disponível. Verifique os arquivos de log criados em seu diretório atual.
Observação
Se você trabalha com proteínas de organismos modelo, você pode baixar diretamente os arquivos de recursos do banco de dados AlphaPulldown Features e pular esta etapa.
Este é um exemplo geral de uso de create_individual_features.py
. Para obter informações sobre a execução de tarefas específicas ou execução paralela em um cluster, consulte as seções correspondentes deste capítulo.
Nesta etapa, você precisa fornecer um arquivo de proteína no formato FASTA com todas as sequências de proteínas que serão usadas para predição complexa.
Exemplo de arquivo FASTA ( sequences.fasta
):
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
Ative o ambiente AlphaPulldown e execute o script create_individual_features.py
da seguinte forma:
fonte ativar AlphaPulldown create_individual_features.py --fasta_paths=--data_dir= --output_dir= --max_template_date=
Em vez de
forneça um caminho para seu arquivo FASTA de entrada. Você também pode fornecer vários arquivos separados por vírgula.
Em vez de
forneça um caminho para o banco de dados genético (consulte 0. Bancos de dados alfabéticos da parte de instalação).
Em vez de
forneça um caminho para o diretório de saída, onde seus arquivos de recursos serão salvos.
Uma data no sinalizador --max_template_date
é necessária para restringir a busca de estruturas proteicas que são depositadas antes da data indicada. A menos que a data seja posterior à data da última atualização do seu banco de dados genômico local, o script procurará modelos entre todas as estruturas disponíveis.
O script de cálculo de recursos create_individual_features.py
possui vários FLAGS opcionais:
--[no]save_msa_files
: Por padrão é False para salvar o estágio de armazenamento, mas pode ser alterado para True . Se estiver definido como True
, o programa criará uma pasta individual para cada proteína. O diretório de saída será semelhante a:
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
Se save_msa_files=False
então o output_dir
será parecido com:
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
: O valor padrão é False
. No entanto, se você já possui arquivos MSA para suas proteínas, defina o parâmetro como True e organize seus arquivos MSA no formato abaixo:
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
Em seguida, na linha de comando, defina output_dir=/path/to/example_directory
.
--[no]skip_existing
: O padrão é False
, mas se você já executou a primeira etapa para algumas proteínas e agora adicionou novas proteínas à lista, você pode alterar skip_existing
para True
na linha de comando para evitar executar novamente o mesmo procedimento para o anterior proteínas calculadas.
--seq_index
: O padrão é None
e o programa executará as previsões uma por uma nos arquivos fornecidos. No entanto, você pode definir seq_index
para um número diferente se desejar executar uma matriz de trabalhos em paralelo, então o programa executará apenas o trabalho correspondente especificado pelo seq_index
. por exemplo, o programa só calcula recursos para a primeira proteína em seu arquivo FASTA se seq_index
estiver definido como 1. Veja também o script Slurm sbatch acima para obter um exemplo de como usá-lo para execução paralela. ❗ seq_index
começa em 1.
--[no]use_mmseqs2
: Use mmseqs2 remotamente ou não. O padrão é falso.
BANDEIRAS relacionadas ao modo TrueMultimer:
--path_to_mmt
: Caminho para o diretório com arquivos mmCIF de modelo multimérico.
--description_file
: Caminho para o arquivo de texto com descrições para geração de recursos. Observe que a primeira coluna deve ser uma cópia exata da descrição da proteína dos seus arquivos FASTA. Por favor, considere encurtá-los em arquivos FASTA usando seu editor de texto favorito por conveniência. Esses nomes serão usados para gerar arquivos pickle com características monoméricas! O description.csv para o complexo NS1-P85B deve ser semelhante a:
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
Neste exemplo, referimo-nos à proteína NS1 como cadeia A e à proteína P85B como cadeia C no modelo multimérico 3L4Q.cif.
Observe que seu modelo será renomeado para um código PDB retirado de _entry_id . Se você usar um arquivo *.pdb em vez de *.cif, o AlphaPulldown tentará primeiro analisar o código PDB do arquivo. Em seguida, ele verificará se o nome do arquivo tem 4 letras. Caso contrário, ele gerará um código aleatório de 4 letras e o usará como código PDB.
--threshold_clashes
: Limite para sobreposição de VDW para identificar conflitos. A sobreposição VDW entre dois átomos é definida como a soma de seus raios VDW menos a distância entre seus centros. Se a sobreposição exceder esse limite, os dois átomos serão considerados em conflito. Um limite positivo é o quão longe as superfícies VDW podem se interpenetrar antes de considerar os átomos em conflito. (padrão: 1000, ou seja, sem limite, para limite, use 0,6-0,9).
--hb_allowance
: tolerância adicional para ligações de hidrogênio (padrão: 0,4) usada para identificar resíduos conflitantes a serem removidos de um modelo multimérico. Uma margem > 0 reflete a observação de que os átomos que partilham uma ligação de hidrogénio podem aproximar-se uns dos outros do que seria esperado a partir dos seus raios VDW. A margem só é subtraída para pares compostos por um doador (ou hidrogênio transmitido pelo doador) e um aceitador. Isto é equivalente a usar raios menores para caracterizar interações de ligações de hidrogênio.
--plddt_threshold
: Limite para pontuação pLDDT (padrão: 0) a ser removido de um modelo multimérico (todos os resíduos com pLDDT>plddt_threshold são removidos e modelados do zero). Pode ser usado somente quando modelos multiméricos são modelos gerados pelo AlphaFold.
--new_uniclust_dir
: use isto se desejar substituir o caminho padrão para o banco de dados uniclust.
--[no]use_hhsearch
: Use hhsearch em vez de hmmsearch ao procurar um modelo de estrutura. O padrão é falso.
--[no]multiple_mmts
: Use vários modelos multiméricos por cadeia. O padrão é falso.
O resultado da execução de create_individual_features.py
são recursos de formato pickle para cada proteína do arquivo FASTA de entrada (por exemplo, sequence_name_A.pkl
e sequence_name_B.pkl
) armazenados no output_dir
.
Observação
O nome dos picles será o mesmo que as descrições das sequências nos arquivos FASTA (por exemplo, >protein_A
no arquivo FASTA produzirá proteinA.pkl
). Observe que símbolos especiais como | : ; #
, depois >
será substituído por _
.
Prossiga para a próxima etapa 2.1 Execução Básica.
Se você executar o AlphaPulldown em um cluster de computadores, talvez queira executar a criação de recursos em paralelo. Aqui, fornecemos um exemplo de código adequado para um cluster que utiliza o SLURM Workload Manager.
Para o exemplo a seguir, usaremos example_2_sequences.fasta
como entrada.
Crie o script create_individual_features_SLURM.sh
e coloque o código a seguir nele usando vi, nano ou qualquer outro editor de texto. Substitua os parâmetros de entrada pelos argumentos apropriados para o script create_individual_features.py
conforme descrito em Execução básica ou qualquer outro tipo de execução que você pretenda executar:
#!/bin/bash#Uma execução típica leva algumas horas, mas pode demorar muito mais#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 define prioridade#SBATCH --qos=low#Limite a execução a um único nó#SBATCH -N 1#Ajuste dependendo do nó#SBATCH --ntasks=8#SBATCH --mem=64000module load HMMER/3.4-gompi-2023a carregamento do módulo HH-suite/3.3.0-gompi-2023aeval "$(conda shell.bash hook)"carregamento do módulo CUDA/11.8.0 carga do módulo cuDNN/8.7.0.84-CUDA-11.8.0 conda activate AlphaPulldown# PERSONALIZE OS SEGUINTES PARÂMETROS DE SCRIPT PARA SUA TAREFA ESPECÍFICA:####create_individual_features.py --fasta_paths=exemplo_1_sequences.fasta --data_dir=/scratch/AlphaFold_DBs/2.3.2 / --output_dir=/scratch/meudir/test_AlphaPulldown/ --max_template_date=2050-01-01 --skip_existente=Verdadeiro --seq_index=$SLURM_ARRAY_TASK_ID#####
Torne o script executável executando:
chmod +x create_individual_features_SLURM.sh
Em seguida, execute os seguintes comandos, substituindo
pelo caminho para o arquivo FASTA de entrada:
mkdir logs#Conta o número de jobs correspondentes ao número de sequências:count=`grep ">"| wc -l`#Execute a matriz de tarefas, 100 tarefas por vez:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Exemplo para dois arquivos (para mais arquivos, crie variáveis count3
, count4
, etc. e adicione-as à soma das contagens):
mkdir logs#Conta o número de jobs correspondentes ao número de sequências:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) #Execute a matriz de tarefas, 100 tarefas por vez:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Prossiga para a próxima etapa 2.2 Exemplo de execução com SLURM (cluster EMBL).
MMseqs2 é outro método para busca de homólogos e geração de MSA. Ele oferece uma alternativa aos HMMER e HHblits padrão usados pelo AlphaFold. Os resultados destas diferentes abordagens podem levar a previsões de estruturas proteicas ligeiramente diferentes devido a variações nas informações evolutivas capturadas dentro dos MSAs. AlphaPulldown suporta a implementação da pesquisa MMseqs2 feita pelo ColabFold, que também fornece um servidor web para geração de MSA, portanto, nenhuma instalação local de bancos de dados é necessária.
Citar: Se você usa MMseqs2, lembre-se de citar: Mirdita M, Schütze K, Moriwaki Y, Heo L, Ovchinnikov S, Steinegger M. ColabFold: Tornando o dobramento de proteínas acessível a todos. Métodos da Natureza (2022) doi: 10.1038/s41592-022-01488-1
CUIDADO: Para evitar sobrecarregar o servidor remoto, não envie um grande número de trabalhos simultaneamente. Se você deseja calcular MSAs para muitas sequências, use MMseqs2 localmente.
Para executar create_individual_features.py
usando MMseqs2 remotamente, adicione o sinalizador --use_mmseqs2=True
:
fonte ativar AlphaPulldown create_individual_features.py --fasta_paths=--data_dir= --output_dir= --use_mmseqs2=Verdadeiro --max_template_date=
Após a conclusão da execução do script, seu output_dir
ficará assim:
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
Prossiga para a próxima etapa 2.1 Execução Básica.
AlphaPulldown NÃO fornece uma interface ou código para executar MMseqs2 localmente, nem instalará MMseqs2 ou quaisquer outros programas necessários. O usuário deve instalar MMseqs2, bancos de dados ColabFold, pesquisa ColabFold e outras dependências necessárias e executar primeiro os alinhamentos MSA. Um guia de exemplo pode ser encontrado no ColabFold GitHub.
Suponha que você tenha executado MMseqs2 localmente com êxito usando o programa colab_search
; irá gerar um arquivo A3M para cada proteína de seu interesse. Assim, seu output_dir
deve ficar assim:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
Esses arquivos a3m de colabfold_search
têm nomes inconvenientes. Assim, fornecemos um script rename_colab_search_a3m.py
para ajudá-lo a renomear todos esses arquivos. Baixe o script em https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py e execute:
cd saída_dir python rename_colab_search_a3m.py path_to_fasta_file_you_used_as_input_for_colabfold_search
Então seu output_dir
se tornará:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
Aqui, proteinA
, proteinB
, etc., correspondem aos nomes em seu arquivo FASTA de entrada (por exemplo, >proteinA
fornecerá proteinA.a3m
, >proteinB
fornecerá proteinB.a3m
, etc.).
NOTA: Você também pode fornecer seu próprio arquivo MSA personalizado no formato
.a3m
em vez de usar os arquivos criados por MMSeq2 ou HHMER padrão. Coloque os arquivos com nomes apropriados no diretório de saída e use o código a seguir.
Depois disso, volte ao diretório do seu projeto com o arquivo FASTA original e aponte para este diretório no comando:
fonte ativar AlphaPulldown create_individual_features.py --fasta_paths=--data_dir= --output_dir= --skip_existente=Falso --use_mmseqs2=Verdadeiro --seq_index=
AlphaPulldown pesquisará automaticamente os arquivos a3m correspondentes de cada proteína. No final, seu output_dir
ficará assim:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<