Μετάβαση στο περιεχόμενο

Περιγραφή

openCARP is an open cardiac electrophysiology simulator for in-silico experiments.

Home Page

openCARP-11.0

Αρχικοποίηση ρυθμίσεων

Για την εκτέλεση της εφαρμογής openCARP χρειάζεται να έχουμε φτιάξει ένα αρχείο ρυθμίσεων στο φάκελο ~/.config/carputils/settings.yaml. Εάν το αρχείο αυτό υπάρχει ήδη τότε το βήμα αυτό μπορεί να παραληφθεί. Αν όχι το βήμα αυτό θα χρειαστεί να το εκτελέσετε μόνο μία φορά πριν την εκτέλεση των παραδειγμάτων που ακολουθούν.

Έλεγχος ύπαρξης αρχείου ρυθμίσεων

Για να ελέγξετε αν υπάρχει το αρχείο ρυθμίσεων εκτελούμε την παρακάτω εντολή:

# ls -la ~/.config/carputils/settings.yaml

Αν υπάρχει τότε μπορούμε να προχωρήσετε στην παράγραφο Παράδειγμα χρήσης παρακάτω

Εφόσον το αρχείο ρυθμίσεων δεν υπάρχει για να το κατασκευάσουμε κατόπιν νέου login εκτελούμε διαδοχικά τις εξής δύο εντολές:

# module load gcc/9.4.0-eewq4j6  openmpi/4.1.4-btetwly opencarp/11.0-jm36sfo py-numpy/1.23.4-w4wy7j4 py-carputils/oc11.0-qm2676x
# cusettings --mpiexec srun ~/.config/carputils/settings.yaml

Παραδείγματα χρήσης

Single Cell

Ξεκινάμε κάνοντας clone το openCARP experiments repository.

# git clone https://git.opencarp.org/openCARP/experiments.git openCARP_experiments

Έπειτα μεταβαίνουμε στο φάκελο του παραδείγματος

# cd ~/openCARP_experiments/tutorials/01_EP_single_cell/01_basic_bench

Για να αποθηκεύονται τα plots που παράγονται από την batch εργασία, μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή:

#  sed -i s/'plt.show()'/'plt.savefig("myplot")'/g run.py

Με τον τρόπο αυτό αντικαθιστούμε τις εντολές plt.show της matplotlib που χρησιμοποιούνται για την εμφάνιση μίας γραφικής παράστασης, με εντολές plt.savefig που αποθηκεύουν σε ένα αρχείο το ίδιο αποτέλεσμα. Έτσι, αφού ολοκληρωθεί η εργασία, θα πρέπει να έχει παραχθεί το αρχείο myplot.svg.

Στην συνέχεια, συντάσουμε ένα νέο αρχείο:

SLURM single cell example submission script

#!/bin/bash
#SBATCH --job-name=openCARP
#SBATCH --partition=rome
#SBATCH --time=10:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8

module purge
module load gcc/9.4.0-eewq4j6  openmpi/4.1.4-btetwly opencarp/11.0-jm36sfo py-numpy/1.23.4-w4wy7j4 py-carputils/oc11.0-qm2676x

# run openCARP basic single cell tutorial
./run.py --np $SLURM_NTASKS --EP tenTusscherPanfilov --duration 5000 --bcl 500 --ID exp01 --visualize

η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:

# sbatch opencarp-11.0-single-cell.sh

Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.

Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:

# tail -f slurm-*.out

Μόλις η εργασία ολοκληρωθεί, μπορούμε να δούμε ότι στον φάκελο υποβολής έχει παραχθεί το directory με τα αρχεία εξόδου exp01. Μπορούμε να δούμε το περιεχόμενό του, για παράδειγμα ως εξής:

# ls exp01

Basic tissue EP

Μεταβαίνουμε στο φάκελο όπου περιέχεται το συγκεκριμένο παράδειγμα

# cd ../../02_EP_tissue/01_basic_usage

Για το συγκεκριμένο παράδειγμα το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:

SLURM basic tissue example submission script

#!/bin/bash
#SBATCH --job-name=openCARP
#SBATCH --partition=rome
#SBATCH --time=10:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8

module purge
module load gcc/9.4.0-eewq4j6  openmpi/4.1.4-btetwly opencarp/11.0-jm36sfo py-numpy/1.23.4-w4wy7j4 py-carputils/oc11.0-qm2676x

# run openCARP basic tissue tutorial
./run.py --np $SLURM_NTASKS --duration 20 --S1-strength 20. --S1-dur 15

Η υποβολή της εργασίας γίνεται με την εντολή sbatch opencarp-11.0-tissue.sh, όπως στο προηγούμενο παράδειγμα.

openCARP/0f7d8000

Παραδείγματα χρήσης

Ως πρώτο βήμα για την εκτέλεση των openCARP tutorials θα χρειαστεί να δημιουργήσουμε το αρχείο settings.yaml. Μπορούμε αρχικά να αντιγράψουμε το αντίστοιχο αρχείο που υπάρχει στην εγκατάσταση του openCARP στην υπολογιστική συστοιχία και εάν χρειάζεται, μπορούμε να τροποποιήσουμε τα settings στην συνέχεια. Για να αντιγράψουμε τα default settings, θα χρειαστεί να τρέξουμε τις παρακάτω εντολές:

# module load openCARP
# mkdir -p $HOME/.config/carputils
# cp $OPENCARP_INST/settings.yaml $HOME/.config/carputils/settings.yaml

Σε περίπτωση που θέλουμε να τοποθετήσουμε το αρχείο settings.yaml σε διαφορετικό path, θα χρειαστεί να ορίσουμε την μεταβλητή CARPUTILS_SETTINGS.

Η ρύθμιση MPIEXEC: srun στο αρχείο settings.yaml είναι σημαντικό να μην τροποποιηθεί, καθώς είναι απαραίτητη για την παράλληλη εκτέλεση των openCARP εργασιών στην συστοιχία Αριστοτέλης.

Επιπλέον, στο $HOME μας στο login node, μπορούμε να κάνουμε clone το openCARP experiments repository.

# git clone https://git.opencarp.org/openCARP/experiments.git openCARP_experiments

Basic single cell EP

Το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:

SLURM submission script
#!/bin/bash
#SBATCH --job-name=opencarp-case
#SBATCH --partition=batch
#SBATCH --time=10:00
#SBATCH --nodes=1
#SBATCH --ntasks=4

module load gcc py-numpy
module load openCARP

# run openCARP basic single cell tutorial
./run.py --np $SLURM_NTASKS --EP TT2 --duration 5000 --bcl 500 --ID exp01 --visualize

Για το παράδειγμά μας θα χρησιμοποιήσουμε τα 01_ep_single_cell/01_basic_bench experiment.

Στην συνέχεια, μεταφερόμαστε στον φάκελο του πρώτου παραδείγματος, όπου τοποθετούμε το script υποβολής της εργασίας, έστω opencarp-single-cell.sh.

# cd ~/openCARP_experiments/tutorials/01_EP_single_cell/01_basic_bench

Για να αποθηκεύονται τα plots που παράγονται από την batch εργασία σε μορφή svg, μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή:

#  sed -i s/'plt.show()'/'plt.savefig("myplot")'/g run.py

Με τον τρόπο αυτό αντικαθιστούμε τις εντολές plt.show της matplotlib που χρησιμοποιούνται για την εμφάνιση μίας γραφικής παράστασης, με εντολές plt.savefig που αποθηκεύουν σε ένα αρχείο το ίδιο αποτέλεσμα. Έτσι, αφού ολοκληρωθεί η εργασία, θα πρέπει να έχει παραχθεί το αρχείο myplot.svg.

Στην συνέχεια, η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:

# sbatch opencarp-single-cell.sh

Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.

Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:

# tail -f slurm-*.out

Μόλις η εργασία ολοκληρωθεί, μπορούμε να δούμε ότι στον φάκελο υποβολής έχει παραχθεί το directory με τα αρχεία εξόδου exp01. Μπορούμε να δούμε το περιεχόμενό του, για παράδειγμα ως εξής:

# ls exp01

Basic tissue EP

Για το συγκεκριμένο παράδειγμα, θα πρέπει να επιλέξουμε FLAVOR: petsc στο αρχείο settings.yaml.

Το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:

SLURM submission script
#!/bin/bash
#SBATCH --job-name=opencarp-case
#SBATCH --partition=batch
#SBATCH --time=10:00
#SBATCH --nodes=1
#SBATCH --ntasks=4

module load openCARP
module load gcc py-scipy py-numpy

# run openCARP basic tissue tutorial
./run.py --np $SLURM_NTASKS --duration 20 --S1-strength 20. --S1-dur 15

Για το παράδειγμά μας θα χρησιμοποιήσουμε τα 02_EP_tissue/01_basic_usage.

Στην συνέχεια, μεταφερόμαστε στον φάκελο του πρώτου παραδείγματος, όπου τοποθετούμε το script υποβολής της εργασίας, έστω opencarp-tissue.sh.

# cd ~/openCARP_experiments/tutorials/02_EP_tissue/01_basic_usage

Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh>, όπως στο προηγούμενο παράδειγμα.

Conda environment

Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε ένα conda environment στο οποίο έχουμε προσθέσει τα python modules που χρειάζονται για το case που θέλουμε να τρέξουμε.

Για παράδειγμα, μπορούμε να τρέξουμε τα παραπάνω παραδείγματα, ενεργοποιώντας το environment: /mnt/apps/prebuilt/openCARP/env στο οποίο έχουν προστεθεί οι python βιβλιοθήκες: numpy, scipy, matplotlib.

Σε αυτή την περίπτωση, το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:

SLURM submission script
#!/bin/bash
#SBATCH --job-name=opencarp-case
#SBATCH --partition=batch
#SBATCH --time=10:00
#SBATCH --nodes=1
#SBATCH --ntasks=4

module load openCARP
module load gcc miniconda3

# activate conda environment
source $CONDA_PROFILE/conda.sh
conda activate /mnt/apps/prebuilt/openCARP/env
export PATH=$CONDA_PREFIX/bin:$PATH

# run openCARP
./run.py --np $SLURM_NTASKS --EP TT2 --duration 5000 --bcl 500 --ID exp02 --visualize

# deactivate conda environment
conda deactivate

Mπορούμε επίσης, εάν χρειάζεται, να δημιουργήσουμε ένα νέο conda environment σύμφωνα με τις οδηγίες προκειμένου να τρέξουμε ένα openCARP case.

Meshalyzer

Μπορούμε να χρησιμοποιήσουμε το εργαλείο meshalyzer για την οπτικοποίηση αποτελεσμάτων στο login node, ως εξής:

# module load openCARP glew
# meshalyzer

Εάν θέλουμε να χρησιμοποιήσουμε το εργαλείο meshalyzer σε batch εργασία, μπορούμε με το option --PNGfile να παράγουμε την έξοδο σε αρχείο png.