Projects
Project page description.
MonoAlg3D
Source code available on: https://github.com/bergolho/MonoAlg3D_C.
The MonoAlg3D is a program for solving the 3D monodomain model. It is given by a reaction-diffusion equation and is numeracally solved by applying the Finite Volume Method. The program is implemented in C and maintained by the FISIOCOMP research group. A main advantage of the solver is that not only is able to solve the monodomain equations and simulate the action potential propagation in heterogeneous tissue using both the CPU and GPU computing power, but can also handle non-uniform and non-conforming adaptive meshes.
In particular, my role in this project was to implement all the functions that enables the coupling of the Purkinje fibers in the ventricular tissue. The Purkinje fibers are basically the structure in the cardiac conduction system which are responsible for stimulating the ventricular cells in endocardium.
Monodomain model:
\[\beta C_{m} \dfrac{\partial V_{m}}{\partial t} + \beta I_{ion}(V_{m},\eta) = \nabla . (\sigma \nabla V_{m}) + I_{stim},\] \[\dfrac{\partial \eta}{\partial t} = f(V_{m},\eta).\]A simulation solved by the MonoAlg3D program, which compares a normal tissue activation and what happens in a cardiac arrhythmia scenario.
Simulation showing a cardiac arrhythmia generated by micro-reentries near an ischemic region. The electrical stimulation of the tissue is given by the Purkinje fibers
Simulation showing a biventricular simulation in a human patient-specific mesh solved by the MonoAlg3D program. The computation time for the whole simulation when using only the CPU and by including the GPU power are compared.
How to cite:
Oliveira RS, Rocha BM, Burgarelli D, Meira Jr W, Constantinides C, dos Santos RW. Performance evaluation of GPU parallelization, space‐time adaptive algorithms, and their combination for simulating cardiac electrophysiology. Int J Numer Meth Biomed Engng. 2018;34:e2913. https://doi.org/10.1002/cnm.2913
Lawson, B. A., Oliveira, R. S., Berg, L. A., Silva, P. A., Burrage, K., & Dos Santos, R. W. (2020). Variability in electrophysiological properties and conducting obstacles controls re-entry risk in heterogeneous ischaemic tissue. Philosophical Transactions of the Royal Society A, 378(2173), 20190341. https://doi.org/10.1098/rsta.2019.0341
Read lessShocker
Source code available on: https://github.com/bergolho/Shocker.
The Shocker is a program for generating Purkinje networks (PN) in any type of endocardium surface which was implemented by me during my Phd. The Purkinje network is part of the Cardiac Conduction System (CCS) and is responsible for activating the ventricular walls in synchronous manner.
To generate a Purkinje network, the input data of the method is the following: an endocardium surface, a proximal location for the root branch, which must be within the endocardium surface.
In addition, the user can supply a set of active Purkinje-Ventricular-Muscles (PVJs) with their respective coordinates and Local Activation Time (LAT). In this scenario the Shocker method will try to connect the given active PVJs close to their reference LAT using optimization principles.
Furthermore, another feature of the Shocker program is that the user can also pass an initial configuration for the Purkinje network. This way well-known structures of the Purkinje system, like the Left-Bundle-Branch (LBB) and Right-Bundle-Branch (RBB), can be constructed beforehand using different techniques and be supplied as the initial network in order to provide better guidance of the regions that the PN certainly will occupy based on physiological observations. The second advantage of this feature is extending an already constructed PN by including different branches on its topology. For instance, these PNs could come as the output of another method already available in the literature. Thus, the user could want to increase its endocardium coverage or connect additional PVJs points, which is a feature that the available methods to generate PN in the literature currently do not have implemented.
Purkinje network growing in a left ventricle endocardium surface with the Shocker program.
The PN generated by the Shocker program were constructed in such way that they can be used alongside the MonoAlg3D program in cardiac simulations. Here are a few MonoAlg3D simulations executed with different types of Purkinje networks generated by the Shocker program. The endocardium surfaces have an increasing level of complexity.
MonoAlg3D simulations with different Purkinje networks considering a Simplified biventricular mesh.
On the left side of the video, a reference Purkinje network is given and activates both ventricles.
In the middle and right panels, two Purkinje networks generated by the Shocker program, where one have a good accuracy in connecting the active PVJs from the reference Purkinje network.
MonoAlg3D simulations with different Purkinje networks considering a Canine biventricular mesh.
On the left side of the video, a reference Purkinje network is given and activates both ventricles.
In the middle and right panels, two Purkinje networks generated by the Shocker program, where one have a good accuracy in connecting the active PVJs from the reference Purkinje network.
MonoAlg3D simulations with different Purkinje networks considering a Patient-specific biventricular mesh.
On the left side of the video, inferred active PVJs activates both ventricles.
In the middle and right panels, two Purkinje networks generated by the Shocker program, where one have a good accuracy in connecting the active PVJs from the reference Purkinje network.