Μετάβαση στο περιεχόμενο

AlphaFold

Το AlphaFold είναι ένα σύστημα τεχνητής νοημοσύνης που αναπτύχθηκε από την Google DeepMind και χρησιμοποιείται για την πρόβλεψη της τρισδιάστατης δομής πρωτεϊνών με βάση την αλληλουχία των αμινοξέων τους.

AlphaFold 3

Terms of use για τα model parameters

Τα βάρη του μοντέλου (model parameters) δεν διανέμονται μαζί με τον πηγαίο κώδικα ή το container και η χρήση τους υπόκειται στους συγκεκριμένους όρους χρήσης (WEIGHTS_TERMS_OF_USE.md). Στην Αριστοτέλης τα βάρη τοποθετούνται σε κοινόχρηστο, διαχειριζόμενο από την ΙΤ φάκελο και είναι ήδη διαθέσιμα μέσω --model_dir=/data/models όταν τρέχετε το container (βλ. το παράδειγμα SLURM script παρακάτω). Παρακαλούμε βεβαιωθείτε ότι η χρήση του λογισμικού και των model parameters δεν γίνεται για εμπορικούς σκοπούς και είναι σύμφωνη με τους όρους χρήσης στον παραπάνω σύνδεσμο.

Παράδειγμα χρήσης

Το script υποβολής της εργασίας, έστω AlphaFold-v3.0.2-Aristotle.sh, θα έχει την ακόλουθη μορφή:

SLURM submission script
#!/bin/bash
#SBATCH --job-name=AlphaFold-First-Prediction
#SBATCH --nodes=1
#SBATCH --partition=ampere
#SBATCH --gpus=1
#SBATCH --cpus-per-task=8
#SBATCH --time=4:00:00

module load alphafold3/v3.0.2

export JAX_PLATFORMS=cuda,cpu
export XLA_PYTHON_CLIENT_PREALLOCATE=true
export XLA_CLIENT_MEM_FRACTION=0.95

time srun alphafold3 python3 /alphafold3/run_alphafold.py --json_path=fold_input.json --output_dir=af_output --db_dir=/data/public_databases --model_dir=/data/models --run_data_pipeline=true --run_inference=true

Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο

# mkdir AlphaFold-v3.0.2-Aristotle
# cd AlphaFold-v3.0.2-Aristotle

Εκεί μέσα τοποθετούμε: - το αρχείο AlphaFold-v3.0.2-Aristotle.sh που είδαμε παραπάνω και - ένα αρχείο εισόδου (π.χ. το fold_input.json)

Info

Τεκμηρίωση για τη δομή των αρχείων εισόδου για την εφαρμογή AlphaFold μπορεί να βρει ο ενδιαφερόμενος αναγνώστης εδώ.

Τα αρχεία αυτά μπορούμε να τα φτιάξουμε και να τα τροποποιήσουμε με κάποιον editor (π.χ. nano ή vi) ή να τα κατεβάσουμε τοπικά στο φάκελο που φτιάξαμε παραπάνω με το εργαλείο wget χρησιμοποιώντας τις εξής δύο εντολές:

# wget https://hpc.it.auth.gr/_snippets/AlphaFold-v3.0.2-Aristotle.sh
# wget https://hpc.it.auth.gr/applications/assets/fold_input.json

Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:

# sbatch AlphaFold-v3.0.2-Aristotle.sh

Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.

Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:

# tail -f slurm-*.out

Εκτέλεση χωρίς GPU (v3.0.4)

Η έκδοση v3.0.4 είναι η πρώτη που υποστηρίζει την εκτέλεση του inference σε CPU αντί για GPU, μέσω της παραμέτρου --jax_backend=cpu (πιο αργή από GPU, αλλά χρήσιμη όταν δεν χρειάζεστε ή δεν έχετε πρόσβαση σε GPU partition). Το script υποβολής, έστω AlphaFold-v3.0.4-Aristotle-CPU.sh, θα έχει την ακόλουθη μορφή:

SLURM submission script (CPU-only)
#!/bin/bash
#SBATCH --job-name=AlphaFold-CPU-Prediction
#SBATCH --nodes=1
#SBATCH --partition=rome
#SBATCH --cpus-per-task=16
#SBATCH --time=8:00:00

module load alphafold3/v3.0.4

time srun alphafold3 python3 /alphafold3/run_alphafold.py --jax_backend=cpu --flash_attention_implementation=xla --json_path=fold_input.json --output_dir=af_output --db_dir=/data/public_databases --model_dir=/data/models --run_data_pipeline=true --run_inference=true

Η υποβολή γίνεται με τον ίδιο τρόπο όπως παραπάνω, απλά χρησιμοποιώντας module load alphafold3/v3.0.4 αντί για v3.0.2.