Active Transport

Extending NEURON to handle reaction-diffusion problems.

Moderators: hines, wwlytton, ramcdougal

Post Reply
ahwillia
Posts: 17
Joined: Wed Apr 23, 2014 2:17 pm

Active Transport

Post by ahwillia »

I'm curious if it is possible to use the rxd module to model active transport of intracellular solutes. For a simple example, suppose I have two sections:

Code: Select all

from neuron import h, rxd
soma = h.Section()
dend = h.Section()
dend.connect(soma , 1, 0)
Lets say that some mRNA transcript of ('m') interest is produced in the soma at some constant rate and degraded at a rate proportional to m. Below is my best guess as to how to implement this. (Disclaimer: I've only just started reading into the rxd module, my apologies for any errors/misunderstanding):

Code: Select all

m = rxd.Species([soma, dend], d=1, name='m')
k1 = 1.0  # rate at which m is produced in the soma
k2 = 1.0  # degradation rate of m
soma_reaction = rxd.Rate(m,k1-(k2*m),regions=soma)
Within the dendritic compartment, m is only degraded (not produced). For simplicity, lets assume the rate at which m is degraded in the dendrites is the same as in the soma.

Code: Select all

dend_reaction = rxd.Rate(m,-(k2*m),regions=dend)
The final component I'm looking for (assuming the above code is basically correct) is to have the mRNA actively transported into dend from the soma. I presume that this could be achieved by adding a drift term to the diffusion equation... Any ideas on how this could be implemented? Thanks in advance for any help.
ramcdougal
Posts: 267
Joined: Fri Nov 28, 2008 3:38 pm
Location: Yale School of Public Health

Re: Active Transport

Post by ramcdougal »

You're almost there with the part that's not active transport. A few notes:
  • rxd.Species (and rxd.Parameter) work on rxd.Region objects which you can think of as high-level concepts, like: all of the cytosol, all of the ER, etc.
  • The regions argument to rxd.Rate (and rxd.Reaction, etc) currently only takes rxd.Region objects, but I like the idea of optionally being able to specify by Section as well.
  • To get a non-constant parameter over an rxd.Region, use rxd.Parameter. The syntax essentially parallels that of rxd.Species.
  • When you say d=1 in the rxd.Species, that specifies a diffusion constant of 1.
  • It's usually a good idea to do a from neuron import gui because otherwise the gui will not be very interactive if you run your script directly from Python instead of from NEURON.
  • Discretization matters. The default is to have one segment per section, which is too coarse to meaningfully show diffusion.
Here's my version with production, degradation, and diffusion (but not active transport). Press enter to end the simulation.

Code: Select all

from neuron import h, rxd, gui

# morphology
soma, dend = h.Section(), h.Section()
dend.connect(soma)
soma.L = 11
soma.diam = 11
dend.L = 31
dend.diam = 2

# discretize morphology
soma.nseg = 11
dend.nseg = 31 

# declare a region for the reaction-diffusion domain
r = rxd.Region([soma, dend], nrn_region='i')

# mRNA
mrna = rxd.Species(r, d=1, name='mrna', initial=0)

# rate at which mrna is produced (1 in soma; 0 elsewhere)
# I'll eventually make a better alias for node._sec._sec
k1 = rxd.Parameter(r, initial=lambda node: 1 if node._sec._sec == soma else 0)
    
# degradation rate of mrna
k2 = 1

# production of mRNA
production = rxd.Rate(mrna, k1)

# degradation
degradation = rxd.Rate(mrna, -k2 * mrna)

# create a rangevarplot to graph things
g = h.Graph()
g.size(0, soma.L + dend.L, 0, 2)
rvp = h.RangeVarPlot('mrnai')
rvp.begin(0, sec=soma); rvp.end(1, sec=dend); rvp.origin(0, sec=soma)
g.addobject(rvp)
h.graphList[0].append(g)

# initialize simulation
h.finitialize()

# run it
for doublet in xrange(7):
    rvp.color(doublet + 1)
    h.continuerun(doublet / 2.)
    g.exec_menu('Keep Lines')
    g.exec_menu('Keep Lines')

# wait for user input
raw_input()
There is no direct support for active transport yet. Are you envisioning modeling this with advection? Some other mechanism?
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Active Transport

Post by ted »

He means "axonal transport" not "active transport". Probably slow axonal transport, at that--rate on the order of a few mm per day. Not clear under what circumstances a mechanistic representation of that would be useful. Maybe a phenomenological representation would be sufficient. From the standpoint of some region in a dendrite, something like this might be adequate:
1. something that would cause onset of mRNA synthesis in the soma triggers an event at time t0
2. after sufficient delay tdelay, the event is delivered to a mechanism in the dendritic region that responds by "producing" mRNA at that location at a fixed rate (the rate at which it would be arriving from the soma)

Further elaboration is possible, but you get the idea.
ahwillia
Posts: 17
Joined: Wed Apr 23, 2014 2:17 pm

Re: Active Transport

Post by ahwillia »

Hi Ted,

I'm interested in activity-dependent transcription of mRNA and its transport to neurites. Some mRNAs can be produced and transported quite rapidly (~15 minutes after high frequency stimulation). I like the idea of a phenomenological model, but I would like to couple mRNA production and expression to electrical activity down the line. We have published a single-compartment model that does this in a mechanistic fashion (http://www.ncbi.nlm.nih.gov/pubmed/24853940). I'm interested in doing something similar in a multi-compartment model.

The model we published above transcribes and translates mRNA on the timescale of 5-10s, while the electrical dynamics of the model are on a much shorter time scale. While the 5-10s timescale of mRNA production is highly unrealistic, increasing the relevant time constants doesn't affect the outcome (it just makes the simulation longer). All that matters is that the time scales are sufficiently separated, so the simulations can be done relatively efficiently.

I'm still interested if you think a phenomenological representation would work and what that would entail. Thanks for the input.
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Active Transport

Post by ted »

ahwillia wrote:I'm still interested if you think a phenomenological representation would work and what that would entail.
I don't know enough about your conceptual model or its design goals to be more specific. That said, if this is the case
While the 5-10s timescale of mRNA production is highly unrealistic, increasing the relevant time constants doesn't affect the outcome (it just makes the simulation longer).
then your representation of mRNA transport is already teetering on the edge of being phenomenological, so switching to a completely phenomenological representation of it would not be a big deal. If you want to continue this discussion privately, you are welcome to send me an email
ted dot carnevale at yale dot edu
Post Reply