-
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 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:
Saat näkyviin käytettävissä olevat komentorivikäyttöliittymän valinnat:
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:
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:
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:
Saatavilla on esimerkkieräajotiedostoja:
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.
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.
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
- AlphaFoldin kotisivu
- Puhti-asennus perustuu Alphafold_singularityyn