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