Περιγραφή¶
openCARP is an open cardiac electrophysiology simulator for in-silico experiments.
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.