Hyppää sisältöön

A new version of SD Connect and SD Desktop will be available from Monday, September 28. The major upgrade will introduce significant improvements, but also includes changes that are not compatible with the current version of the service. Click here to review the available support materials.

Warning!

Puhti and Mahti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti and Mahti login nodes and storage services are planned to remain available until 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

iPyrad

iPyrad on interaktiivinen työkalupakki restriktiokohtiin liittyvien genomisten datajoukkojen (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

  • Roihu: 0.9.102 (moduuli py-ipyrad), bio-apps-moduulin kautta.

Käyttö

iPyrad on osa bio-apps -kokoelmaa Roihussa. Lataa ensin bio-apps-moduulipuu ja sitten iPyrad-moduuli:

module load bio-apps/v202603
module load py-ipyrad/0.9.102

Huomio

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 alla olevalla komennolla. Roihun interactive-osiolla jokainen varattu ydin tarjoaa 1,875 Gt muistia (enintään 32 ydintä / 60 Gt / 36 tuntia), joten pyydä riittävästi ytimiä tarvitsemaasi muistimäärää varten — tässä 9 ydintä (noin 17 Gt):

sinteractive --account <project> --cores 9

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

ipyrad -n run1

Tämä luo uuden parametritiedoston (params-run1.txt), jota tulee muokata analyysitapauksesi mukaan esimerkiksi tekstieditorilla kuten nano.

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 Roihussa

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 run1_edits-hakemiston sisältöön. Tarkistaaksesi, kuinka monta näytettä analysoidaan, voit esimerkiksi laskea tiedoston s2_rawedit_stats.txt rivit.

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 rinnakkaistuksen toteutus edellyttää, että yhdessä noodissa on aina käynnissä vain yksi iPyrad-"tehtävä". Tämä tarkoittaa, että eräajon parametrin tulee aina olla --ntasks-per-node=1. Voit kuitenkin määrittää, että tämä tehtävä käyttää useita ytimiä parametrilla --cpus-per-task. Esimerkiksi jos määrittäisit eräajon tehtävien määräksi 2 (--ntasks=2) ja yhden tehtävän käyttämien ytimien määräksi 8 (--cpus-per-task=8), työ 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. Roihussa yhden noodin työ small-osiolla voi kestää enintään 3 päivää; jos ajoajan odotetaan olevan pidempi, lähetä työ longrun-osiolle (#SBATCH --partition=longrun, enintään 10 päivää). Tässä varaamme 72 tuntia (3 päivää). Lisäksi vaiheessa 3 klusterointikomennot suoritetaan 20 ytimellä (-c 20), joista kukin ajaa yhtä säiettä (-t 1).

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

module load bio-apps/v202603
module load py-ipyrad/0.9.102

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ääritysvaihtoehto tulee aina asettaa, sillä iPyradin oletusasetukset eivät sovellu eräajoihin.

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

module load bio-apps/v202603
module load py-ipyrad/0.9.102

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

Lisätietoa eräajojen suorittamisesta löytyy sivulta eräajokomentosarjan luominen Roihulle.

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

Roihussa enimmäisajoaika on 10 päivää (longrun-osio). Joissakin tapauksissa iPyrad-analyysin vaiheen 3 suorittaminen voi kestää vielä pidempään. Näissä tapauksissa voit käyttää cPouta-pilvipalvelua oman virtuaalikoneesi pystyttämiseen.

Tuki

CSC Service Desk

Lisätietoja

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta