AlphaFold 3
Dieses Tutorial führt Sie durch die vier Schritte, die Sie einmalig vor dem Ausführen von AlphaFold 3 auf dem Cluster erledigen müssen – Modul laden, Modellgewichte beschaffen, genetische Datenbanken herunterladen – und zeigt dann, wie Sie eine Vorhersage starten. Das Modul stellt ein schlankes alphafold3-Wrapper-Skript bereit, das den apptainer exec --rocm --bind ...-Aufruf kapselt; Sie geben Ihre Daten über Umgebungsvariablen an und nutzen die gleichen Flags wie bei run_alphafold.py im Original.
1. Modul laden
Der labs-test Modulbaum ist nicht standardmäßig im MODULEPATH. Fügen Sie ihn hinzu und laden Sie AlphaFold 3:
module use --append /cluster/labs/modulefiles-test
module load alphafold3/3.0.2-rocmFügen Sie die module use-Zeile zu Ihrer ~/.bashrc (oder Ihrem Slurm-Jobskript) hinzu, wenn Sie sie nicht in jeder Sitzung erneut eingeben möchten.
Nach dem Laden stehen Ihnen zur Verfügung:
alphafold3— Wrapper, derrun_alphafold.pyim Container ausführtalphafold3-shell— Interaktive Shell im Container$ALPHAFOLD3_SIF— Absoluter Pfad zur SIF-Datei für eigeneapptainer-Aufrufe
module help alphafold3/3.0.2-rocm fasst dies auch auf der Kommandozeile zusammen.
2. Modellparameter beschaffen
Die Modellgewichte dürfen nicht weiterverteilt werden. Fordern Sie sie über dieses Formular bei Google DeepMind an – der Zugang wird in der Regel innerhalb von 2–3 Werktagen gewährt.
Nach Erhalt des Download-Links entpacken Sie das Archiv auf Ihrem Gruppenlaufwerk oder Scratch und verweisen Sie den Wrapper darauf:
export ALPHAFOLD3_MODEL_DIR=/pfad/zu/alphafold3_model_parametersDer Wrapper bindet dieses Verzeichnis im Container als /root/models ein.
3. Öffentliche Datenbanken herunterladen
AlphaFold 3 benötigt ca. 650 GB an Sequenz-/Strukturdatenbanken (BFD, MGnify, PDB, UniProt, UniRef90, NT, RFam, RNACentral). Der Container enthält fetch_databases.sh, das alle Datenbanken parallel herunterlädt und entpackt – etwa 45 Minuten bei schneller Verbindung.
Wählen Sie ein Verzeichnis mit ausreichend Speicherplatz (Gruppenlaufwerk oder Scratch – nicht Ihr Home), dann:
mkdir -p /pfad/zu/public_databases
apptainer exec "$ALPHAFOLD3_SIF" \
/workspace/fetch_databases.sh /pfad/zu/public_databasesFühren Sie dies in tmux oder screen aus, damit ein Verbindungsabbruch den Download nicht abbricht. Nach Abschluss exportieren Sie den Pfad:
export ALPHAFOLD3_DB_DIR=/pfad/zu/public_databasesWenn Sie eine schnelle SSD plus ein langsameres Fallback haben, geben Sie beide als Doppelpunkt-getrenntes Paar an – der Wrapper bindet sie als /root/public_databases und /root/public_databases_fallback ein:
export ALPHAFOLD3_DB_DIR=/ssd/af3_dbs:/lustre/af3_dbs4. Vorhersage starten
Legen Sie Ihre Eingabe-JSON in ~/af_input/ ab (oder überschreiben Sie ALPHAFOLD3_INPUT_DIR). Ergebnisse landen in ~/af_output/ (oder ALPHAFOLD3_OUTPUT_DIR).
mkdir -p ~/af_input ~/af_output
cp my_fold.json ~/af_input/fold_input.json
alphafold3 \
--json_path=/root/af_input/fold_input.json \
--model_dir=/root/models \
--output_dir=/root/af_outputBeachten Sie, dass die Pfade in den Flags container-interne Mountpoints (/root/...) sind, nicht Host-Pfade – diese werden durch das Bind-Layout des Wrappers festgelegt. Die Host-Verzeichnisse kommen von den oben gesetzten Umgebungsvariablen.
Spezifische GPU auswählen
ROCR_VISIBLE_DEVICES=1 alphafold3 ...GPU-Zugriff prüfen
apptainer exec --rocm "$ALPHAFOLD3_SIF" rocm-smiAlle run_alphafold.py-Flags auflisten
apptainer exec --pwd /workspace "$ALPHAFOLD3_SIF" python3 run_alphafold.py --helpReferenz
Die Originaldokumentation finden Sie im AlphaFold 3 GitHub-Repository – siehe README.md und docs/installation.md für die vollständige Flag-Referenz, das Eingabe-JSON-Schema und Hintergrundinfos.
Hinweis: Die Originalbefehle zielen auf NVIDIA-GPUs und Docker (
docker run --gpus all alphafold3 python run_alphafold.py ...). Auf diesem Cluster ersetzen Sie diesen Aufruf durchalphafold3 ...nachmodule load alphafold3/3.0.2-rocm– der Wrapper übernimmt--rocm, den SIF-Pfad, das Arbeitsverzeichnis/workspaceund alle benötigten Bind-Mounts. Die Flag-Argumente fürrun_alphafold.pybleiben unverändert.