Ion channels are trans-membrane proteins that control the passive flow of ions
into, and out of a biological cell. They exist in all cell types and play
crucial roles in cellular sensing and communication, maintenance of the
membrane potential, and regulation of cell volume.

For example, voltage-gated sodium, potassium, and calcium channels (among
others) work together to shape the automatically recurring cardiac action
potential that give
our hearts their sure (and usually steady) beat. Philosophy aside, the very
thoughts passing through the consciousness of a student as he reads this page
exist as nothing more than electro-chemical signals in the brain. Specifically,
voltage-gated sodium and potassium channels integrated in the cell membrane
of all neurons allow electrical signals to propagate rapidly down the axon in
the form of an action potential. When the action potential reaches the end of
the axon, voltage-gated calcium channels regulate the release of special
chemical messengers called neurotransmitters into the synapse (the structure
that connects neurons to one another).
As the neurotransmitters diffuse across the synapse they bind to ligand-gated
ion channels on the post-synaptic neuron. Depending on the type of ion channel
and the type of neurotransmitter, the channels may open or close, thereby
altering the membrane voltage. If
the post-synaptic neuron receives enough excitatory stimulus from the
many presynaptic neurons in which it is connected, its membrane potential will
depolarize to a point and it too will experience an action potential,
thus passing the signal along to other neurons.  

As further evidence of their vital importance, ion channels are specifically
targeted by several naturally occurring toxins and poisons, including venom
from spiders, snakes, scorpions, and fish. It comes as no
surprise that the development of new types of drugs which alter the behavior
of certain channels is a major motivator behind ion channel research. As in most
scientific fields, researchers often develop mathematical models to assist in
their understanding of the results. Ion channels are no exception; several
classes of ion channel models exist that allow for the study of ion channel
behavior under varying conditions. One such generalization involves modeling
channel
gating using continuous time Markov processes, and solving the underlying
ordinary differential equations that arise. A number of commercial as
well as open-source software programs exist
for this purpose, but it is also common for scientists to implement their own
solution using the differential equations solvers in Matlab, for example. 

In order to provide an elegant and simple solution for the creation and
simulation of Markov model-based ion channels, we present ModFossa, a simulator
written in C++ with an easy-to-use Python interface. Several published models
of ion channel gating have been reproduced using our simulator; these results,
along with performance analysis are presented in the following sections.
In Section 2 we present some background 
concepts related to ion channel modeling. In Section 3, we present the design
and implementation of
ModFossa. Results are provided in Section 4. Finally, we conclude with a
discussion of applications and future work in Section 5. 
