First Synaptic Transmission

Synthnet’s very first synaptic transmission tonight! Pictured are the membrane potentials of two neurons sharing a synapse.

You can see the action potential travel down the axon of the presynaptic neuron, which causes a calcium influx in the axonal boutons, which then releases glutamate vesicles into the synaptic cleft. Ligand gated glutamate channels in the postsynaptic neuron cause sodium channels to open, which causes an action potential in the post synaptic neuron, and travels down its axon, as shown.

In the next post, I’ll be outlining the methods used to calculate the vesicle release rate.

Membrane Potentials Across Complex Morphologies

Pictured here are the membrane potential graphs from a complete virtual neuron from SynthNet. This neuron was comprised of 3 dendritic structures of smaller diameter, a larger soma, and a hillock and long axon.

On the drawing, I labeled what point on the representation neuron each graph pertains to. You can see me feeding high frequency, medium frequency, and low frequency oscillating voltage into the dendritic arbor at different points, and then you can see them temporally and spatially summating at the axon hillock until they hit -40mV, which then triggers an action potential down the axon, which propagates from segment to segment all the way down (See the three spikes very close to each other – thats the pulse moving down the axon). I keep the oscillation up and trigger 2 more action potentials too after the refractory period is over. You can also see the backpropagation of voltage go back through the soma into the dendrites where retrograde messengers will be released (see the jump back on the dendrites around time 500, in relation to getting electrotonic current from the axons).

This demonstrates the proper interaction between electrotonic potential, membrane potential, and ionic current flow.

Hodgkin-Huxley Model

Continuing on posting some past work to get the blog up to date, here are some graphs showing completion of the Hodgkin Huxley method of processing voltage gated ion channels. At this point, the neural network supports adding ion channels to the plasma membrane with different gating types, including voltage gates as well as voltage gates with inactivation gates (as well as ion pumps, though these are not processed by HH).

Akin to how protein subunit types give rise of the type of channel and gates of a physical ion channel, attributes associated with a SynthNet ion channel control what kind of channel and gates it possesses. Additional properties such as membrane threshold potential, permeability, and refractory period control the behavior of the voltage gated ion channels.

Below are some graphs with a two connected neural processes, the latter containing voltage gated sodium channels (with inactivation gates) and voltage gated potassium channels, constructed to behave as normal neural structures do during the action potential process. The first structure (membrane potential shown in blue) was clamped at -30mV for different periods of time in each graph. Shown is red is the membrane potential of the second structure. The left graphs show regular firing with different refractory periods, while the right graphs show burst and oscillating potentials (caused by the rate and magnitude of repolarization remaining higher than the threshold potential, coupled with a very short refractory period).

In the next post, I’ll be showing the interaction of action potential (via HH) and electrotonic potential (via cable and capacitance calculations) over a more complex morphology.

Electrotonic Potential

Though I haven’t updated the blog in a while, I’ve really been going full-steam on the neural emulator. I’ve been taking screenshots as I go, so over the next day or so I’m going to try to make a few posts with those shots to get everything up to speed on the blog. Also, thanks for all the comments on other posts! I’ll be getting back to them soon (this weekend).

The first big update concerns processing electrotonic potential across the cell and the plasma membrane. In my previous post, I talked a bit about using the cable equation for distribution of current. As of now, I still make use of the cable equation for distributing potential across the cell. This takes into account the length and circumference of the segment in question, in addition to internal resistance, and resistance across the plasma membrane. Also, in order to appropriately address membrane moieties, calculations will also take into account the capacitance of the membrane. This allows not only a more realistic build-up of potential to occur to allow things like temporal summation to work properly, but also allow us to emulate myelination, in which electrotonic potential is subjected to a change in attenuation due to higher resistance and lower capacitance of the plasma membrane.

Below is a membrane potential graph generated from a simple structure consisting of 3 segments. The first segment is clamped with oscillating voltage, with structure 2 connected to 1, and 3 to 2. We can see the subsequent structures increase and decrease according to their distance from structure 1. The curve is controlled by the capacitance and resistance of the plasma membrane:

Note that membrane resistance is calculated via ionic permeability. This is a simple graph and the following posts will show some more interesting graphs with the effects of spatial summation and changes in resistance illustrated, but this one is very clear at showing the expected curve associated with a capacitor.

Next post illustrates the completion of Hodgekin-Huxley calculations for voltage-gated ion channels.

Cable Equation and Hodgkin-Huxley

Progress marches forward on the Neural Emulator front. I’ve currently fleshed out the functionality as described by the cable equation, that describes how voltage/current flows down neural structures. This will allow adjacent sections of the cellular membrane to propagate changes in potential, thereby properly emulating the action potential. Before I can advance at all, I need to ensure that the action potential sequence models properly, since this is such core functionality.

Voltage Propagation

In the following graph, I’ve setup a neuron consisting of 4 structures. For the purposes of this test, it doesn’t really matter what the structures themselves are, but you could think of it as 4 sections of a fiber in a dendritic arbor. They all start out with the same intra and extracellular ionic concentrations, membrane permeability, and size. They are arranged linearly, where structure 0 is connected to 1, which is connected to 2, which is connected to 3. In this experiment, I increased in the extracellular concentration of Sodium surrounding structure 0. The graph shows both the local potential (potential for the cell membrane when isolated from adjacent membranes), as well as the total potential (when accounting for adjacent membranes).

As can be seen, as we increase the extracellular Sodium concentration, the cell membrane of structure 0 depolarizes as the local potential goes positive. Though the Sodium concentration surrounding the adjacent structures has (mostly) not changed, as can be seen by their local potentials, their total potential increases accordingly due to their proximity to structure 0. The closer they are (structure 1 is the closest), the more their membrane potential is affected. The effects of such are calculated by voltage difference, connecting membrane area, and distance between them. So this test came out successful.

Hodgekin-Huxley

In addition, I’m about half way finished with integrating the Hodgekin-Huxley model and associated equations in with calculating the permeability of gated ion channels, specifically for voltage and inactivation gates. This will ensure that the ion permeability adjusts correctly depending on the membrane potential. However, before I was able to move forward on HH, I needed to ensure membrane potentials were propagating properly, which is why the work above was important. More on this soon!

A Verification of SynthNet’s Ion Handling

The following graphs demonstrate SynthNet’s substance and electrochemical engine.

For each graph, we have a setup a virtual soma with typical ion concentrations for a Mammalian neuron. Specifically:

Intra/Extra Na: 18mM/145mM
Intra/Extra K: 140mM/3mM
Intra/Extra Cl: 7mM/120mM
Intra/Extra Ca: 100nM/1.2mM

First, we verify that GHK is properly reducing to the Nernst equation and equilibrium potential is correctly being calculated. For this test, we isolate the ion in the question by removing permeability of all other ions across the cellular membrane. We then record membrane potential and ensure it matches equilibrium potential for that ion’s electrochemical gradient.

I forgot to change the scale over, so potential is shown in volts – so remember the factor of 1000 for mV.

For Sodium, we should get +56mV (Verified!)

For Potassium, we should get -102mV (Verified!)

For Chloride, we should get -76mV (Verified!)

For Calcium, we should get +125mV (Verified!)

So at this point, we verify that GHK is correctly reducing to Nernst for single ions. Now we need to test that GHK correctly works with multiple ions. So at this point, we setup typical permeability ratios for our neuron. Specifically, Pk:PNa:PCl:PCa = 1.00:0.04:0.45:0.000001.

For these ratios, we should see around -70mV, which is typical for many neurons, including the dorsal lateral geniculate nucleus, thalmus, and close for many others. (Verified!)

Now, switching over to verifying functionality of GHK flux, we setup an experiment where we again isolate a single ion type, but this time mimic voltage clamping experiments by turning off GHK voltage calculation on our membrane and setting it to a static voltage. We then initiate calculations with the incorrect intracellular and extracellular ion concentrations. If GHK flux is working properly, the ionic concentrations to achieve their respective homeostatic values for the specified membrane potential.

For Potassium, we clamp the voltage at -102mV – we should see concentrations even out at Intra/Extra K: 140mM/3mM (Verified!)

For Calcium, we clamp the voltage at +125mV – we should see concentrations even out at Intra/Extra Ca: 100nM/1.2mM (Verified!)

So ionic flux calculations look spot on too! With both potential and flux working properly, the engine provides enough functionality for the purposes of our emulator (currently, anyway).

I’ll leave off with a fun graph of running substance calculations over time with no ionic pumps in place to maintain homeostasis. I had to use LiveGraph for this one as Excel doesn’t allow this many graph points, and I don’t know how to turn on the legend – Green/Pink:K, Purple/Yellow:Na, Blue/Cyan: Cl, Ca not really visible, bottom is voltage. Next time I’ll have graphs of action potentials, fun stuff.

SynthNet, the Start of a Neural Emulator

If you’re anything like me, or many of the programmers and hardware hackers out there, you have a deep urge to constantly be creating something. While this presents the opportunity to try new and fun stuff, it can also be a curse in the fact that sometimes it’s hard to complete projects before jumping into a new one. I constantly have this issue, and in general I’ve tried to be good about not staring a new project before completing my existing one. And if you’ve known me for any period of time, you know there is one project that is the big one for me – the one that I’ve been working on for years, and the one that really drives me as a computer scientist – that is my quest to fully emulate the biological neural network (easy, right?). Well, after years of constantly putting it aside while working on other projects, the last 4 months I’ve been very good about focusing on it.

Goodbye TFNN, Hello SynthNet

The problem with emulating the biological brain is – it is extremely complicated to say the least, and there is still a library of information we don’t understand about neuroscience. However – there is also a huge amount of information we DO understand. I’ve had the disadvantage that I do not have a formal education in the biological sciences, let alone the specifics of neurophysiology. Because of that, the process for me of emulating it has been difficult. I have had to do a lot of catchup research to equal what the average graduate would have. This is very apparent looking at the work I’ve done now as compared to earlier versions of the emulator (TFNN) – you can see as much going back to older blog entries on this site. I am by no means an expert now, but I was less so of one back then. In the last year or two, I’ve really hit the books and tried to learn everything I can. And in doing so, I’ve learned that I got so much wrong before, that it was easier to start over again than try to repair what I had. And with that, comes the newest revision of the emulator, SynthNet.

What SynthNet Does So Far

At this point, SynthNet does the following:

  1. Emulates virtual major cellular structures, such as neuron soma, dendrites and denritic arbors, axons, terminals/boutons, synapses, etc – each with the full functionality (when applicable) of the following:
  2. Physical properties such as position, surface area, and cellular membranes.
  3. The ability to contain substances, including ions such as Sodium, Potassium, Chloride, and Calcium, as well as neurotransmitters and modulators, such as Glutamate, Serotonin, Norepinephrine, etc, both intracellular and extracellular.
  4. For all substances, current concentration is stored (with resolution to nanomoles), homeostatic concentrations, and valance of any ion substances
  5. Cellular membranes contain channels, both to the extracellular space, as well as gap junctions to the intracellular space of other cellular structures.
  6. Each channel stores permeability, what substance it is permeable, and tag information for synaptic tagging or other secondary messenger processes.
  7. Both leak channels and active pumps are supported
  8. Channels can also have gates, including voltage gates, inactivation gates, and ligand gates. Voltage gates activate at specified membrane potential, inactivation gates close either voltage or ligand gates after a certain amount of time, and ligand gates open in response to a specific concentration of a specific substance
  9. Membrane voltage is calculated using the Goldman-Hodgkin-Katz Voltage Equation modified for the inclusion of divalent ions (this may need a little tweaking though, converting this over to make use of Spangler’s equation from Ala J Med Sci, 9:218-223, 1972)
  10. Ion flux across the membrane is calculated using the Goldman-Hodgkin-Katz Flux Equation, with a membrane surface area coefficient.
  11. All substance flux is virtually processed in an N+1 parallel fashion across all neurons simultaneously
  12. The emulation of myelin sheaths via the elimination of channels/permeability in specific axonal segments, and an increase in intracellular trans-segment permeability across axonal segments.
  13. CSV export functionality for analysis within Excel, LiveGraph, or other tools

So at this point, it handles ions and substances as a whole pretty well, calculating flux across a substance’s electrochemical gradient fairly accurately (for our purposes). At this point, we can setup typical ion concentrations for a mammalian neuron, setup leak, pump, and voltage channels, and trigger action potientials with the expected results (still tweaking some of the values).

To Do:

What we don’t have yet, but will have:

  1. The regulation of extracellular substances via astroglia. This is the next thing I’m working on
  2. Any kind of protein synthesis or activation, such as kinase phosphorylation. After I get some of the glial cell work done, this will be the next big addition to the emulator. This is critical for the mediation of Hebbian plasticity and other types of learning. The genetic engine of the emulator will allow any sequence of instructions to be run under the specified protein activation – so this will cover everything from the addition of AMPA receptors due to NMDA receptor activation, to neurite growth due to nitric oxide as a retrograde messenger, and the entire neurogenesis process as a whole. Very excited to get started on this.
  3. Visualization engine, as a kind of virtual fMRI, for the purposes of graphical analysis
  4. A separate engine to mutate genetic code across generations for the purposes of natural selection (more on this later, a whole different phase of the project)
  5. A lot of other details, those are the biggies for now

Blackberry Minecraft Chat Client

First off, if you haven’t tried Minecraft yet, it is a ridiculously addictive game in which you, the player, dig tunnels, collect materials, craft items, and build up the world around you. You explore underground caverns, build houses, castles, farms, etc. It’s a ton of fun (and definitely a good way to waste hours of your life). If you haven’t seen it before, check it out.

I run a Minecraft server for a few friends of mine, and even if I wasn’t in the game, I wanted to be able to chat with them and run server comands on the go. So I wrote a VERY quick and extremely dirty (and buggy) Minecraft chat client for the Blackberry that will connect to a server, and let you chat and run commands.

BerryCraft Chat:

It has a few limitations – specifically that it will only connect to a server that has minecraft.net authentication turned off. It wouldn’t be too difficult to insert this functionality into it, but I banged this out in a couple days and don’t really have time to put any polish on it.

UPDATE: BerryCraft can be downloaded here.

Spotlight: Leah Creates

One of the best things about being involved in the world of technology, besides getting a front row seat to all the amazing advancements made every day, is meeting and talking with the creative people who make the magic happen. I think I’m especially lucky, having strong ties to a range of different areas such as networking and development, to have met a diverse mix of very talented people.

Web Developer Extraordinaire

To say business exists in a social media world where online presence and reputation is important would be the understatement of the century. Companies today live and die by their ability to harness the power of the web. And while there are many developers out there, a true burden lies in finding talented and experienced ones. Not only does Leah fall into this camp, combining expert design skill with seasoned web development knowledge, but she possesses something that many in the industry don’t โ€“ a real love and respect for what her customers are trying to accomplish with their website. This truly shines through both in her work, and how she treats her clients. It translates into a special website that speaks its goals and connects to its visitors like no other site could. It is the difference between a good looking site and a truly powerful site.

The Proof is in the Pudding

I’ve known Leah for a number of years, having had the privilege of working with her on a number of projects professionally โ€“ and her sites continue to really impress me. Some excellent examples of recent projects: Be Irreplaceable | Donna Heart.

I love these examples, as they show how she has taken a general framework like WordPress, and turned it into a beautiful site that really communicates the site’s message. They feel personable and comfortable when you visit them, unlike a lot of cold and bland sites out there. They have that truly personal touch which is key to connecting with the audience.

For even more examples of her work, check out her online portfolio.

So if you’re looking to build a new website for your business, or need to re-imagine the one you already have, I really suggest keeping Leah Creates in mind. She is amazing at both what she does, and how she does it โ€“ something setting her apart from so many other development houses out there.

LeahCreates

Good First Week for Galactic Blast!

I tweeted this as well, but I just wanted to thank everyone who has been supportive of both the Blackberry Game Development Tutorial, as well as our commercial release of Galactic Blast! – over the first week, we sold over 100 copies! It’s a great feeling to know people are out there enjoying your game.

Thanks again everyone!