Skip to content

Περιγραφή

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

Home Page

openCARP

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

Ως πρώτο βήμα για την εκτέλεση των 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.