Alphafold

From HPC Guide
Jump to navigation Jump to search

Alphafold

AlphaFold is an artificial intelligence (AI) program developed by Alphabets's/Google's DeepMind which performs predictions of protein structure.


How to use

use run_alphafold.sh script located at /home/alphafold_folder/alphafold_multimer_non_docker (in compute-0-300)

script reference:

Usage: run_alphafold.sh <OPTIONS>
Required Parameters:
-d <data_dir>     Path to directory with supporting data: AlphaFold parameters and genetic and template databases. Set to the target of download_all_databases.sh.
-o <output_dir>   Path to a directory that will store the results.
-f <fasta_path>   Path to a FASTA file containing a single sequence.
-t <max_template_date> Maximum template release date to consider (ISO-8601 format: YYYY-MM-DD). Important if folding historical test sets.
Optional Parameters:
-n <openmm_threads>   OpenMM threads (default: all available cores)
-b <benchmark>    Run multiple JAX model evaluations to obtain a timing that excludes the compilation time, which should be more indicative of the time required for inferencing many proteins (default: false)
-g <use_gpu>      Enable NVIDIA runtime to run with GPUs (default: true)
-a <gpu_devices>  Comma separated list of devices to pass to 'CUDA_VISIBLE_DEVICES' (default: 0)
-m <model_preset>  Choose preset model configuration - the monomer model (monomer), the monomer model with extra ensembling (monomer_casp14), monomer model with pTM head (monomer_ptm), or multimer model (multimer) (default: monomer)
-p <db_preset>       Choose preset MSA database configuration - smaller genetic database config (reduced_dbs) or full genetic database config (full_dbs) (default: full_dbs)
-u <use_precomputed_msas>       Whether to read MSAs that have been written to disk. WARNING: This will not check if the sequence, database or configuration have changed. (default: false)
-r <remove_msas_after_use>       Whether, after structure prediction(s), to delete MSAs that have been written to disk to significantly free up storage space. (default: false)
-i <is_prokaryote>   Optional for multimer system, not used by the single chain system. This should contain a boolean specifying true where the target complex is from a prokaryote, and false where it is not, or where the origin is unknown. These values determine the pairing method for the MSA (default: false)

Databases

We downloaded the databases to /home/alphafold_folder/alphafold_data on compute-0-300 you may use it, or copy it to your own storage and point to it with -d flag of the run script. also, you may download the databases to your own storage via the script download_all_data.sh located at /home/alphafold_folder/alphafold_multimer_non_docker/scripts/


Sample qsub script

Note:

create folder for output in your home dir mkdir ~/alphafold_output then run the script

  • you may download dummy_test folder from this github as well for the output

https://github.com/kalininalab/alphafold_non_docker

  • /home/alphafold_folder/alphafold_multimer_non_docker/example/query.fasta = this is sample data, please point to the data you need to query.
  • The lines export CUDA_VISIBLE_DEVICES=$(python3 /powerapps/scripts/check_avail_gpu.py) and the flag -a $CUDA_VISIBLE_DEVICES make it so you can use the next free GPU on the server, please leave it as is.
#!/bin/bash
#PBS -l select=1:ncpus=4:ngpus=1
#PBS -q gpu

# Description: AlphaFold-Multimer (Non-Docker) with auto-gpu selection
# Original Author: Lev Arie Krapivner

# load miniconda
module load miniconda/miniconda3-4.7.12-environmentally
# activate relevant venv
conda activate /powerapps/share/centos7/miniconda/miniconda3-4.7.12-environmentally/envs/alphafold_non_docker
# run alphafold
cd /home/alphafold_folder/alphafold_multimer_non_docker/
# call to check_available_gpu python script
# returns the param for CUDA_VISIBLE_DEVICE which the run alphafold script uses

export CUDA_VISIBLE_DEVICES=$(python3 /powerapps/scripts/check_avail_gpu.py)
# echo "CUDA_VISIBLE_DEVICES: $CUDA_VISIBLE_DEVICES"
bash run_alphafold.sh -d /home/alphafold_folder/alphafold_data -o ~/output_dir -f /home/alphafold_folder/alphafold_multimer_non_docker/example/query.fasta -t 2020-05-14 -a $CUDA_VISIBLE_DEVICES

Sample qsub script 2

Note:

create folder for output in your home dir mkdir ~/alphafold_output then run the script

#!/bin/bash
#PBS -l select=1:ncpus=4:ngpus=1
#PBS -q gpu

# Description: AlphaFold-Multimer (Non-Docker) with auto-gpu selection
# Original Author: Lev Arie Krapivner

# load conda env
module load alphafold/alphafold_non_docker_2.2.0
cd /home/alphafold_folder/alphafold_multimer_non_docker/
# call to check_available_gpu python script
# returns the param for CUDA_VISIBLE_DEVICE which the run alphafold script uses

export CUDA_VISIBLE_DEVICES=$(python3 /powerapps/scripts/check_avail_gpu.py)
# echo "CUDA_VISIBLE_DEVICES: $CUDA_VISIBLE_DEVICES"
run_alphafold.sh -d PATH_TO_DATABNASE_FOLDER -o ~/output_dir -f PATH_TO_FASTA_FILE -t 2020-05-14 -a $CUDA_VISIBLE_DEVICES


Alphafold - non_docker source