AlphaPulldown mantiene totalmente la compatibilidad con archivos de entrada y scripts de las versiones 1.x.
AlphaPulldown: Versión 2.0.0 (Beta)
Tabla de contenido
Acerca de AlphaPulldown
Descripción general
Bases de datos alfafold
Snakemake AlphaPulldown
1. Instalación
2. Configuración
3. Ejecución
Ejecute la interfaz de línea de comandos AlphaPulldown Python
Crear cuaderno Jupyter
Crear tabla de resultados
Siguiente paso
Siguiente paso
2.1. Ejecución básica
2.2. Ejemplo ejecutado con SLURM (clúster EMBL)
2.3. Modo desplegable
2.4. Modo todos contra todos
2.5. Ejecutar con plantillas personalizadas (TrueMultimer)
2.6. Ejecutar con datos de enlace cruzado (AlphaLink2)
Aporte
Ejecución de script: predicción de estructura
Producción
Siguiente paso
Aporte
Ejecución de guiones
Salida y siguiente paso.
Modo "desplegable" de múltiples entradas
Salida y siguiente paso.
Aporte
Ejecución de script para la predicción de estructuras TrueMultimer
Salida y siguiente paso.
Aporte
Ejecute con predicción AlphaLink2 a través de AlphaPulldown
Salida y siguiente paso.
1.1. Ejecución básica
1.2. Ejemplos de scripts bash para SLURM (clúster EMBL)
1.3. Ejecute utilizando las bases de datos MMseqs2 y ColabFold (más rápido)
1.4. Ejecutar con plantillas personalizadas (TrueMultimer)
Aporte
Ejecución de guiones
Producción
Siguiente paso
Aporte
Ejecución de guiones
Siguiente paso
Ejecute MMseqs2 de forma remota
Producción
Ejecute MMseqs2 localmente
Siguiente paso
Aporte
Ejecución de guiones
Producción
Siguiente paso
0.1. Crear entorno Anaconda
0.2. Instalación usando pip
0.3. Instalación de las herramientas de análisis Downstream.
0.4. Instalación para datos de entrada de enlace cruzado mediante AlphaLink2 (¡opcional!)
0,5. Instalación para desarrolladores
0. Instalación
1. Calcular la alineación de secuencias múltiples (MSA) y las características de la plantilla (etapa de CPU)
2. Predecir estructuras (etapa GPU)
3. Análisis y visualización
Análisis posterior
Disminuir el tamaño de la salida AlphaPulldown
Convertir modelos del formato PDB al formato ModelCIF
1. Convierta todos los modelos en archivos ModelCIF separados.
2. Convierta únicamente un modelo único específico para cada complejo.
3. Tener un modelo representativo y mantener modelos asociados
Archivos Zip asociados
Opciones varias
cuaderno jupyter
Tabla de resultados
Guiones de gestión de resultados
Base de datos de características
Lista de organismos disponibles:
Descargue características específicas de las proteínas:
Descargue todas las funciones de un organismo:
Pasos:
Verificar la instalación:
Instalación
Configuración
Funciones de descarga
AlphaPulldown es una implementación personalizada de AlphaFold-Multimer diseñada para la detección personalizable de alto rendimiento de interacciones proteína-proteína. Amplía las capacidades de AlphaFold incorporando opciones de ejecución adicionales, como plantillas estructurales multiméricas personalizables (TrueMultimer), alineación de secuencias múltiples (MSA) MMseqs2 a través de bases de datos ColabFold, predicciones de fragmentos de proteínas y la capacidad de incorporar datos de espectrometría de masas como entrada utilizando AlphaLink2.
AlphaPulldown se puede utilizar de dos maneras: mediante una canalización de dos pasos hecha de scripts de Python o mediante una canalización Snakemake en su conjunto. Para obtener detalles sobre el uso de la canalización Snakemake, consulte el repositorio de GitHub independiente.
Figura 1 Descripción general del flujo de trabajo de AlphaPulldown
El flujo de trabajo AlphaPulldown implica los siguientes 3 pasos:
Cree y almacene funciones de plantilla y MSA :
En este paso, AlphaFold busca bases de datos preinstaladas utilizando HMMER para cada secuencia de proteínas consultada y calcula múltiples alineamientos de secuencias (MSA) para todos los homólogos encontrados. También busca estructuras homólogas para usarlas como plantillas para la generación de características. Este paso solo requiere CPU.
Las opciones personalizables incluyen:
Para acelerar el proceso de búsqueda, se puede utilizar MMSeq2 en lugar del HHMER predeterminado.
Utilice MSA personalizado.
Utilice una plantilla estructural personalizada, incluida una multimérica (modo TrueMultimer).
Predicción de estructura :
En este paso, la red neuronal AlphaFold se ejecuta y produce la estructura proteica final, que requiere GPU. Una fortaleza clave de AlphaPulldown es su capacidad para definir de manera flexible cómo se combinan las proteínas para la predicción de la estructura de complejos de proteínas. Estos son los tres enfoques principales que puede utilizar:
Figura 2 Tres escenarios típicos cubiertos por AlphaPulldown
Además, AlphaPulldown también permite:
Seleccione solo las regiones de proteínas que desee predecir en lugar de las secuencias completas.
Ajuste la profundidad de MSA para controlar la influencia del MSA inicial en el modelo final.
Integre datos de enlace cruzado de alto rendimiento con el modelado AlphaFold a través de AlphaLink2.
Archivo único (modo personalizado o modo homooligómero): cree un archivo donde cada fila enumere las secuencias de proteínas que desea predecir juntas o cada fila le indique al programa que modele homooligómeros con el número de copias especificado.
Múltiples archivos (modo desplegable): proporcione varios archivos, cada uno de los cuales contenga secuencias de proteínas. AlphaPulldown generará automáticamente todas las combinaciones posibles emparejando filas de nombres de proteínas de cada archivo.
Todos contra todos : AlphaPulldown generará todas las posibles combinaciones no redundantes de proteínas en la lista.
Análisis posterior de los resultados :
Los resultados de todos los modelos predichos se pueden sistematizar utilizando una de las siguientes opciones:
Una tabla que contiene varias puntuaciones y parámetros físicos de interacciones de complejos proteicos.
Un cuaderno Jupyter con modelos de proteínas 3D interactivos y gráficos PAE.
Para el cálculo estándar de MSA y características, AlphaPulldown requiere bases de datos genéticas. Verifique si ha descargado los parámetros y bases de datos necesarios (por ejemplo, BFD, MGnify, etc.) como se indica en la documentación de AlphaFold. Deberías tener un directorio estructurado de la siguiente manera:
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
Nota
Uniclust30 es la versión de la base de datos generada antes de 2019, UniRef30 es la generada después de 2019. Tenga en cuenta que AlphaPulldown utiliza UniRef30_2023_02 de forma predeterminada. Esta versión se puede descargar mediante este script. Alternativamente, sobrescriba la ruta predeterminada a la base de datos uniref30 usando el indicador --uniref30_database_path de create_individual_features.py.
Nota
Dado que la instalación local de todas las bases de datos genéticas consume espacio, también puede utilizar las bases de datos MMseqs2 y ColabFold ejecutadas de forma remota. Siga las instrucciones correspondientes. Sin embargo, para que AlphaPulldown funcione, debe descargar los parámetros almacenados en el directorio params/
de la base de datos AlphaFold.
AlphaPulldown está disponible como canalización de Snakemake, lo que le permite ejecutar secuencialmente (1) Generación de MSA y características de plantilla, (2) Predicción de estructuras y (3) Análisis de resultados sin intervención manual entre pasos. Para obtener más detalles, consulte el repositorio AlphaPulldownSnakemake .
Advertencia
La versión Snakemake de AlphaPulldown difiere ligeramente del AlphaPulldown convencional basado en scripts en términos de especificaciones de archivos de entrada.
Antes de la instalación, asegúrese de que su versión de Python sea al menos 3.10.
python3 --versión
Instalar dependencias
pip install Snakemake==7.32.4 Snakedeploy==0.10.0 pulp==2.7 clic==8.1 cookiecutter==2.6
Configuración del clúster Snakemake
Para permitir que Snakemake interactúe con un clúster de cómputo, usaremos el perfil Snakemake para SLURM. Si no está trabajando en un clúster SLURM, puede encontrar perfiles para diferentes arquitecturas aquí. Lo siguiente creará un perfil que se puede utilizar con Snakemake y le solicitará información adicional.
clon de git https://github.com/Snakemake-Profiles/slurm.git perfil_dir="${HOME}/.config/snakemake"mkdir -p "$profile_dir"template="gh:Snakemake-Profiles/slurm"cookiecutter --output-dir "$profile_dir" "$template"
Durante el proceso de configuración, se le pedirá que responda varias preguntas de configuración. A continuación se presentan las preguntas y las respuestas recomendadas:
profile_name [slurm]:
slurm_noSidecar
Select use_singularity:
1 (Falso)
Select use_conda:
1 (Falso)
jobs [500]:
(Presione Enter para aceptar el valor predeterminado)
restart_times [0]:
(Presione Enter para aceptar el valor predeterminado)
max_status_checks_per_second [10]:
(Presione Enter para aceptar el valor predeterminado)
max_jobs_per_second [10]:
(Presione Enter para aceptar el valor predeterminado)
latency_wait [5]:
30
Select print_shell_commands:
1 (Falso)
sbatch_defaults []:
qos=nodos bajos=1
Select cluster_sidecar:
2 (no)
cluster_name []:
(Presione Enter para dejar en blanco)
cluster_jobname [%r_%w]:
(Presione Enter para aceptar el valor predeterminado)
cluster_logpath [logs/slurm/%r/%j]:
(Presione Enter para aceptar el valor predeterminado)
cluster_config []:
(Presione Enter para dejar en blanco)
Después de responder a estas indicaciones, su perfil de Slurm llamado slurm_noSidecar para Snakemake se configurará según lo especificado.
Singularidad (probablemente ya instalada) : esta canalización utiliza contenedores para mayor reproducibilidad. Si está trabajando en el clúster EMBL, la singularidad ya está instalada y puede omitir este paso. De lo contrario, instale Singularity utilizando la guía oficial de Singularity.
Descargar The Pipeline : esto descargará la versión especificada por '--tag' de la canalización de Snakemake y creará el repositorio AlphaPulldownSnakemake o cualquier otro nombre que elija.
flujo de trabajo de implementación de serpiente https://github.com/KosinskiLab/AlphaPulldownSnakemake AlphaPulldownSerpientemake --tag 1.4.0cd AlphaPulldownSnakemake
Nota
Si desea utilizar la última versión de GitHub, reemplace --tag XXX
por --branch main
Instale el paquete CCP4 : para instalar el software necesario para el paso de análisis, siga estas instrucciones:
Descargue la llamada imagen de Singularidad con nuestro paquete de software de análisis
Docker de extracción de singularidad: //kosinskilab/fold_analysis:latest compilación de singularidad --sandboxfold_analysis_latest.sif
Descargue CCP4 desde https://www.ccp4.ac.uk/download/#os=linux y cópielo a su servidor
tar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc/software/ cp /lib/* /software/lib64/
Crea una nueva Singularidad con CCP4 incluido
cdsingularity build fold_analysis_latest_withCCP4.sif
Debería crear el archivo fold_analysis_latest_withCCP4.sif
.
Puede eliminar el
Ajuste config/config.yaml
para su caso de uso particular.
Si desea utilizar CCP4 para el análisis, abra config/config.yaml
en un editor de texto y cambie la ruta al contenedor de análisis a:
contenedor_análisis: "/ruta/a/fold_analysis_latest_withCCP4.sif"
input_files Esta variable contiene la ruta a su hoja de muestra, donde cada línea corresponde a un trabajo de plegado. Para esta canalización utilizamos la siguiente especificación de formato:
protein:N:start-stop[_protein:N:start-stop]*
donde proteína es una ruta a un archivo con extensión '.fasta' o ID uniprot, N es el número de monómeros para esta proteína en particular y el inicio y la parada son los residuos que deben predecirse. Sin embargo, solo se requiere proteína, se pueden omitir N, inicio y parada. Por lo tanto, los siguientes trabajos de plegado para el ejemplo de la proteína que contiene los residuos 1-50 son 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 aplica de manera similar al plegamiento de heterómeros:
example1_example2
Suponiendo que tiene dos hojas de muestra config/sample_sheet1.csv y config/sample_sheet2.csv. Lo siguiente sería equivalente a calcular todo versus todo en sample_sheet1.csv:
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
mientras que el siguiente fragmento sería equivalente a calcular el menú desplegable entre sample_sheet1.csv y sample_sheet2.csv
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
Este formato se puede ampliar a tantos archivos como desee, pero tenga en cuenta que el número de pliegues aumentará drásticamente.
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
alphafold_data_directory Esta es la ruta a su base de datos alphafold.
directorio_salida Snakemake escribirá la salida de la canalización en este directorio. Si no existe, se creará.
save_msa, use_precomputed_msa, predictions_per_model, number_of_recycles, report_cutoff Argumentos de línea de comando que se pasaron previamente a run_multimer_jobs.py y create_notebook.py (report_cutoff) de AlphaPulldown.
alphafold_inference_threads, alphafold_inference Parámetros específicos de Slurm que no necesitan ser modificados por usuarios no expertos.
only_generate_features Si se establece en True, se detiene después de generar características y no realiza predicciones ni informes de estructuras.
Después de seguir los pasos de instalación y configuración, ahora está listo para ejecutar la canalización de Snakemake. Para hacerlo, navegue hasta el directorio de la canalización clonada y ejecute:
serpiente --uso-singularidad --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv " --trabajos 200 --tiempos de reinicio 5 --perfil slurm_noSidecar --rerun-incompleto --rerun-triggers mtime --latencia-espera 30 -norte
Aquí hay un desglose de lo que hace cada argumento:
--use-singularity
: habilita el uso de contenedores de Singularity. Esto permite la reproducibilidad y el aislamiento del entorno de la tubería.
--singularity-args
: especifica argumentos pasados directamente a Singularity. En el ejemplo proporcionado:
-B /scratch:/scratch
y -B /g/kosinski:/g/kosinski
: Estos son puntos de montaje vinculados. Hacen que los directorios de su sistema host sean accesibles dentro del contenedor de Singularity. --nv
garantiza que el contenedor pueda utilizar las GPU del host.
--profile name_of_your_profile
: Especifica el perfil de Snakemake que se utilizará (por ejemplo, el perfil SLURM que configuró para la ejecución del clúster).
--rerun-triggers mtime
: vuelve a ejecutar un trabajo si un archivo específico (desencadenante) se ha modificado más recientemente que la salida del trabajo. Aquí, mtime
comprueba la hora de modificación del archivo.
--jobs 500
: permite enviar hasta 500 trabajos al clúster simultáneamente.
--restart-times 10
: especifica que los trabajos se pueden reiniciar automáticamente hasta 10 veces si fallan.
--rerun-incomplete
: fuerza la repetición de cualquier trabajo que quedó incompleto en ejecuciones anteriores de Snakemake.
--latency-wait 30
: espera 30 segundos después de que finaliza un paso para verificar la existencia de los archivos de salida esperados. Esto puede resultar útil en sistemas de archivos con latencias altas.
-n
: indicador de ejecución en seco. Esto hace que Snakemake muestre los comandos que ejecutaría sin ejecutarlos realmente. Es útil para realizar pruebas. Para ejecutar la canalización de verdad, simplemente elimine esta bandera.
Al ejecutar el comando anterior se enviarán los siguientes trabajos al clúster:
AlphaPulldown se puede utilizar como un conjunto de scripts para cada paso en particular.
create_individual_features.py
: genera múltiples alineaciones de secuencia (MSA), identifica plantillas estructurales y almacena los resultados en archivos .pkl
de características monoméricas.
run_multimer_jobs.py
: Ejecuta la predicción de estructuras.
create_notebook.py
y alpha-analysis.sif
: prepara un Jupyter Notebook interactivo y una tabla de resultados, respectivamente.
En primer lugar , instale Anaconda y cree un entorno AlphaPulldown, reuniendo las dependencias necesarias. Recomendamos utilizar mamba para acelerar la resolución de dependencias:
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
fuente activar AlphaPulldown
Esto suele funcionar, pero en algunos sistemas informáticos, es posible que los usuarios prefieran utilizar otras versiones o compilaciones optimizadas de HMMER y HH-suite que ya están instaladas.
Active el entorno AlphaPulldown e instale AlphaPulldown:
fuente activar AlphaPulldown python3 -m pip instala alphapulldown
instalación de pip -U "jax[cuda12]"
Nota
Para versiones anteriores de AlphaFold : si no ha actualizado sus bases de datos de acuerdo con los requisitos de AlphaFold 2.3.0, aún puede usar AlphaPulldown con su versión anterior de la base de datos AlphaFold. Siga las instrucciones de instalación en la sucursal dedicada.
Instale el paquete CCP4 : para instalar el software necesario para el paso de análisis, siga estas instrucciones:
Docker de extracción de singularidad: //kosinskilab/fold_analysis:latest singularity build --sandboxfold_analysis_latest.sif# Descargue el superior desde 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/ compilación de singularidad
Asegúrese de haber instalado PyTorch correspondiente a la versión de CUDA que tiene. Aquí tomaremos CUDA 11.7 y PyTorch 1.13.0 como ejemplo:
antorcha de instalación de pip==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
Compile UniCore.
fuente activar AlphaPulldown clon de git https://github.com/dptech-corp/Uni-Core.gitcd Uni-Core instalación de python setup.py --disable-cuda-ext # probar si Unicore se instaló correctamentepython -c "importar unicore"
Es posible que vea la siguiente advertencia, pero está bien:
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
Descargue los puntos de control de PyTorch de Zenodo, descomprímalos y luego debería obtener un archivo llamado: AlphaLink-Multimer_SDA_v3.pt
Sólo para los desarrolladores que deseen modificar los códigos de AlphaPulldown y probar sus modificaciones. Agregue su clave SSH a su cuenta de GitHub
Clonar el repositorio de GitHub
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown inicio del submódulo git actualización del submódulo git
Cree el entorno Conda como se describe en Crear entorno Anaconda
Instale el paquete AlphaPulldown y agregue sus submódulos al entorno Conda (no funciona si desea actualizar las dependencias)
fuente activar AlphaPulldowncd AlphaPulldown pip instalar .pip instalar -e . --sin-deps instalación de pip -e ColabFold --no-deps instalación de pip -e alphafold --no-deps
Necesitas hacerlo sólo una vez.
Cuando desee desarrollar, active el entorno, modifique los archivos y los cambios deberían reconocerse automáticamente.
Pruebe su paquete durante el desarrollo usando pruebas en test/
, por ejemplo:
pip instalar pytest pytest -s prueba/ pytest -s prueba/test_predictions_slurm.py pytest -s test/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_generación
Antes de pasar al control remoto o enviar una solicitud de extracción:
instalación de pip .pytest -s prueba/
para instalar el paquete y probar. Pytest para predicciones solo funciona si SLURM está disponible. Verifique los archivos de registro creados en su directorio actual.
Nota
Si trabaja con proteínas de organismos modelo, puede descargar directamente los archivos de características de la base de datos de características AlphaPulldown y omitir este paso.
Este es un ejemplo general del uso de create_individual_features.py
. Para obtener información sobre la ejecución de tareas específicas o la ejecución paralela en un clúster, consulte las secciones correspondientes de este capítulo.
En este paso, debe proporcionar un archivo de proteína en formato FASTA con todas las secuencias de proteínas que se utilizarán para la predicción compleja.
Ejemplo de un archivo FASTA ( sequences.fasta
):
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
Active el entorno AlphaPulldown y ejecute el script create_individual_features.py
de la siguiente manera:
fuente activar AlphaPulldown crear_características_individuales.py --fasta_paths=--data_dir= --output_dir= --max_template_date=
En lugar de
proporcione una ruta a su archivo FASTA de entrada. También puede proporcionar varios archivos separados por comas.
En lugar de
proporcione una ruta a la base de datos genética (consulte 0. Bases de datos Alphafold de la parte de instalación).
En lugar de
proporcione una ruta al directorio de salida, donde se guardarán los archivos de características.
Se necesita una fecha en la bandera --max_template_date
para restringir la búsqueda de estructuras de proteínas que se depositan antes de la fecha indicada. A menos que la fecha sea posterior a la fecha de la última actualización de su base de datos genómica local, el script buscará plantillas entre todas las estructuras disponibles.
El script de cálculo de características create_individual_features.py
tiene varios BANDERAS opcionales:
--[no]save_msa_files
: de forma predeterminada es False para guardar la etapa de almacenamiento, pero se puede cambiar a True . Si se establece en True
, el programa creará una carpeta individual para cada proteína. El directorio de salida se verá así:
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
Si save_msa_files=False
entonces el output_dir
se verá así:
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
: el valor predeterminado es False
. Sin embargo, si ya tiene archivos MSA para sus proteínas, configure el parámetro en Verdadero y organice sus archivos MSA en el formato siguiente:
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
Luego, en la línea de comando, configure output_dir=/path/to/example_directory
.
--[no]skip_existing
: el valor predeterminado es False
, pero si ya ejecutó el primer paso para algunas proteínas y ahora agrega nuevas proteínas a la lista, puede cambiar skip_existing
a True
en la línea de comando para evitar volver a ejecutar el mismo procedimiento para el anterior. proteínas calculadas.
--seq_index
: El valor predeterminado es None
y el programa ejecutará predicciones una por una en los archivos proporcionados. Sin embargo, puede configurar seq_index
en un número diferente si desea ejecutar una serie de trabajos en paralelo, entonces el programa solo ejecutará el trabajo correspondiente especificado por seq_index
. por ejemplo, el programa solo calcula características para la primera proteína en su archivo FASTA si seq_index
está configurado en 1. Consulte también el script Slurm sbatch anterior para ver un ejemplo de cómo usarlo para la ejecución paralela. ❗ seq_index
comienza desde 1.
--[no]use_mmseqs2
: use mmseqs2 de forma remota o no. El valor predeterminado es Falso.
BANDERAS relacionadas con el modo TrueMultimer:
--path_to_mmt
: Ruta al directorio con archivos mmCIF de plantilla multimérica.
--description_file
: ruta al archivo de texto con descripciones para generar funciones. Tenga en cuenta que la primera columna debe ser una copia exacta de la descripción de la proteína de sus archivos FASTA. Considere acortarlos en archivos FASTA utilizando su editor de texto favorito para su comodidad. ¡Estos nombres se utilizarán para generar archivos pickle con características monoméricas! El archivo descripción.csv para el complejo NS1-P85B debería verse así:
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
En este ejemplo, nos referimos a la proteína NS1 como cadena A y a la proteína P85B como cadena C en la plantilla multimérica 3L4Q.cif.
Tenga en cuenta que el nombre de su plantilla cambiará a un código PDB tomado de _entry_id . Si utiliza un archivo *.pdb en lugar de *.cif, AlphaPulldown primero intentará analizar el código PDB del archivo. Luego comprobará si el nombre del archivo tiene 4 letras. Si no es así, generará un código aleatorio de 4 letras y lo utilizará como código PDB.
--threshold_clashes
: umbral para la superposición de VDW para identificar conflictos. La superposición VDW entre dos átomos se define como la suma de sus radios VDW menos la distancia entre sus centros. Si la superposición supera este umbral, se considera que los dos átomos están chocando. Un umbral positivo es hasta qué punto se permite que las superficies VDW se interpenetren antes de considerar que los átomos están chocando. (predeterminado: 1000, es decir, sin umbral; para el umbral, utilice 0,6-0,9).
--hb_allowance
: margen adicional para los enlaces de hidrógeno (predeterminado: 0,4) utilizado para identificar los residuos en conflicto que se eliminarán de una plantilla multimérica. Un margen > 0 refleja la observación de que los átomos que comparten un enlace de hidrógeno pueden acercarse entre sí de lo que se esperaría a partir de sus radios VDW. La asignación solo se resta para los pares compuestos por un donante (o hidrógeno transmitido por el donante) y un aceptor. Esto equivale a utilizar radios más pequeños para caracterizar las interacciones de los enlaces de hidrógeno.
--plddt_threshold
: Umbral para la puntuación pLDDT (predeterminado: 0) que se eliminará de una plantilla multimérica (todos los residuos con pLDDT>plddt_threshold se eliminan y modelan desde cero). Solo se puede utilizar cuando las plantillas multiméricas son modelos generados por AlphaFold.
--new_uniclust_dir
: utilice esto si desea sobrescribir la ruta predeterminada a la base de datos uniclust.
--[no]use_hhsearch
: utilice hhsearch en lugar de hmmsearch cuando busque una plantilla de estructura. El valor predeterminado es Falso.
--[no]multiple_mmts
: utilice varias plantillas multiméricas por cadena. El valor predeterminado es Falso.
El resultado de la ejecución de create_individual_features.py
son características en formato pickle para cada proteína del archivo FASTA de entrada (por ejemplo, sequence_name_A.pkl
y sequence_name_B.pkl
) almacenado en el output_dir
.
Nota
El nombre de los encurtidos será el mismo que las descripciones de las secuencias en los archivos FASTA (por ejemplo, >protein_A
en el archivo FASTA producirá proteinA.pkl
). Tenga en cuenta que los símbolos especiales como | : ; #
, después de >
será reemplazado por _
.
Continúe con el siguiente paso 2.1 Ejecución básica.
Si ejecuta AlphaPulldown en un grupo de computadoras, es posible que desee ejecutar la creación de funciones en paralelo. Aquí proporcionamos un ejemplo de código adecuado para un clúster que utiliza SLURM Workload Manager.
Para el siguiente ejemplo, usaremos example_2_sequences.fasta
como entrada.
Cree el script create_individual_features_SLURM.sh
y coloque el siguiente código en él usando vi, nano o cualquier otro editor de texto. Reemplace los parámetros de entrada con los argumentos apropiados para el script create_individual_features.py
como se describe en Ejecución básica o cualquier otro tipo de ejecución que desee ejecutar:
#!/bin/bash#Una ejecución típica tarda un par de horas, pero puede ser mucho más larga#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 establece prioridad#SBATCH --qos=low#Limitar la ejecución a un solo nodo#SBATCH -N 1#Ajuste esto dependiendo de nodo#SBATCH --ntasks=8#SBATCH --mem=64000carga del módulo HMMER/3.4-gompi-2023a carga del módulo HH-suite/3.3.0-gompi-2023aeval "$(conda shell.bash hook)" carga del módulo CUDA/11.8.0 carga del módulo cuDNN/8.7.0.84-CUDA-11.8.0 conda activar AlphaPulldown# PERSONALIZA LOS SIGUIENTES PARÁMETROS DEL SCRIPT PARA TU TAREA ESPECÍFICA:####create_individual_features.py --fasta_paths=ejemplo_1_secuencias.fasta --data_dir=/scratch/AlphaFold_DBs/2.3.2 / --output_dir=/scratch/mydir/test_AlphaPulldown/ --max_template_date=2050-01-01 --skip_existing=Verdadero --seq_index=$SLURM_ARRAY_TASK_ID#####
Haga que el script sea ejecutable ejecutando:
chmod +x crear_individual_features_SLURM.sh
A continuación, ejecute los siguientes comandos, reemplazando
con la ruta a su archivo FASTA de entrada:
mkdir logs#Cuente el número de trabajos correspondientes al número de secuencias:count=`grep ">"| wc -l`#Ejecute la matriz de trabajos, 100 trabajos a la vez:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Ejemplo para dos archivos (para más archivos, cree variables count3
, count4
, etc. y agréguelas a la suma de los recuentos):
mkdir logs#Cuente el número de trabajos correspondientes al número de secuencias:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) #Ejecute la matriz de trabajos, 100 trabajos a la vez:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Continúe con el siguiente paso 2.2 Ejecución de ejemplo con SLURM (clúster EMBL).
MMseqs2 es otro método para la búsqueda de homólogos y generación de MSA. Ofrece una alternativa a los HMMER y HHblits predeterminados utilizados por AlphaFold. Los resultados de estos diferentes enfoques podrían conducir a predicciones de la estructura de las proteínas ligeramente diferentes debido a variaciones en la información evolutiva capturada dentro de las MSA. AlphaPulldown admite la implementación de la búsqueda MMseqs2 realizada por ColabFold, que también proporciona un servidor web para la generación de MSA, por lo que no se necesita instalación local de bases de datos.
Citar: Si utiliza MMseqs2, recuerde citar: Mirdita M, Schütze K, Moriwaki Y, Heo L, Ovchinnikov S, Steinegger M. ColabFold: Making protein Folding access to all. Métodos de la naturaleza (2022) doi: 10.1038/s41592-022-01488-1
PRECAUCIÓN: Para evitar sobrecargar el servidor remoto, no envíe una gran cantidad de trabajos simultáneamente. Si desea calcular MSA para muchas secuencias, utilice MMseqs2 localmente.
Para ejecutar create_individual_features.py
usando MMseqs2 de forma remota, agregue el indicador --use_mmseqs2=True
:
fuente activar AlphaPulldown crear_características_individuales.py --fasta_paths=--data_dir= --output_dir= --use_mmseqs2=Verdadero --max_template_date=
Una vez finalizada la ejecución del script, su output_dir
se verá así:
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
Continúe con el siguiente paso 2.1 Ejecución básica.
AlphaPulldown NO proporciona una interfaz o código para ejecutar MMseqs2 localmente, ni instalará MMseqs2 ni ningún otro programa requerido. El usuario debe instalar MMseqs2, las bases de datos ColabFold, la búsqueda de ColabFold y otras dependencias requeridas y ejecutar primero las alineaciones de MSA. Puede encontrar una guía de ejemplo en ColabFold GitHub.
Supongamos que ha ejecutado exitosamente MMseqs2 localmente usando el programa colab_search
; generará un archivo A3M para cada proteína de su interés. Por lo tanto, su output_dir
debería verse así:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
Estos archivos a3m de colabfold_search
tienen nombres inconvenientes. Por lo tanto, proporcionamos un script rename_colab_search_a3m.py
para ayudarlo a cambiar el nombre de todos estos archivos. Descargue el script de https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py y ejecute:
cd salida_dir python rename_colab_search_a3m.py ruta_al_fasta_file_you_used_as_input_for_colabfold_search
Entonces tu output_dir
se convertirá en:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
Aquí, proteinA
, proteinB
, etc., corresponden a los nombres en su archivo FASTA de entrada (por ejemplo, >proteinA
le dará proteinA.a3m
, >proteinB
le dará proteinB.a3m
, etc.).
NOTA: También puede proporcionar su propio archivo MSA personalizado en formato
.a3m
en lugar de utilizar los archivos creados por MMSeq2 o HHMER estándar. Coloque los archivos con el nombre apropiado en el directorio de salida y use el código de la siguiente manera.
Después de esto, regrese al directorio de su proyecto con el archivo FASTA original y apunte a este directorio en el comando:
fuente activar AlphaPulldown crear_características_individuales.py --fasta_paths=--data_dir= --output_dir= --skip_existing=Falso --use_mmseqs2=Verdadero --seq_index=
AlphaPulldown buscará automáticamente los archivos a3m correspondientes a cada proteína. Al final, tu output_dir
se verá así:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<