AlphaFold2/fr
AlphaFold est un modèle d'apprentissage automatique pour la prédiction du repliement des protéines.
Nous expliquons ici comment utiliser la version AlphaFold v2.0 présentée au CASP14 et dont un compte-rendu a été publié dans Nature.
Le code source et la documentation se trouvent sur cette page GitHub. Toute publication mentionnant des résultats obtenus par l'utilisation du code source ou des paramètres de modèle doit citer cette publication.
Versions disponibles¶
AlphaFold est disponible sur nos grappes dans les paquets Python préconstruits (wheels). Vous pouvez afficher les versions disponibles avec la commande avail_wheels.
name version python arch
--------- --------- -------- -------
alphafold 2.3.1 py3 generic
alphafold 2.3.0 py3 generic
alphafold 2.2.4 py3 generic
alphafold 2.2.3 py3 generic
alphafold 2.2.2 py3 generic
alphafold 2.2.1 py3 generic
alphafold 2.1.1 py3 generic
alphafold 2.0.0 py3 generic
Installer AlphaFold dans un environnement virtuel Python¶
-
Chargez les dépendances d'AlphaFold.
Python 3.7 et 3.8 sont supportés depuis juillet 2022. -
Créez et activez un environnement virtuel Python.
-
Installez une version spécifique d'AlphaFold et ses dépendances Python.
où(alphafold_env) [name@server ~] pip install --no-index --upgrade pip (alphafold_env) [name@server ~] pip install --no-index alphafold==X.Y.ZX.Y.Zreprésente le numéro de la version, par exemple2.2.4. Pour installer la plus récente version disponible pour nos grappes, n'indiquez pas de version. -
Validez.
-
Figez l'environnement et les dépendances.
Bases de données¶
AlphaFold requiert un jeu de bases de données.
Les bases de données sont disponibles dans /cvmfs/bio.data.computecanada.ca/content/databases/Core/alphafold2_dbs/2023_07/.
Les bases de données AlphaFold sont mises à jour annuellement dans CVMFS. La mise à jour de janvier 2024 est disponible dans le répertoire 2024_01.
(alphafold_env) [name@server ~] export DOWNLOAD_DIR=/cvmfs/bio.data.computecanada.ca/content/databases/Core/alphafold2_dbs/2023_07/
Vous pouvez aussi télécharger les bases de données localement dans votre répertoire /scratch.
Important
Les bases de données doivent se trouver dans le répertoire $SCRATCH.
-
Créez le répertoire de données à partir d'un nœud de connexion ou d'un nœud de transfert de données (DTN).
-
Lorsque vos modules sont chargés et votre environnement virtuel est activé, vous pouvez télécharger les données.
Attention
Ceci ne doit pas se faire à partir d'un nœud de calcul. Sur les grappes qui ont des nœuds de transfert de données (DTN), utilisez ce type de nœud (voir la page Transfert de données); autrement, utilisez un nœud de connexion. Puisque la durée du téléchargement peut prendre une journée complète, nous vous suggérons d'utiliser plutôt un multiplexeur de terminal. Il est possible que vous obteniez le message d'erreur
Client_loop: send disconnect: Broken pipe; voir Dépannage ci-dessous.
-
Configurez
DOWNLOAD_DIR.
Par la suite, la structure des données sera semblable à ceci:
$DOWNLOAD_DIR/ # ~ 2.6 TB (total)
bfd/ # ~ 1.8 TB
# 6 files
mgnify/ # ~ 120 GB
mgy_clusters.fa
params/ # ~ 5.3 GB
# LICENSE
# 15 models
# 16 files (total)
pdb70/ # ~ 56 GB
# 9 files
pdb_mmcif/ # ~ 246 GB
mmcif_files/
# 202,764 files
obsolete.dat
pdb_seqres/ # ~ 237 MB
pdb_seqres.txt
uniprot/ # ~ 111 GB
uniprot.fasta
uniref30/ # ~ 206 GB
# 7 files
uniref90/ # ~ 73 GB
uniref90.fasta
$DOWNLOAD_DIR/ # Total: ~ 2.2 TB (download: 428 GB)
bfd/ # ~ 1.8 TB (download: 271.6 GB)
# 6 files.
mgnify/ # ~ 64 GB (download: 32.9 GB)
mgy_clusters.fa
params/ # ~ 3.5 GB (download: 3.5 GB)
# 5 CASP14 models,
# 5 pTM models,
# LICENSE,
# = 11 files.
pdb70/ # ~ 56 GB (download: 19.5 GB)
# 9 files.
pdb_mmcif/ # ~ 206 GB (download: 46 GB)
mmcif_files/
# About 180,000 .cif files.
obsolete.dat
uniclust30/ # ~ 87 GB (download: 24.9 GB)
uniclust30_2018_08/
# 13 files.
uniref90/ # ~ 59 GB (download: 29.7 GB)
uniref90.fasta
Exécuter AlphaFold¶
Performance
Vous pouvez demander au plus 8 cœurs lors de l'exécution d'AlphaFold car il est codé en dur (hardcoded) pour ne pas en utiliser plus et ne bénéficie pas d'en utiliser davantage.
Modifiez un des scripts de soumission suivants, selon vos besoins.
#!/bin/bash
#SBATCH --job-name=alphafold_run
#SBATCH --account=def-someprof # ajustez ce paramètre à votre groupe comptable
#SBATCH --time=08:00:00 # ajustez ce paramètre au temps d'exécution souhaité
#SBATCH --cpus-per-task=8 # un MAXIMUM de 8 cœurs, AlphaFold n'a aucun avantage à en utiliser plus
#SBATCH --mem=20G # ajustez ce paramètre en fonction de la mémoire nécessaire
# Chargez les dépendances des modules.
module load StdEnv/2020 gcc/9.3.0 openmpi/4.0.3 cuda/11.4 cudnn/8.2.0 kalign/2.03 hmmer/3.2.1 openmm-alphafold/7.5.1 hh-suite/3.3.0 python/3.8
DOWNLOAD_DIR=$SCRATCH/alphafold/data # définissez le chemin approprié vers vos données téléchargées
INPUT_DIR=$SCRATCH/alphafold/input # définissez le chemin approprié vers vos données d'entrée
OUTPUT_DIR=${SCRATCH}/alphafold/output # définissez le chemin approprié vers vos données de sortie
# Créez votre environnement virtuel dans $SLURM_TMPDIR.
virtualenv --no-download ${SLURM_TMPDIR}/env
source ${SLURM_TMPDIR}/env/bin/activate
# Installez AlphaFold et ses dépendances.
pip install --no-index --upgrade pip
pip install --no-index --requirement ~/alphafold-requirements.txt
# Modifiez avec les arguments appropriés et exécutez vos commandes.
# run_alphafold.py --help
run_alphafold.py \
--fasta_paths=${INPUT_DIR}/YourSequence.fasta,${INPUT_DIR}/AnotherSequence.fasta \
--output_dir=${OUTPUT_DIR} \
--data_dir=${DOWNLOAD_DIR} \
--db_preset=full_dbs \
--model_preset=multimer \
--bfd_database_path=${DOWNLOAD_DIR}/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--mgnify_database_path=${DOWNLOAD_DIR}/mgnify/mgy_clusters_2022_05.fa \
--pdb70_database_path=${DOWNLOAD_DIR}/pdb70/pdb70 \
--template_mmcif_dir=${DOWNLOAD_DIR}/pdb_mmcif/mmcif_files \
--obsolete_pdbs_path=${DOWNLOAD_DIR}/pdb_mmcif/obsolete.dat \
--pdb_seqres_database_path=${DOWNLOAD_DIR}/pdb_seqres/pdb_seqres.txt \
--uniprot_database_path=${DOWNLOAD_DIR}/uniprot/uniprot.fasta \
--uniref30_database_path=${DOWNLOAD_DIR}/uniref30/UniRef30_2021_03 \
--uniref90_database_path=${DOWNLOAD_DIR}/uniref90/uniref90.fasta \
--hhblits_binary_path=${EBROOTHHMINSUITE}/bin/hhblits \
--hhsearch_binary_path=${EBROOTHHMINSUITE}/bin/hhsearch \
--jackhmmer_binary_path=${EBROOTHMMER}/bin/jackhmmer \
--kalign_binary_path=${EBROOTKALIGN}/bin/kalign \
--max_template_date=2022-01-01 \
--use_gpu_relax=False
#!/bin/bash
#SBATCH --job-name=alphafold_run
#SBATCH --account=def-someprof # ajustez ce paramètre à votre groupe comptable
#SBATCH --time=08:00:00 # ajustez ce paramètre au temps d'exécution souhaité
#SBATCH --cpus-per-task=8 # un MAXIMUM de 8 cœurs, AlphaFold n'a aucun avantage à en utiliser plus
#SBATCH --gres=gpu:1 # une carte graphique (GPU) aide à accélérer la partie inférence seulement
#SBATCH --mem=20G # ajustez ce paramètre en fonction de la mémoire nécessaire
# Chargez les dépendances des modules.
module load StdEnv/2020 gcc/9.3.0 openmpi/4.0.3 cuda/11.4 cudnn/8.2.0 kalign/2.03 hmmer/3.2.1 openmm-alphafold/7.5.1 hh-suite/3.3.0 python/3.8
DOWNLOAD_DIR=$SCRATCH/alphafold/data # définissez le chemin approprié vers vos données téléchargées
INPUT_DIR=$SCRATCH/alphafold/input # définissez le chemin approprié vers vos données d'entrée
OUTPUT_DIR=${SCRATCH}/alphafold/output # définissez le chemin approprié vers vos données de sortie
# Créez votre environnement virtuel dans $SLURM_TMPDIR.
virtualenv --no-download ${SLURM_TMPDIR}/env
source ${SLURM_TMPDIR}/env/bin/activate
# Installez AlphaFold et ses dépendances.
pip install --no-index --upgrade pip
pip install --no-index --requirement ~/alphafold-requirements.txt
# Modifiez avec les arguments appropriés et exécutez vos commandes.
# run_alphafold.py --help
run_alphafold.py \
--fasta_paths=${INPUT_DIR}/YourSequence.fasta,${INPUT_DIR}/AnotherSequence.fasta \
--output_dir=${OUTPUT_DIR} \
--data_dir=${DOWNLOAD_DIR} \
--db_preset=full_dbs \
--model_preset=multimer \
--bfd_database_path=${DOWNLOAD_DIR}/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--mgnify_database_path=${DOWNLOAD_DIR}/mgnify/mgy_clusters_2022_05.fa \
--pdb70_database_path=${DOWNLOAD_DIR}/pdb70/pdb70 \
--template_mmcif_dir=${DOWNLOAD_DIR}/pdb_mmcif/mmcif_files \
--obsolete_pdbs_path=${DOWNLOAD_DIR}/pdb_mmcif/obsolete.dat \
--pdb_seqres_database_path=${DOWNLOAD_DIR}/pdb_seqres/pdb_seqres.txt \
--uniprot_database_path=${DOWNLOAD_DIR}/uniprot/uniprot.fasta \
--uniref30_database_path=${DOWNLOAD_DIR}/uniref30/UniRef30_2021_03 \
--uniref90_database_path=${DOWNLOAD_DIR}/uniref90/uniref90.fasta \
--hhblits_binary_path=${EBROOTHHMINSUITE}/bin/hhblits \
--hhsearch_binary_path=${EBROOTHHMINSUITE}/bin/hhsearch \
--jackhmmer_binary_path=${EBROOTHMMER}/bin/jackhmmer \
--kalign_binary_path=${EBROOTKALIGN}/bin/kalign \
--max_template_date=2022-01-01 \
--use_gpu_relax=True
#!/bin/bash
#SBATCH --job-name=alphafold_run
#SBATCH --account=def-someprof # ajustez ce paramètre à votre groupe comptable
#SBATCH --time=08:00:00 # ajustez ce paramètre au temps d'exécution souhaité
#SBATCH --cpus-per-task=8 # un MAXIMUM de 8 cœurs, AlphaFold n'a aucun avantage à en utiliser plus
#SBATCH --mem=20G # ajustez ce paramètre en fonction de la mémoire nécessaire
# Chargez les dépendances des modules.
module load StdEnv/2020 gcc/9.3.0 openmpi/4.0.3 cuda/11.4 cudnn/8.2.0 kalign/2.03 hmmer/3.2.1 openmm-alphafold/7.5.1 hh-suite/3.3.0 python/3.8
DOWNLOAD_DIR=$SCRATCH/alphafold/data # définissez le chemin approprié vers vos données téléchargées
INPUT_DIR=$SCRATCH/alphafold/input # définissez le chemin approprié vers vos données d'entrée
OUTPUT_DIR=${SCRATCH}/alphafold/output # définissez le chemin approprié vers vos données de sortie
# Créez votre environnement virtuel dans $SLURM_TMPDIR.
virtualenv --no-download ${SLURM_TMPDIR}/env
source ${SLURM_TMPDIR}/env/bin/activate
# Installez AlphaFold et ses dépendances.
pip install --no-index --upgrade pip
pip install --no-index --requirement ~/alphafold-requirements.txt
# Modifiez avec les arguments appropriés et exécutez vos commandes.
# Notez que l'option `--uniclust30_database_path` ci-dessous a été renommée
# `--uniref30_database_path` en version 2.3.
# run_alphafold.py --help
run_alphafold.py \
--fasta_paths=${INPUT_DIR}/YourSequence.fasta,${INPUT_DIR}/AnotherSequence.fasta \
--output_dir=${OUTPUT_DIR} \
--data_dir=${DOWNLOAD_DIR} \
--model_preset=monomer_casp14 \
--bfd_database_path=${DOWNLOAD_DIR}/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--mgnify_database_path=${DOWNLOAD_DIR}/mgnify/mgy_clusters_2018_12.fa \
--pdb70_database_path=${DOWNLOAD_DIR}/pdb70/pdb70 \
--template_mmcif_dir=${DOWNLOAD_DIR}/pdb_mmcif/mmcif_files \
--obsolete_pdbs_path=${DOWNLOAD_DIR}/pdb_mmcif/obsolete.dat \
--uniclust30_database_path=${DOWNLOAD_DIR}/uniclust30/uniclust30_2018_08/uniclust30_2018_08 \
--uniref90_database_path=${DOWNLOAD_DIR}/uniref90/uniref90.fasta \
--hhblits_binary_path=${EBROOTHHMINSUITE}/bin/hhblits \
--hhsearch_binary_path=${EBROOTHHMINSUITE}/bin/hhsearch \
--jackhmmer_binary_path=${EBROOTHMMER}/bin/jackhmmer \
--kalign_binary_path=${EBROOTKALIGN}/bin/kalign \
--max_template_date=2020-05-14 \
--use_gpu_relax=False
#!/bin/bash
#SBATCH --job-name=alphafold_run
#SBATCH --account=def-someprof # ajustez ce paramètre à votre groupe comptable
#SBATCH --time=08:00:00 # ajustez ce paramètre au temps d'exécution souhaité
#SBATCH --gres=gpu:1 # une carte graphique (GPU) aide à accélérer la partie inférence seulement
#SBATCH --cpus-per-task=8 # un MAXIMUM de 8 cœurs, AlphaFold n'a aucun avantage à en utiliser plus
#SBATCH --mem=20G # ajustez ce paramètre en fonction de la mémoire nécessaire
# Chargez les dépendances des modules.
module load StdEnv/2020 gcc/9.3.0 openmpi/4.0.3 cuda/11.4 cudnn/8.2.0 kalign/2.03 hmmer/3.2.1 openmm-alphafold/7.5.1 hh-suite/3.3.0 python/3.8
DOWNLOAD_DIR=$SCRATCH/alphafold/data # définissez le chemin approprié vers vos données téléchargées
INPUT_DIR=$SCRATCH/alphafold/input # définissez le chemin approprié vers vos données d'entrée
OUTPUT_DIR=${SCRATCH}/alphafold/output # définissez le chemin approprié vers vos données de sortie
# Créez votre environnement virtuel dans $SLURM_TMPDIR.
virtualenv --no-download ${SLURM_TMPDIR}/env
source ${SLURM_TMPDIR}/env/bin/activate
# Installez AlphaFold et ses dépendances.
pip install --no-index --upgrade pip
pip install --no-index --requirement ~/alphafold-requirements.txt
# Modifiez avec les arguments appropriés et exécutez vos commandes.
# Notez que l'option `--uniclust30_database_path` ci-dessous a été renommée
# `--uniref30_database_path` en version 2.3.
# run_alphafold.py --help
run_alphafold.py \
--fasta_paths=${INPUT_DIR}/YourSequence.fasta,${INPUT_DIR}/AnotherSequence.fasta \
--output_dir=${OUTPUT_DIR} \
--data_dir=${DOWNLOAD_DIR} \
--model_preset=monomer_casp14 \
--bfd_database_path=${DOWNLOAD_DIR}/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--mgnify_database_path=${DOWNLOAD_DIR}/mgnify/mgy_clusters_2018_12.fa \
--pdb70_database_path=${DOWNLOAD_DIR}/pdb70/pdb70 \
--template_mmcif_dir=${DOWNLOAD_DIR}/pdb_mmcif/mmcif_files \
--obsolete_pdbs_path=${DOWNLOAD_DIR}/pdb_mmcif/obsolete.dat \
--uniclust30_database_path=${DOWNLOAD_DIR}/uniclust30/uniclust30_2018_08/uniclust30_2018_08 \
--uniref90_database_path=${DOWNLOAD_DIR}/uniref90/uniref90.fasta \
--hhblits_binary_path=${EBROOTHHMINSUITE}/bin/hhblits \
--hhsearch_binary_path=${EBROOTHHMINSUITE}/bin/hhsearch \
--jackhmmer_binary_path=${EBROOTHMMER}/bin/jackhmmer \
--kalign_binary_path=${EBROOTKALIGN}/bin/kalign \
--max_template_date=2020-05-14 \
--use_gpu_relax=True
Soumettez la tâche à l'ordonnanceur.
Dépannage¶
Message d'erreur Broken pipe¶
Au téléchargement de la base de données, vous pourriez obtenir le message d'erreur Client_loop: send disconnect: Broken pipe. Il est difficile de déterminer la cause exacte de ce message. Il pourrait tout simplement s'agir qu'un nombre élevé d'utilisateurs travaillent sur le nœud de connexion en même temps, ce qui vous laisse moins de place pour téléverser des données.
-
Une solution est d'utiliser un multiplexeur de terminal. Il n'est pas impossible d'obtenir le message d'erreur, mais les chances sont moindres.
-
Une deuxième solution est d'utiliser la base de données qui se trouve sur la grappe :
/cvmfs/bio.data.computecanada.ca/content/databases/Core/alphafold2_dbs/2023_07/. -
Une autre solution est de télécharger la base de données par sections. Pour avoir accès aux scripts de téléchargement après avoir chargé le module et activé votre environnement virtuel, il faut simplement entrer
download_dans votre terminal et taper deux fois sur la touchetabdu clavier pour voir tous les scripts disponibles. Vous pouvez télécharger manuellement les sections de la base de données en utilisant le script disponible, par exempledownload_pdb.sh.