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.

iPyrad

iPyrad on interaktiivinen työkalupakki restriktiokohtiin liittyvien genomisten aineistojen (esim. RAD, ddRAD, GBS) kokoamiseen ja analysointiin populaatiogeneettisiä ja fylogeneettisiä tutkimuksia varten.

Lisenssi

Vapaasti käytettävissä ja avointa lähdekoodia GNU GPLv3 -lisenssillä.

Saatavuus

  • Puhti: 0.9.84, 0.9.85, 0.9.92

Käyttö

Puhdissa iPyradia voidaan käyttää lataamalla ipyrad-moduuli:

module load ipyrad

Huomaa

Varsinainen ipyrad-komento tulee aina suorittaa eräajoympäristössä.

iPyrad-tehtäville, jotka eivät ole laskennallisesti raskaita, interaktiivinen eräajo tarjoaa hyvän ympäristön ilman jonotusta tehtävien välillä.

Voit avata interaktiivisen eräajoistunnon komennolla:

sinteractive -m 16G

iPyrad-käsittely voidaan nyt käynnistää komennolla:

ipyrad -n taskname

Tämä luo uuden parametritiedoston (params-taskname.txt), jota tulee muokata analyysitapauksesi mukaisesti.

Esimerkiksi työn nimeltä run1 tapauksessa:

ipyrad -n run1
module load nano
nano params-run1.txt

Kun parametritiedosto on valmis, voit käynnistää varsinaisen iPyrad-analyysin. Interaktiivisissa eräajoissa voit suorittaa pieniä tehtäviä, jotka käyttävät vain yhtä laskentaydintä. Siksi sinun tulee lisätä määrittely -c 1 ipyrad-komentoon:

ipyrad -p params-run1.txt -s 1234567 -c 1

Raskaiden iPyrad-ajojen suorittaminen Puhdissa

Jos analysoit suuria aineistoja, on suositeltavaa suorittaa iPyrad-prosessi useassa vaiheessa. Jotkin iPyrad-analyysin vaiheet voivat hyödyntää rinnakkaislaskentaa. Käsittelyn nopeuttamiseksi voit suorittaa nämä analyysivaiheet tavallisina eräajoina.

Kaksi ensimmäistä vaihetta suoritetaan yleensä melko nopeasti, ja voit ajaa ne interaktiivisessa eräajoympäristössä (katso yllä). Esimerkiksi työn run1 tapauksessa:

ipyrad -p params-run1.txt -s 12 -c 1

iPyrad-analyysin kolmas vaihe suorittaa klusteroinnin jokaiselle näytejoukolle. Ennen tämän vaiheen käynnistämistä tutustu ensin vaiheen 2 luoman jobname_edits-hakemiston sisältöön. Tarkistaaksesi, kuinka monta näytettä analysoidaan, voit esimerkiksi laskea tiedoston s2_rawedit_stats.txt rivien määrän.

Esimerkiksi:

cd run1_edits
ls -l
wc -l s2_rawedit_stats.txt

Näytteiden määrä on rinnakkaisissa eräajoissa käytettävien rinnakkaisprosessien enimmäismäärä. Käytännössä kannattaa käyttää arvoa, joka on noin puolet näytteiden määrästä. Esimerkiksi jos *_edits-hakemistossa on 24 näytettä, voit harkita 12–16 ytimen käyttöä.

iPyradin rinnakkaistoteutus edellyttää, että yhdessä noodissa on aina käynnissä vain yksi iPyrad-"task". Tämä tarkoittaa, että eräajon parametrin tulee aina olla --ntasks-per-node=1. Voit kuitenkin määrittää, että tämä task käyttää useita ytimiä parametrilla --cpus-per-task. Esimerkiksi jos määrittäisit eräajon taskien määräksi 2 (--ntasks=2) ja yhden taskin käyttämien ytimien määräksi 8 (--cpus-per-task=8), työsi käyttäisi 2 * 8 = 16 ydintä.

Tämä ytimien määrä (--ntasks * --cpus-per-task) annetaan sitten iPyrad-komennolle valitsimella -c. Tämä on kriittistä, sillä muuten iPyrad käyttää vain yhtä ydintä, vaikka Slurmilta olisi pyydetty --cpus-per-task=8. Lisäksi jos käytät useampaa kuin yhtä noodia, sinun tulee määrittää, että MPI on käytössä (--MPI) ja että työnkulun komennot suoritetaan käyttäen vain yhtä laskentaydintä (-t).

Tässä esimerkkitapauksessa käytämme 20 ydintä yhdessä noodissa. Jos ajoajan odotetaan olevan yli 3 päivää, työ tulee lähettää longrun-partitioon (#SBATCH --partition=longrun). Tässä tapauksessa varaamme 72 tuntia (3 päivää). Lisäksi vaiheessa 3 klusterointikomennot suoritetaan käyttäen 20 ydintä (-c 20), joista kukin ajaa yhtä säiettä (-t 1).

#!/bin/bash -l
#SBATCH --job-name=ipyrad_s3
#SBATCH --error=ipyrad_err_%j
#SBATCH --output=put=ipyrad_output_%j
#SBATCH --mem=128G
#SBATCH --account=<project>
#SBATCH --time=72:00:00
#SBATCH --ntasks=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=20
#SBATCH --partition=small

module load ipyrad
ipyrad -p params-run1.txt -s 3 -c 20 -t 1 

Eräajo käynnistetään komennolla:

sbatch ipyrad_batch_job_file.sh

Kun työ on valmistunut, voit ajaa seuraavan vaiheen korvaamalla -s 3 arvolla -s 4 jne.

Vaiheille 4–7 suositellaan enintään 8 ydintä. Säikeiden määrittelyvalitsin tulee aina asettaa, sillä iPyradin oletusasetukset eivät sovellu eräajoihin.

#!/bin/bash -l
#SBATCH --job-name=ipyrad_s4567
#SBATCH --error=ipyrad_err_%j
#SBATCH --output=put=ipyrad_output_%j
#SBATCH --mem=128G
#SBATCH --account=<project>
#SBATCH --time=72:00:00
#SBATCH --ntasks=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=8
#SBATCH --partition=small

module load ipyrad
ipyrad -p ipyrad-run1.txt -s 4567 -c 8 -t 1 

Lisätietoja eräajojen suorittamisesta löytyy Puhdin käyttöoppaan eräajo-osiosta.

cPoudan käyttäminen erittäin pitkiin iPyrad-ajoihin

Puhdin enimmäisajoaika on 14 päivää. Joissakin tapauksissa iPyrad-analyysin vaiheen 3 suorittaminen voi kestää vielä pidempään. Näissä tapauksissa voit käyttää cPouta-pilvipalvelua oman virtuaalikoneesi pystyttämiseen.

Lisätietoja

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta