Monthly Archives: November 2008

Penetration of a Re-entrant Wave From a Distant Pacing Location

The following is an (more or less unedited) excerpt from my dissertation, which is in progress. It continues where this post left off.

ATP Peeling

ATP Peeling

Progressive movement of collision location between two wave sources of different frequencies. Each horizontal line schematically represents the one-dimensional space between two wave sources. Curved lines represent wavefronts. Source B has a more rapid frequency than source A, so the location of collision moves progressively toward A with each iteration of the cycle (N).

In anti-tachycardia pacing, however, it is nearly impossible to target the core of re-entry in this fashion – pacing must be applied from a distant source. The core can therefore only be reached if stimulation is applied at a frequency more rapid than the intrinsic frequency of the re-entrant wave. This principle is illustrated schematically in the figure above. Each line between sources A and B represents the one-dimensional space in which wavefront collisions play out when the sources have different frequencies. In this example, conduction velocity is assumed to be constant, and both sources begin creating wavefronts at the same time for the sake of explanation. The concept holds even if they do not, but the position is shifted in one direction or the other depending on the difference in start time. The iterations (N) move from 1 through 6, indicating the first through sixth wavefront collisions. In this example, source B has a slightly higher frequency than source A. As such, wavefront collision proceeds as follows. On iteration 1, each source produces a wavefront at the same time. The waves travel with equal velocity toward each other, colliding in the middle of the space, and both are terminated. On iteration 2, B initiates a wave slightly before A, and so that wave has a longer period of time to travel before it encounters the wave from A. The region of collision is therefore shifted toward A a bit. On iteration 3, the head start of the wave from B in iteration 2 has been doubled, and so the region of collision is shifted twice as far toward A as it was in iteration 2. This continues in iterations 4 and 5, until in iteration 6, the wavefront reaches source A before it has an opportunity to initiate a wave. In cardiac tissue, this would result in overdrive stimulation of site A, and it would no longer initiate its own waves as long as B continued producing them and they continued to reach A.

Thus, if A is the re-entrant wave and B is the site of anti-tachycardia pacing, the core of the re-entry at A will be reached within 6 paced beats, and re-entry will be terminated. However, if the situation is reversed and B is the re-entrant wave, the site of anti-tachycardia pacing will quickly be overdriven and the therapy will be ineffective. Furthermore, if some region between A and B cannot support the higher frequency of activation produced by a sufficiently-fast anti-tachycardia pacing therapy, the therapy will be blocked from reaching the core of the re-entrant wave. These difficulties with anti-tachycardia pacing can, however, be circumvented while using an electrode distant from the site of re-entry, using the technique of far-field stimulation.

This example was inspired by a conversation with Dr.Valentin Krinsky

Resetting and Termination of Re-entry in a Ring

The following is an (more or less unedited) excerpt from my dissertation, which is in progress.

Resetting and termination in a ring

Resetting and termination in a ring

Gradients run from most recently activated (black) to recovering (grey) to recovered (white). Black dots indicate locations of stimulus application. Black lines indicate propagation of activation from the region of the applied stimulus. Flat line endings mark termination of propagation, while the black arrow represents continued propagation. A: Resetting of re-entry in a ring following stimulus application in the excitable gap. B: Termination of re-entry in a ring following stimulus application in the excitable gap.

The classic model of re-entry is the one-dimensional system of a wave propagating within a ring composed of an excitable medium (see figure above). If the ring is longer than the wavelength of the wave of excitation, there will be an excitable gap between the tail of the wave and the head (white regions in figure). A stimulus applied in that gap can either reset or terminate re-entry. Resetting occurs when the stimulus results in an orthodromic wave (that is, moving in the same direction as the original wave) and an antidromic wave (that is, moving in the opposite direction from the original wave) in the excitable gap and the following happens: the antidromic wave collides with the original wavefront and terminates it, while the orthodromic wave follows the recovering tail of the original wave and becomes the starting point of a new re-entrant wave (figure panel A). If, however, the orthodromic wave collides with the recovering tail of the original wave and terminates, then re-entry will be terminated entirely (figure panel B). Thus, if a stimulus were applied at the appropriate time and position to consume the excitable gap, it would terminate re-entry.

Interesting aside. I was at first stumped on how to make ring gradients like what you see above. I used a combination of what I found here and going back and forth from GIMP to OmniGraffle Pro. They key appears to be the use of an asymmetrical conical gradient in GIMP.

LaTeX Word Count

I’m working on my graduate thesis in the LaTeX document mark-up format, and trying to apply Anthony Burgess’ Martini Method. Basically, set a certain desired word count and let yourself relax after you’ve achieved that word count every day. I started off pretty well with this method, but the next day my wife Amanda went into labor, and my productivity has basically been a train wreck ever since.

I’m getting back on the horse.

Anyway, it’s a little tricky to apply the Martini Method when using LaTeX — as a markup language a bit like HTML, it’s full of special words, symbols, characters and whatnot that are not actually part of what you’re writing. A simple Emacs word count will not do the trick. Much as I’d love to count all of those extra words, the point here is to produce a certain volume of output and that would miss the point. Plus, it’s dishonest. There exists a PERL script that will parse LaTeX and count the non-special words. However, someone’s gone even a step further and made a nice web interface for it, with color coding and everything. That interface is here, apparently hosted by one Einar Andreas Rødland in Norway.

So far, it’s working quite well for me. Unfortunately, it just informed me that I’m not quite to my desired word count yet. More writing!


So, you haven’t heard much from me in a while. The little one has been using up great amounts of my time and attention. (And she’s totally worth it).

However, I’m finally getting back into the swing of things with work, around the house, etc. I’ve started roasting my own coffee, which is great, and Amanda got me an espresso machine that should be arriving within hours in which to use my freshly-roasted beans.

The thing that has been using up the greatest amount of my “free” time (whatever that means these days) has been hacking on an improved email client for the new “Google Phone”, the G1. The included email client was utter crap, to put it kindly, not even as sophisticated as the client on my little Razr2 v8 flip phone. However, someone forked the open-source email client that came with the device into a project called K-9. The name is derived from that of an old UNIX-y email client called mutt, the idea being that K-9 (canine) is a sort of androidy name for a dog, I guess.

Anyway, the client has been rapidly improving. I haven’t done much — just a few bug fixes here and there, and possibly the addition of some bugs (hope not) — but several people are working on it. It’s already getting rave reviews in the Android market, particularly since people have only the crappy built-in client an an alternative. Heh. I don’t know Java, really, but that hasn’t been stopping me. It’s not that different from Python and C++. Anyway, if you have a G1, check it out. We’re improving performance, fixing bugs, and adding features all of the time.