Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

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 inferenssikoodi on saatavilla CC BY-NC-SA 4.0 -lisenssillä. Malliparametrit ovat saatavilla erillisen käyttöehtosopimuksen perusteella, ja jokaisen käyttäjän on hankittava ne suoraan Googlelta AlphaFold 3 -dokumentaatiossa kuvatulla tavalla.

Saatavilla

  • Mahti: 3.0.1

Käyttö

Alusta Mahdissa komennolla:

module load alphafold

Saat näkyviin käytettävissä olevat komentorivikäyttöliittymän valinnat:

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 työjonoskriptiesimerkit. Tätä kirjoitettaessa tietokantojen koko oli noin 700 GB, ja niiden lataaminen kesti 30 minuuttia.

Työjonoskriptiesimerkit

Kaikissa tässä olevissa esimerkeissä käytetään 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önkulun 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

Inferenssityö

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 lisä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öjonoskriptillä 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 inferenssityö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ä.

Saatavilla

  • Puhti: 2.0.1, 2.3.0, 2.3.2-1

Käyttö

Alusta Puhdissa komennolla:

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 käytettävissä olevat komentorivikäyttöliittymän valinnat, esimerkiksi:

python3 $ALPHAFOLD_DIR/run_singularity.py --helpshort

Saatavilla on esimerkkieräajotiedostoja:

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

Mikä versio kannattaa valita

AlphaFold-analyysi koostuu kolmesta vaiheesta: - Monisekvenssikohdistus (vain CPU) - Rakenteen ennustus (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 enemmän saatavilla.

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, 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öä varten esimerkkieräajo- skriptit.

export ALPHAFOLD_DATADIR=/mnt/datasets/alphafold

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

Voit seurata AlphaFoldin kotisivun latausohjeita.

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

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

Kun kopioit tietokantoja /scratchista muuttujaan $LOCAL_SCRATCH, sinun tulee välttää /scratchin 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