Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Alphafold

AlphaFold on DeepMindin kehittämä tekoälyjärjestelmä, joka ennustaa proteiinin 3D-rakenteen sen aminohapposekvenssin perusteella.

AlphaFold 3

AlphaFold 3 on saatavilla Mahdissa.

Lisenssi

AlphaFold 3:n päättelykoodi on saatavilla CC BY-NC-SA 4.0 -lisenssillä. Mallin parametrit ovat saatavilla erillisen käyttöehtosopimuksen alaisina, ja jokaisen käyttäjän on hankittava ne suoraan Googlelta AlphaFold 3 -dokumentaatiossa kuvatulla tavalla.

Saatavuus

  • Mahti: 3.0.1

Käyttö

Alustus Mahdissa:

module load alphafold

Saatavilla olevien komentorivikäyttöliittymävalintojen tulostaminen:

run_alphafold --helpshort

Tietokanta

Evoluutiohakuun tarvittavat geneettiset tietokannat sijaitsevat polussa /mnt/datasets/alphafold. CSC ylläpitää näistä tietokannoista yhtä versiota. Jos tarvitset eri version, voit ladata sen itse. Katso latausohjeet ja esimerkit työskripteistä. Tätä kirjoitettaessa tietokantojen koko oli noin 700 GB, ja niiden lataaminen kesti 30 minuuttia.

Esimerkkejä työskripteistä

Kaikki tässä olevat esimerkit käyttävät AlphaFold 3 GitHub-sivun esimerkkisyötettä:

{
  "name": "2PV7",
  "sequences": [
    {
      "protein": {
        "id": ["A", "B"],
        "sequence": "GMRESYANENQFGFKTINSDIHKIVIVGGYGKLGGLFARYLRASGYPISILDREDWAVAESILANADVVIVSVPINLTLETIERLKPYLTENMLLADLTSVKREPLAKMLEVHTGAVLGLHPMFGADIASMAKQVVVRCDGRFPERYEWLLEQIQIWGAKIYQTNATEHDHNMTYIQALRHFSTFANGLHLSKQPINLANLLALSSPIYRLELAMIGRLFAQDAELYADIIMDKSENLAVIETLKQTYDEALTFFENNDRQGFIDAFHKVRDWFGDYSEQFLKESRQLLQQANDLKQG"
      }
    }
  ],
  "modelSeeds": [1],
  "dialect": "alphafold3",
  "version": 1
}

Dataputken työ

Koska GPU:ita ei tarvita työvuon ensimmäisessä vaiheessa, tämä voi olla järkevää suorittaa CPU-solmulla seuraavasti:

#!/bin/bash
#SBATCH --job-name=AF3-data_pipeline
#SBATCH --account=project_xxxxxxx
#SBATCH --partition=small
#SBATCH --time=00:15:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=10G

module purge
module load alphafold/3.0.1

srun time run_alphafold --json_path=af_input/fold_input.json --output_dir=af_output --db_dir=/mnt/datasets/alphafold --norun_inference --run_data_pipeline --jackhmmer_n_cpu=8

Päättelytyö

Suorita sitten toinen vaihe GPU-solmulla.

#!/bin/bash
#SBATCH --job-name=AF3-inference-example
#SBATCH --account=project_2001659
#SBATCH --partition=gputest
#SBATCH --time=00:15:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=10G
#SBATCH --gres=gpu:a100:1

module purge
module load alphafold/3.0.1

time run_alphafold --json_path=af_output/2pv7/2pv7_data.json --model_dir=</path/to/dir/containing/weight/file/> --output_dir=af_output --run_inference --norun_data_pipeline

Dataputken työ käyttäen nopeaa paikallista levyä

Tietokannat on myös mahdollista kopioida solmun paikalliselle levylle. Koska tietokantojen kopioiminen paikalliselle levylle aiheuttaa jonkin verran ylimääräistä kuormaa (testauksen aikana siihen kului noin 40 minuuttia), tästä voi olla kokonaissuorituskyvyn kannalta hyötyä vain silloin, kun ajetaan suuria määriä isoja kyselyitä eräajona.

#!/bin/bash
#SBATCH --job-name=AF3-data_pipeline_local
#SBATCH --account=project_xxxxxxx
#SBATCH --partition=small
#SBATCH --time=01:15:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=10G
#SBATCH --gres=nvme:1000

module purge
module load alphafold/3.0.1

srun ls /mnt/datasets/alphafold
echo $LOCAL_SCRATCH
time cp -r /mnt/datasets/alphafold/* $LOCAL_SCRATCH
srun ls $LOCAL_SCRATCH
srun time run_alphafold --json_path=af_input/fold_input.json --output_dir=af_output2 --db_dir=$LOCAL_SCRATCH --norun_inference --run_data_pipeline --jackhmmer_n_cpu=8

Tietokantojen lataaminen

CSC ylläpitää näitä tietokantoja polussa /mnt/datasets/alphafold. Jos tarvitset uudemman version, voit ladata sen tällä työskriptillä ja tällä latausskriptillä.

#!/bin/bash
#SBATCH --job-name=AF3-data-download
#SBATCH --account=project_XXXXXXX
#SBATCH --partition=small
#SBATCH --time=01:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=10G

export DB_DIR=/scratch/${SLURM_JOB_ACCOUNT}/${USER}/db_dir

bash <path/to/script/>/fetch_databases.sh $DB_DIR

Töiden ketjuttaminen

Jos haluat ajaa ensin dataputken ja käynnistää sitten päättelytyön heti ensimmäisen valmistuttua, voit ketjuttaa ne näin:

sbatch run_datapipeline.slurm
sbatch --dependency=afterok:<JOBID> run_inference.slurm

Lisätietoja

Katso AlphaFold 3 -dokumentaatio.

AlphaFold 2

Alphafold 2 on saatavilla Puhdissa.

Lisenssi

Vapaasti käytettävissä ja avointa lähdekoodia Apache License 2.0 -lisenssillä.

Saatavuus

  • Puhti: 2.0.1, 2.3.0, 2.3.2-1

Käyttö

Alustus Puhdissa:

module load alphafold

Seuraavat ohjeet koskevat versiota 2.3.2-1 ja sitä uudempia versioita. Vanhempien versioiden osalta katso module load -komennon tulostama ohjeviesti.

AlphaFold-moduulin lataaminen tulostaa komentoja, joilla voit tarkistaa saatavilla olevat komentorivikäyttöliittymävalinnat, esimerkiksi:

python3 $ALPHAFOLD_DIR/run_singularity.py --helpshort

Saatavilla on esimerkkieräajotyöskriptejä:

$ALPHAFOLD_DIR/alphafold_cpu.slurm
$ALPHAFOLD_DIR/alphafold_gpu.slurm

Minkä version valitsen

AlphaFold-analyysi koostuu kolmesta vaiheesta: - Monisekvenssikohdistus (vain CPU) - Rakenteen ennustaminen (GPU käytössä) - Valinnainen: ketjun relaksaatio (GPU käytössä)

Monisekvenssikohdistusten rakentaminen vie huomattavan paljon aikaa, ja lyhyiden ja yksinkertaisten sekvenssien tapauksessa GPU nopeuttaa kokonaisaikaa vain vähän. Näissä tapauksissa saat todennäköisesti paremman läpimenon CPU-versiolla, koska CPU-resursseja on saatavilla enemmän.

Pidemmissä ja monimutkaisemmissa rakenteissa GPU nopeuttaa prosessia huomattavasti.

Tätä voi olla vaikea tietää etukäteen, joten tee hieman testausta. Jos ajo kestää CPU:lla yli 3–4 tuntia, sinun kannattaa kokeilla GPU:ta.

Tietokanta

AlphaFold tarvitsee toimiakseen joukon sekvenssitietokantoja. Näiden tietokantojen kokonaiskoko on lähes 3 TiB.

CSC ylläpitää kopiota näistä tietokannoista, joka on yhteensopiva uusimman AlphaFold-version kanssa. Tietokannat on liitetty kaikille laskentasolmuille polkuun /mnt/datasets/alphafold. Tietokantojen polku asetetaan muuttujalla $ALPHAFOLD_DATADIR. Katso käyttö esimerkkieräajo- työskripteistä.

export ALPHAFOLD_DATADIR=/mnt/datasets/alphafold

Näiden tietokantojen suuren koon vuoksi CSC pystyy ylläpitämään vain yhtä kopiota. Jos tarvitset eri version, sinun täytyy ladata oma kopiosi.

Voit seurata latausohjeita AlphaFoldin kotisivulla.

apptainer exec --bind /scratch $SING_IMAGE /scripts/download_all_data.sh <DOWNLOAD_DIR>

AlphaFold kuormittaa levy-I/O:ta erittäin paljon, joten käytössä tietokannat kannattaa kopioida hakemistoon $LOCAL_SCRATCH. Vaikka kopiointi vie jonkin verran aikaa (riippuu tiedostojärjestelmän kuormasta Puhdissa, mutta tyypillisesti noin 1 h), kokonaisaikasäästö ajossa on huomattava.

Kun kopioit tietokantoja hakemistosta /scratch hakemistoon $LOCAL_SCRATCH, sinun tulee välttää /scratch-tiedostojärjestelmän ylikuormittamista, joten aggressiivisia monisäikeisiä kopiointitapoja tulee välttää.

Käytä esimerkiksi:

cd $LOCAL_SCRATCH
cp -r /scratch/project_12345/alphafold_db .
export ALPHAFOLD_DATADIR=$LOCAL_SCRATCH/alphafold_db

Lisätietoja

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta