-
Alphafold
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:
Saatavilla olevien komentorivikäyttöliittymävalintojen tulostaminen:
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:
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:
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:
Saatavilla on esimerkkieräajotyöskriptejä:
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ä.
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.
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
- AlphaFoldin kotisivu
- Puhti-asennus perustuu Alphafold_singularityyn