From bcbc1c1acd02c236a88fa568adc7c56da7e7c288 Mon Sep 17 00:00:00 2001
From: Dilawar Singh <dilawars@ncbs.res.in>
Date: Wed, 24 Aug 2016 18:46:41 +0530
Subject: [PATCH] Added documentation sent by Upi.

---
 docs/user/images/rdes10_CaSpread.png          |  Bin 0 -> 10018 bytes
 docs/user/images/rdes10_CaTimecourse.png      |  Bin 0 -> 63115 bytes
 .../markdown/RdesigneurDocumentation.markdown | 1896 +++++++++--------
 3 files changed, 1038 insertions(+), 858 deletions(-)
 create mode 100644 docs/user/images/rdes10_CaSpread.png
 create mode 100644 docs/user/images/rdes10_CaTimecourse.png

diff --git a/docs/user/images/rdes10_CaSpread.png b/docs/user/images/rdes10_CaSpread.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ba870ef1d45dec5e3c6f74272bad8e6be6e49f4
GIT binary patch
literal 10018
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

literal 0
HcmV?d00001

diff --git a/docs/user/images/rdes10_CaTimecourse.png b/docs/user/images/rdes10_CaTimecourse.png
new file mode 100644
index 0000000000000000000000000000000000000000..857d5a65e8ca22a771bef612431064403d784b8e
GIT binary patch
literal 63115
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
W6Fn0#@(B$1NPUnOD--$T`+op3@aRhb

literal 0
HcmV?d00001

diff --git a/docs/user/markdown/RdesigneurDocumentation.markdown b/docs/user/markdown/RdesigneurDocumentation.markdown
index 48d87896..ffc84e23 100644
--- a/docs/user/markdown/RdesigneurDocumentation.markdown
+++ b/docs/user/markdown/RdesigneurDocumentation.markdown
@@ -1,858 +1,1038 @@
------
-
-# **Rdesigneur: Building multiscale models**
-
-Upi Bhalla
-
-July 8 2016.
-
------
-
-## Contents
-	
-
-## Introduction
-
-**Rdesigneur** (Reaction Diffusion and Electrical SIGnaling in NEURons) is an
-interface to the multiscale modeling capabilities in MOOSE. It is designed
-to build models incorporating biochemical signaling pathways in 
-dendrites and spines, coupled to electrical events in neurons. Rdesigneur
-assembles models from predefined parts: it delegates the details to 
-specialized model definition formats. Rdesigneur combines one or more of
-the following cell parts to build models:
-
-*	Neuronal morphology
-*	Dendritic spines
-*	Ion channels
-*	Reaction systems
-
-Rdesigneur's main role is to specify how these are put together, including 
-assigning parameters to do so. Rdesigneur also helps with setting up the
-simulation input and output.
-
-## Quick Start
-Here we provide a few use cases, building up from a minimal model to a 
-reasonably complete multiscale model spanning chemical and electrical signaling.
-
-### Bare Rdesigneur: single passive compartment
-If we don't provide any arguments at all to the Rdesigneur, it makes a model
-with a single passive electrical compartment in the MOOSE path 
-`/model/elec/soma`. Here is how to do this:
-
-	import moose
-	import rdesigneur as rd
-	rdes = rd.rdesigneur()
-	rdes.buildModel()
-
-To confirm that it has made a compartment with some default values we can add 
-a line:
-	
-	moose.showfields( rdes.soma )
-
-This should produce the output:
-
-	[ /model[0]/elec[0]/soma[0] ]
-	diameter         = 0.0005
-	fieldIndex       = 0
-	Ra               = 7639437.26841
-	y0               = 0.0
-	Rm               = 424413.177334
-	index            = 0
-	numData          = 1
-	inject           = 0.0
-	initVm           = -0.065
-	Em               = -0.0544
-	y                = 0.0
-	numField         = 1
-	path             = /model[0]/elec[0]/soma[0]
-	dt               = 0.0
-	tick             = -2
-	z0               = 0.0
-	name             = soma
-	Cm               = 7.85398163398e-09
-	x0               = 0.0
-	Vm               = -0.06
-	className        = ZombieCompartment
-	idValue          = 465
-	length           = 0.0005
-	Im               = 1.3194689277e-08
-	x                = 0.0005
-	z                = 0.0
-
-
-### Simulate and display current pulse to soma
-A more useful script would run and display the model. Rdesigneur can help with
-the stimulus and the plotting. This simulation has the same passive 
-compartment, and current is injected as the simulation runs.
-This script displays the membrane potential of the soma as it charges and 
-discharges.
-
-	import moose
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-		stimList = [['soma', '1', '.', 'inject', '(t>0.1 && t<0.2) * 2e-8']],
-		plotList = [['soma', '1', '.', 'Vm', 'Soma membrane potential']],
-	)
-	rdes.buildModel()
-	moose.reinit()
-	moose.start( 0.3 )
-	rdes.display()
-
-The *stimList* defines a stimulus. Each entry has five arguments:
-
-	`[region_in_cell, region_expression, moose_object, parameter, expression_string]`
-
-+	`region_in_cell` specifies the objects to stimulate. Here it is just the
-	soma.
-+	`region_expression` specifies a geometry based calculation to decide
-	whether to apply the stimulus. The value must be >0 for the stimulus
-	to be present. Here it is just 1.
-	`moose_object` specifies the simulation object to operate upon during 
-	the stimulus. Here the `.` means that it is the soma itself. In other
-	models it might be a channel on the soma, or a synapse, and so on.
-+	`parameter` specifies the simulation parameter on the moose object that
-	the stimulus will modify. Here it is
-	the injection current to the soma compartment.
-+	`expression_string` calculates the value of the parameter, typically
-	as a function of time. Here we use the function 
-	`(t>0.1 && t<0.2) * 2e-8` which evaluates as 2e-8 between the times of
-	0.1 and 0.2 seconds.
-
-To summarise this, the *stimList* here means *inject a current of 20nA to the
-soma between the times of 0.1 and 0.2 s*.
-
-The *plotList* defines what to plot. It has a similar set of arguments:
-
-	`[region_in_cell, region_expression, moose_object, parameter, title_of_plot]`
-These mean the same thing as for the stimList except for the title of the plot.
-
-The *rdes.display()* function causes the plots to be displayed.
-
-![Plot for current input to passive compartment](../../images/rdes2_passive_squid.png)
-
-When we run this we see an initial depolarization as the soma settles from its
-initial -65 mV to a resting Em = -54.4 mV. These are the original HH values, see
-the example above. At t = 0.1 seconds there is another depolarization due
-to the current injection, and at t = 0.2 seconds this goes back to the resting
-potential.
-
-### HH Squid model in a single compartment
-Here we put the Hodgkin-Huxley squid model channels into a passive compartment.
-The HH channels are predefined as prototype channels for Rdesigneur,
-
-	import moose
-	import pylab
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-    	chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
-    	chanDistrib = [
-        	['Na', 'soma', 'Gbar', '1200' ],
-        	['K', 'soma', 'Gbar', '360' ]],
-    	stimList = [['soma', '1', '.', 'inject', '(t>0.1 && t<0.2) * 1e-8' ]],
-    	plotList = [['soma', '1', '.', 'Vm', 'Membrane potential']]
-	)
-	
-	rdes.buildModel()
-	moose.reinit()
-	moose.start( 0.3 )
-	rdes.display()
-
-
-Here we introduce two new model specification lines:
-
-+	**chanProto**: This specifies which ion channels will be used in the 
-	model.
-	Each entry here has two fields: the source of the channel definition,
-	and (optionally) the name of the channel.
-	In this example we specify two channels, an Na and a K channel using
-	the original Hodgkin-Huxley parameters. As the source of the channel
-	definition we use the name of the  Python function that builds the 
-	channel. The *make_HH_Na()* and *make_HH_K()* functions are predefined 
-	but we can also specify our own functions for making prototypes.
-	We could also have specified the channel prototype using the name
-	of a channel definition file in ChannelML (a subset of NeuroML) format.
-+	**chanDistrib**: This specifies  *where* the channels should be placed
-	over the geometry of the cell. Each entry in the chanDistrib list 
-	specifies the distribution of parameters for one channel using four 
-	entries: 
-
-	`[object_name, region_in_cell, parameter, expression_string]`
-
-	In this case the job is almost trivial, since we just have a single 
-	compartment named *soma*. So the line
-
-	`['Na', 'soma', 'Gbar', '1200' ]`
-
-	means *Put the Na channel in the soma, and set its maximal 
-	conductance density (Gbar) to 1200 Siemens/m^2*. 
-
-As before we apply a somatic current pulse. Since we now have HH channels in
-the model, this generates action potentials.
-
-![Plot for HH squid simulation ](../../images/rdes3_squid.png)
-
-### HH Squid model in an axon
-Here we put the Hodgkin-Huxley squid model into a long compartment that is
-subdivided into many segments, so that we can watch action potentials 
-propagate. Most of this example is boilerplate code to build a spiral axon.
-There is a short *rdesigneur* segment that takes
-the spiral axon prototype and populates it with channels, and sets up the
-display. Later examples will show you how to read morphology files to specify
-the neuronal geometry.
-
-	import numpy as np
-	import moose
-	import pylab
-	import rdesigneur as rd
-
-	numAxonSegments = 200
-	comptLen = 10e-6
-	comptDia = 1e-6
-	RM = 1.0
-	RA = 10.0
-	CM = 0.01
-	
-	def makeAxonProto():
-    		axon = moose.Neuron( '/library/axon' )
-    		prev = rd.buildCompt( axon, 'soma', RM = RM, RA = RA, CM = CM, dia = 10e-6, x=0, dx=comptLen)
-    		theta = 0
-    		x = comptLen
-    		y = 0.0
-
-    		for i in range( numAxonSegments ):
-        		dx = comptLen * np.cos( theta )
-        		dy = comptLen * np.sin( theta )
-        		r = np.sqrt( x * x + y * y )
-        		theta += comptLen / r
-        		compt = rd.buildCompt( axon, 'axon' + str(i), RM = RM, RA = RA, CM = CM, x = x, y = y, dx = dx, dy = dy, dia = comptDia )
-        		moose.connect( prev, 'axial', compt, 'raxial' )
-        		prev = compt
-        		x += dx
-        		y += dy
-    		
-    		return axon
-
-	moose.Neutral( '/library' )
-	makeAxonProto()
-
-	rdes = rd.rdesigneur(
-    		chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
-    		cellProto = [['elec','axon']],
-    		chanDistrib = [
-        		['Na', '#', 'Gbar', '1200' ],
-        		['K', '#', 'Gbar', '360' ]],
-    		stimList = [['soma', '1', '.', 'inject', '(t>0.01 && t<0.2) * 2e-11' ]],
-    		plotList = [['soma', '1', '.', 'Vm', 'Membrane potential']],
-    		moogList = [['#', '1', '.', 'Vm', 'Vm (mV)']]
-)
-
-	rdes.buildModel()
-	moose.reinit()
-
-	rdes.displayMoogli( 0.00005, 0.05, 0.0 )
-
-![Axon with propagating action potential](../../images/rdes3.1_axon.png)
-
-Note how we explicitly create the prototype axon on '/library', and then 
-specify it using the *cellProto* line in the rdesigneur.
-The moogList specifies the 3-D display. See below for how to set up and use
-these displays.
-
-### HH Squid model in a myelinated axon
-This is a curious cross-species chimera model, where we embed the HH equations
-into a myelinated example model. As for the regular axon above, most of the
-example is boilerplate setup code. Note how we restrict the HH channels to the
-nodes of Ranvier using a conditional test for the diameter of the axon
-segment.
-
-	
-	import numpy as np
-	import moose
-	import pylab
-	import rdesigneur as rd
-	
-	numAxonSegments = 405
-	nodeSpacing = 100
-	comptLen = 10e-6
-	comptDia = 2e-6 # 2x usual
-	RM = 100.0 # 10x usual
-	RA = 5.0
-	CM = 0.001 # 0.1x usual
-	
-	nodeDia = 1e-6
-	nodeRM = 1.0
-	nodeCM = 0.01
-	
-	def makeAxonProto():
-	    axon = moose.Neuron( '/library/axon' )
-	    x = 0.0
-	    y = 0.0
-	    prev = rd.buildCompt( axon, 'soma', RM = RM, RA = RA, CM = CM, dia = 10e-6, x=0, dx=comptLen)
-	    theta = 0
-	    x = comptLen
-	
-	    for i in range( numAxonSegments ):
-	        r = comptLen
-	        dx = comptLen * np.cos( theta )
-	        dy = comptLen * np.sin( theta )
-	        r = np.sqrt( x * x + y * y )
-	        theta += comptLen / r
-	        if i % nodeSpacing == 0:
-	            compt = rd.buildCompt( axon, 'axon' + str(i), RM = nodeRM, RA = RA, CM = nodeCM, x = x, y = y, dx = dx, dy = dy, dia = nodeDia )
-	        else:
-	            compt = rd.buildCompt( axon, 'axon' + str(i), RM = RM, RA = RA, CM = CM, x = x, y = y, dx = dx, dy = dy, dia = comptDia )
-	        moose.connect( prev, 'axial', compt, 'raxial' )
-	        prev = compt
-	        x += dx
-	        y += dy
-	    
-	    return axon
-	
-	moose.Neutral( '/library' )
-	makeAxonProto()
-	
-	rdes = rd.rdesigneur(
-	    chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
-	    cellProto = [['elec','axon']],
-	    chanDistrib = [
-	        ['Na', '#', 'Gbar', '12000 * (dia < 1.5e-6)' ],
-	        ['K', '#', 'Gbar', '3600 * (dia < 1.5e-6)' ]],
-	    stimList = [['soma', '1', '.', 'inject', '(t>0.01 && t<0.2) * 1e-10' ]],
-	    plotList = [['soma,axon100,axon200,axon300,axon400', '1', '.', 'Vm', 'Membrane potential']],
-	    moogList = [['#', '1', '.', 'Vm', 'Vm (mV)']]
-	)
-	
-	rdes.buildModel()
-	
-	for i in moose.wildcardFind( "/model/elec/#/Na" ):
-	    print i.parent.name, i.Gbar
-	
-	moose.reinit()
-	
-	rdes.displayMoogli( 0.00005, 0.05, 0.0 )
-
-
-When you run the example, keep an eye out for a few things:
-
-+	**saltatory conduction:** This is the way the action potential jumps
-	from one node of Ranvier to the next. Between the nodes it is just
-	passive propagation.
-+	**Failure to propagate:** Observe that the second and fourth action
-	potentials fails to trigger propagation along the axon. Here we have
-	specially tuned the model properties so that this happens. With a larger
-	RA of 10.0, the model will be more reliable.
-+	**Speed:** Compare the propagation speed with the previous, 
-	unmyelinated axon. Note that the current model is larger!
-
-
-![Myelinated axon with propagating action potential. Narrow juntion is Ranvier's node](../../images/rdes3.2_myelinated_axon.png)
-
-
-### Reaction system in a single compartment
-Here we use the compartment as a place in which to embed a chemical model.
-The chemical oscillator model is predefined in the rdesigneur prototypes.
-
-	import moose
-	import pylab
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-    		turnOffElec = True,
-    		diffusionLength = 1e-3, # Default diffusion length is 2 microns
-    		chemProto = [['makeChemOscillator()', 'osc']],
-    		chemDistrib = [['osc', 'soma', 'install', '1' ]],
-    		plotList = [['soma', '1', 'dend/a', 'conc', 'a Conc'],
-        		['soma', '1', 'dend/b', 'conc', 'b Conc']]
-	)
-	rdes.buildModel()
-	b = moose.element( '/model/chem/dend/b' )
-	b.concInit *= 5
-	moose.reinit()
-	moose.start( 200 )
-	
-	rdes.display()
-
-In this special case we set the turnOffElec flag to True, so that Rdesigneur 
-only sets up chemical and not electrical calculations.  This makes the 
-calculations much faster, since we disable electrical calculations and delink
-chemical calculations from them.
-
-We also have a line which sets the `diffusionLength` to 1 mm, so that it is 
-bigger than the 0.5 mm squid axon segment in the default compartment. If you 
-don't do this the system will subdivide the compartment into the default 
-2 micron voxels for the purposes of putting in a reaction-diffusion system.
-We discuss this case below.
-
-Note how the *plotList* is done here. To remind you, each entry has five 
-arguments
-
-	[region_in_cell, region_expression, moose_object, parameter, title_of_plot]
-
-The change from the earlier usage is that the `moose_object` now refers to 
-a chemical entity, in this example the molecule *dend/a*. The simulator 
-builds a default chemical compartment named *dend* to hold the reactions 
-defined in the *chemProto*. What we do in this plot is to select molecule *a*
-sitting in *dend*, and plot its concentration. Then we do this again for
-molecule *b*. 
-
-After the model is built, we add a couple of lines to change the 
-initial concentration of the molecular pool *b*. Note its full path within 
-MOOSE: */model/chem/dend/b*. It is scaled up 5x to give rise to slowly 
-decaying oscillations.
-
-![Plot for single-compartment reaction simulation ](../../images/rdes4_osc.png)
-
-### Reaction-diffusion system
-
-In order to see what a reaction-diffusion system looks like, delete the
-`diffusionLength` expression in the previous example and add a couple of lines
-to set up 3-D graphics for the reaction-diffusion product: 
-
-	import moose
-	import pylab
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-    		turnOffElec = True,
-    		chemProto = [['makeChemOscillator()', 'osc']],
-    		chemDistrib = [['osc', 'soma', 'install', '1' ]],
-    		plotList = [['soma', '1', 'dend/a', 'conc', 'Concentration of a'],
-        		['soma', '1', 'dend/b', 'conc', 'Concentration of b']],
-    		moogList = [['soma', '1', 'dend/a', 'conc', 'a Conc', 0, 360 ]]
-	)
-
-	rdes.buildModel()
-	bv = moose.vec( '/model/chem/dend/b' )
-	bv[0].concInit *= 2
-	bv[-1].concInit *= 2
-	moose.reinit()
-
-	rdes.displayMoogli( 1, 400, 0.001 )
-
-
-
-This is the line we deleted. 
-
-    	diffusionLength = 1e-3,
-
-With this change we permit
-*rdesigneur* to use the default diffusion length of 2 microns. 
-The 500-micron axon segment is now subdivided into 250 voxels, each of 
-which has a reaction system and diffusing molecules. To make it more 
-picturesque, we have added a line after the plotList, to display the outcome 
-in 3-D:
-
-	moogList = [['soma', '1', 'dend/a', 'conc', 'a Conc', 0, 360 ]]
-
-This line says: take the model compartments defined by `soma` as the region
-to display, do so throughout the the geometry (the `1` signifies this), and
-over this range find the chemical entity defined by `dend/a`. For each `a`
-molecule, find the `conc` and dsiplay it. There are two optional arguments, 
-`0` and `360`, which specify the low and high value of the displayed variable.
-
-In order to initially break the symmetry of the system, we change the initial
-concentration of molecule b at each end of the cylinder:
-
-	bv[0].concInit *= 2
-	bv[-1].concInit *= 2
-
-If we didn't do this the entire system would go through a few cycles of 
-decaying oscillation and then reach a boring, spatially uniform, steady state.
-Try putting an initial symmetry break elsewhere to see what happens.
-
-To display the concenctration changes in the 3-D soma as the simulation runs,
-we use the line
-
-	`rdes.displayMoogli( 1, 400, 0.001 )`
-
-The arguments mean: *displayMoogli( frametime, runtime, rotation )*
-Here, 
-
-	frametime = time by which simulation advances between display updates
-	runtime = Total simulated time
-	rotation = angle by which display rotates in each frame, in radians.
-
-When we run this, we first get a 3-D display with the oscillating 
-reaction-diffusion system making its way inward from the two ends. After the
-simulation ends the plots for all compartments for the whole run come up.
-
-
-![Display for oscillatory reaction-diffusion simulation ](../../images/rdes5_reacdiff.png)
-
-### Primer on using the 3-D MOOGLI display
-Here is a short primer on the 3-D display controls.
-
-- *Roll, pitch, and yaw*: Use the letters *r*, *p*, and *y*. To rotate 
-backwards, use capitals.
-- *Zoom out and in*: Use the *,* and *.* keys, or their upper-case equivalents,
-*<* and *>*. Easier to remember if you think in terms of the upper-case.
-- *Left/right/up/down*: Arrow keys.
-- *Quit*: control-q or control-w.
-- You can also use the mouse or trackpad to control most of the above. 
-- By default rdesigneur gives Moogli a small rotation each frame. It is the
-*rotation* argument in the line:
-
-	`displayMoogli( frametime, runtime, rotation )`
-
-These controls operate over and above this rotation, but the rotation 
-continues. If you set the rotation to zero you can, with a suitable flick of
-the mouse, get the image to rotate in any direction you choose as long as the
-window is updating.
-
-### Make a toy multiscale model with electrical and chemical signaling.
-Now we put together chemical and electrical models. In this toy model we have an
-HH-squid type single compartment electrical model, cohabiting with a chemical
-oscillator. The chemical oscillator regulates K+ channel amounts, and the
-average membrane potential regulates the amounts of a reactant in the 
-chemical oscillator. This is a recipe for some strange firing patterns.
-
-	import moose
-	import pylab
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-        	# We want just one compartment so we set diffusion length to be
-        	# bigger than the 0.5 mm HH axon compartment default. 
-    			diffusionLength = 1e-3,
-    			chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
-    			chanDistrib = [
-        			['Na', 'soma', 'Gbar', '1200' ],
-        			['K', 'soma', 'Gbar', '360' ]],
-    		chemProto = [['makeChemOscillator()', 'osc']],
-    		chemDistrib = [['osc', 'soma', 'install', '1' ]],
-       		# These adaptor parameters give interesting-looking but
-       		# not particularly physiological behaviour.
-    		adaptorList = [
-        		[ 'dend/a', 'conc', 'Na', 'modulation', 1, -5.0 ],
-        		[ 'dend/b', 'conc', 'K', 'modulation', 1, -0.2],
-        		[ 'dend/b', 'conc', '.', 'inject', -1.0e-7, 4e-7 ],
-        		[ '.', 'Vm', 'dend/s', 'conc', 2.5, 20.0 ]
-    		],
-    		plotList = [['soma', '1', 'dend/a', 'conc', 'a Conc'],
-        		['soma', '1', 'dend/b', 'conc', 'b Conc'],
-        		['soma', '1', 'dend/s', 'conc', 's Conc'],
-        		['soma', '1', 'Na', 'Gk', 'Na Gk'],
-        		['soma', '1', '.', 'Vm', 'Membrane potential']
-		]
-	)
-
-	rdes.buildModel()
-	moose.reinit()
-	moose.start( 250 ) # Takes a few seconds to run this.
-
-	rdes.display()
-
-We've already modeled the HH squid model and the oscillator individually,
-and you should recognize the parts of those models above.
-The new section that makes this work the *adaptorList* which specifies how 
-the electrical and chemical parts talk to each other. This entirely
-fictional set of interactions goes like this:
-
-	[ 'dend/a', 'conc', 'Na', 'modulation', 1, -5.0 ]
-
-+	*dend/a*: The originating variable comes from the 'a' pool on the
-	'dend' compartment.
-
-	*conc*: This is the originating variable name on the 'a' pool.
-
-	*Na*: This is the target variable
-
-	*modulation*: scale the Gbar of Na up and down. Use 'modulation'
-	rather than direct assignment of Gbar since Gbar is different for
-	each differently-sized compartment. 
-
-	*1*: This is the initial offset
-
-	*-5.0*: This is the scaling from the input to the parameter updated
-	in the simulation.
-
-A similar set of adaptor entries couple the molecule  *dend/b* to the 
-K channel, *dend/b* again to the current injection into the soma, and the 
-membrane potential to the concentration of *dend/s*. 
-
-
-![Plot for toy multiscale model ](../../images/rdes6_multiscale.png)
-
-### Morphology: Load .swc morphology file and view it
-Here we build a passive model using a morphology file in the .swc file format
-(as used by NeuroMorpho.org). The morphology file is predefined for Rdesigneur
-and resides in the 
-directory `./cells`. We apply a somatic current pulse, and view
-the somatic membrane potential in a plot, as before. 
-To make things interesting we display the morphology in 3-D upon which we
-represent the membrane potential as colors.
-
-	import moose
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-		cellProto = [['./cells/h10.CNG.swc', 'elec']],
-		stimList = [['soma', '1', '.', 'inject', 't * 25e-9' ]], 
-		plotList = [['#', '1', '.', 'Vm', 'Membrane potential'],
-			['#', '1', 'Ca_conc', 'Ca', 'Ca conc (uM)']],
-		moogList = [['#', '1', '.', 'Vm', 'Soma potential']]
-	)
-
-	rdes.buildModel()
-
-	moose.reinit()
-	rdes.displayMoogli( 0.0002, 0.1 )
-
-Here the new concept is the cellProto line, which loads in the specified cell
-model:
-
-	`[ filename, cellname ]`
-
-The system recognizes the filename extension and builds a model from the swc
-file. It uses the cellname **elec** in this example.
-
-We use a similar line as in the reaction-diffusion example, to build up a 
-Moogli display of the cell model:
-
-	`moogList = [['#', '1', '.', 'Vm', 'Soma potential']]`
-
-Here we have:
-
-	*#*: the path to use for selecting the compartments to display. 
-	This wildcard means use all compartments.
-	*1*: The expression to use for the compartments. Again, `1` means use
-	all of them.
-	*.*: Which object in the compartment to display. Here we are using the
-	compartment itself, so it is just a dot.
-	*Vm*: Field to display
-	*Soma potential*: Title for display.
-
-![3-D display for passive neuron](../../images/rdes7_passive.png)
-
-### Build an active neuron model by putting channels into a morphology file
-We load in a morphology file and distribute voltage-gated ion channels over 
-the neuron. Here the voltage-gated channels are obtained from a number of 
-channelML files, located in the `./channels` subdirectory. Since we have a 
-spatially extended neuron, we need to specify the spatial distribution of 
-channel densities too. 
-
-
-	import moose
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-    	chanProto = [
-        	['./chans/hd.xml'],
-        	['./chans/kap.xml'],
-        	['./chans/kad.xml'],
-        	['./chans/kdr.xml'],
-        	['./chans/na3.xml'],
-        	['./chans/nax.xml'],
-        	['./chans/CaConc.xml'],
-        	['./chans/Ca.xml']
-    	],
-    	cellProto = [['./cells/h10.CNG.swc', 'elec']],
-    	chanDistrib = [ \
-        	["hd", "#dend#,#apical#", "Gbar", "50e-2*(1+(p*3e4))" ],
-        	["kdr", "#", "Gbar", "p < 50e-6 ? 500 : 100" ],
-        	["na3", "#soma#,#dend#,#apical#", "Gbar", "850" ],
-        	["nax", "#soma#,#axon#", "Gbar", "1250" ],
-        	["kap", "#axon#,#soma#", "Gbar", "300" ],
-        	["kap", "#dend#,#apical#", "Gbar",
-            	"300*(H(100-p*1e6)) * (1+(p*1e4))" ],
-        	["Ca_conc", "#", "tau", "0.0133" ],
-        	["kad", "#soma#,#dend#,#apical#", "Gbar", "50" ],
-        	["Ca", "#", "Gbar", "50" ]
-    	],
-    	stimList = [['soma', '1', '.', 'inject', '(t>0.02) * 1e-9' ]],
-    	plotList = [['#', '1', '.', 'Vm', 'Membrane potential'],
-            	['#', '1', 'Ca_conc', 'Ca', 'Ca conc (uM)']],
-    	moogList = [['#', '1', 'Ca_conc', 'Ca', 'Calcium conc (uM)', 0, 120],
-        	['#', '1', '.', 'Vm', 'Soma potential']]
-	)
-	
-	rdes.buildModel()
-	
-	moose.reinit()
-	rdes.displayMoogli( 0.0002, 0.052 )
-
-
-Here we make more extensive use of two concepts which we've already seen from 
-the single compartment squid model:
-
-1. *chanProto*: This defines numerous channels, each of which is of the form:
-
-	`[ filename ]`
-
-	or 
-
-	`[ filename, channelname ]`
-
-If the *channelname* is not specified the system uses the last part of the
-channel name, before the filetype suffix.
-
-2. *chanDistrib*: This defines the spatial distribution of each channel type.
-Each line is of a form that should be familiar now:
-
-	`[channelname, region_in_cell, parameter, expression_string]`
-
-- The *channelname* is the name of the prototype from *chanproto*. This is 
-usually an ion channel, but in the example above you can also see a calcium 
-concentration pool defined.
-- The *region_in_cell* is typically defined using wildcards, so that it
-generalizes to any cell morphology.
-For example, the plain wildcard `#` means to consider 
-all cell compartments. The wildcard `#dend#` means to consider all compartments with the string `dend`
-somewhere in the name. Wildcards can be comma-separated, so 
-`#soma#,#dend#` means consider all compartments with either soma or dend in
-their name. The naming in MOOSE is defined by the model file. Importantly,
-in **.swc** files MOOSE generates names that respect the classification of 
-compartments into axon, soma, dendrite, and apical dendrite compartments 
-respectively. SWC files generate compartment names such as:
-
-		soma_<number>
-		dend_<number>
-		apical_<number>
-		axon_<number>
-
-where the number is automatically assigned by the reader. In order to 
-select all dendritic compartments, for example, one would use *"#dend#"*
-where the *"#"* acts as a wildcard to accept any string.
-- The *parameter* is usually Gbar, the channel conductance density in *S/m^2*.
-If *Gbar* is zero or less, then the system economizes by not incorporating this
-channel mechanism in this part of the cell. Similarly, for calcium pools, if 
-the *tau* is below zero then the calcium pool object is simply not inserted 
-into this part of the cell.
-- The *expression_string* defines the value of the parameter, such as Gbar.
-This is typically a function of position in the cell. The expression evaluator 
-knows about several parameters of cell geometry. All units are in metres: 
-
-+ *x*, *y* and *z* coordinates.
-+ *g*, the geometrical distance from the soma
-+ *p*, the path length from the soma, measured along the dendrites. 
-+ *dia*, the diameter of the dendrite.
-+ *L*, The electrotonic length from the soma (no units).
-
-Along with these geometrical arguments, we make liberal use of the Heaviside 
-function H(x) to set up the channel distributions. The expression evaluator
-also knows about pretty much all common algebraic, trignometric, and logarithmic
-functions, should you wish to use these.
-
-Also note the two Moogli displays. The first is the calcium 
-concentration. The second is the membrane potential in each compartment. Easy!
-
-![3-D display for active neuron](../../images/rdes8_active.png)
-
-### Build a spiny neuron from a morphology file and put active channels in it.
-This model is one step elaborated from the previous one, in that we now also
-have dendritic spines. MOOSE lets one decorate a bare neuronal morphology file 
-with dendritic spines, specifying various geometric parameters of their
-location. As before, we use an swc file for the morphology, and the same 
-ion channels and distribution.
-
-	import moose
-	import pylab
-	import rdesigneur as rd
-	rdes = rd.rdesigneur(
-    	chanProto = [
-        	['./chans/hd.xml'],
-        	['./chans/kap.xml'],
-        	['./chans/kad.xml'],
-        	['./chans/kdr.xml'],
-        	['./chans/na3.xml'],
-        	['./chans/nax.xml'],
-        	['./chans/CaConc.xml'],
-        	['./chans/Ca.xml']
-    	],
-    	cellProto = [['./cells/h10.CNG.swc', 'elec']],
-    	spineProto = [['makeActiveSpine()', 'spine']],
-    	chanDistrib = [
-        	["hd", "#dend#,#apical#", "Gbar", "50e-2*(1+(p*3e4))" ],
-        	["kdr", "#", "Gbar", "p < 50e-6 ? 500 : 100" ],
-        	["na3", "#soma#,#dend#,#apical#", "Gbar", "850" ],
-        	["nax", "#soma#,#axon#", "Gbar", "1250" ],
-        	["kap", "#axon#,#soma#", "Gbar", "300" ],
-        	["kap", "#dend#,#apical#", "Gbar",
-            	"300*(H(100-p*1e6)) * (1+(p*1e4))" ],
-        	["Ca_conc", "#", "tau", "0.0133" ],
-        	["kad", "#soma#,#dend#,#apical#", "Gbar", "50" ],
-        	["Ca", "#", "Gbar", "50" ]
-    	],
-    	spineDistrib = [['spine', '#dend#,#apical#', '20e-6', '1e-6']],
-    	stimList = [['soma', '1', '.', 'inject', '(t>0.02) * 1e-9' ]],
-    	plotList = [['#', '1', '.', 'Vm', 'Membrane potential'],
-            	['#', '1', 'Ca_conc', 'Ca', 'Ca conc (uM)']],
-    	moogList = [['#', '1', 'Ca_conc', 'Ca', 'Calcium conc (uM)', 0, 120],
-        	['#', '1', '.', 'Vm', 'Soma potential']]
-	)
-	
-	rdes.buildModel()
-	
-	moose.reinit()
-	rdes.displayMoogli( 0.0002, 0.023 )
-
-
-Spines are set up in a familiar way: we first define one (or more) prototype
-spines, and then distribute these around the cell. Here is the prototype
-string:
-
-    	[spine_proto, spinename]
-
-*spineProto*: This is typically a function. One can define one's own,
-but there are several predefined ones in rdesigneur. All these define a 
-spine with the following parameters:
-
-- head diameter 0.5 microns
-- head length 0.5 microns
-- shaft length 1 micron
-- shaft diameter of 0.2 microns
-- RM = 1.0 ohm-metre square
-- RA = 1.0 ohm-meter
-- CM = 0.01 Farads per square metre.
-	
-Here are the predefined spine prototypes:
-
-- *makePassiveSpine()*: This just makes a passive spine with the 
-default parameters
-- *makeExcSpine()*: This makes a spine with NMDA and glu receptors,
-and also a calcium pool. The NMDA channel feeds the Ca pool.
-- *makeActiveSpine()*: This adds a Ca channel to the exc_spine.
-and also a calcium pool.
-
-The spine distributions are specified in a familiar way for the first few 
-arguments, and then there are multiple (optional) spine-specific parameters:
-
-*[spinename, region_in_cell, spacing, spacing_distrib, size, size_distrib, angle, angle_distrib ]*
-
-Only the first two arguments are mandatory.
-
-- *spinename*: The prototype name
-- *region_in_cell*: Usual wildcard specification of names of compartments in which to put the spines.
-- *spacing*: Math expression to define spacing between spines. In the current implementation this evaluates to `1/probability_of_spine_per_unit_length`.
-Defaults to 10 microns. Thus, there is a 10% probability of a spine insertion in every micron. This evaluation method has the drawback that it is possible to space spines rather too close to each other. If spacing is zero or less, no spines are inserted.
-- *spacing_distrib*: Math expression for distribution of spacing. In the current implementation, this specifies the interval at which the system samples from the spacing probability above. Defaults to 1 micron.
-- *size*: Linear scale factor for size of spine. All dimensions are scaled by this factor. The default spine head here is 0.5 microns in diameter and length. If the scale factor were to be 2, the volume would be 8 times as large. Defaults to 1.0.
-- *size_distrib*: Range for size of spine. A random number R is computed in the range 0 to 1, and the final size used is `size + (R - 0.5) * size_distrib`. Defaults to 0.5
-- *angle*: This specifies the initial angle at which the spine sticks out of the dendrite. If all angles were zero, they would all point away from the soma. Defaults to 0 radians.
-- *angle_distrib*: Specifies a random number to add to the initial angle. Defaults to 2 PI radians, so the spines come out in any direction.
-
-One may well ask why we are not using a Python dictionary to handle all 
-these parameters. Short answer is: terseness. Longer answer is that the 
-rdesigneur format is itself meant to be an intermediate form for an 
-eventual high-level, possibly XML-based multiscale modeling format.
-
-![3-D display for spiny active neuron](../../images/rdes9_spiny_active.png)
-
-### Build a spiny neuron from a morphology file and put a reaction-diffusion system in it.
-Rdesigneur is specially designed to take reaction systems with a dendrite,
-a spine head, and a spine PSD compartment, and embed these systems into 
-neuronal morphologies. This example shows how this is done.
-
-The dendritic molecules diffuse along the dendrite
-in the region specified by the *chemDistrib* keyword. In this case they are
-placed on all apical and basal dendrites, but only at distances over 
-500 microns from the soma. The spine head and PSD 
-reaction systems are inserted only into spines within this same *chemDistrib*
-zone. Diffusion coupling between dendrite, and each spine head and PSD is also 
-set up.
-It takes a predefined chemical model file for Rdesigneur, which resides 
-in the `./chem` subdirectory. As in an earlier example, we turn off the 
-electrical calculations here as they are not needed. 
-Here we plot out the number of receptors on every single spine as a function
-of time.
-
-(Documentation still to come here)
-
-### Make a full multiscale model with complex spiny morphology and electrical and chemical signaling.
-
-(Documentation still to come here)
+-----
+
+# **Rdesigneur: Building multiscale models**
+
+Upi Bhalla
+
+Dec 28 2015.
+
+-----
+
+## Contents
+	
+
+## Introduction
+
+**Rdesigneur** (Reaction Diffusion and Electrical SIGnaling in NEURons) is an
+interface to the multiscale modeling capabilities in MOOSE. It is designed
+to build models incorporating biochemical signaling pathways in 
+dendrites and spines, coupled to electrical events in neurons. Rdesigneur
+assembles models from predefined parts: it delegates the details to 
+specialized model definition formats. Rdesigneur combines one or more of
+the following cell parts to build models:
+
+*	Neuronal morphology
+*	Dendritic spines
+*	Ion channels
+*	Reaction systems
+
+Rdesigneur's main role is to specify how these are put together, including 
+assigning parameters to do so. Rdesigneur also helps with setting up the
+simulation input and output.
+
+## Quick Start
+Here we provide a few use cases, building up from a minimal model to a 
+reasonably complete multiscale model spanning chemical and electrical signaling.
+
+### Bare Rdesigneur: single passive compartment
+If we don't provide any arguments at all to the Rdesigneur, it makes a model
+with a single passive electrical compartment in the MOOSE path 
+`/model/elec/soma`. Here is how to do this:
+
+	import moose
+	import rdesigneur as rd
+	rdes = rd.rdesigneur()
+	rdes.buildModel()
+
+To confirm that it has made a compartment with some default values we can add 
+a line:
+	
+	moose.showfields( rdes.soma )
+
+This should produce the output:
+
+	[ /model[0]/elec[0]/soma[0] ]
+	diameter         = 0.0005
+	fieldIndex       = 0
+	Ra               = 7639437.26841
+	y0               = 0.0
+	Rm               = 424413.177334
+	index            = 0
+	numData          = 1
+	inject           = 0.0
+	initVm           = -0.065
+	Em               = -0.0544
+	y                = 0.0
+	numField         = 1
+	path             = /model[0]/elec[0]/soma[0]
+	dt               = 0.0
+	tick             = -2
+	z0               = 0.0
+	name             = soma
+	Cm               = 7.85398163398e-09
+	x0               = 0.0
+	Vm               = -0.06
+	className        = ZombieCompartment
+	idValue          = 465
+	length           = 0.0005
+	Im               = 1.3194689277e-08
+	x                = 0.0005
+	z                = 0.0
+
+
+### Simulate and display current pulse to soma
+A more useful script would run and display the model. Rdesigneur can help with
+the stimulus and the plotting. This simulation has the same passive 
+compartment, and current is injected as the simulation runs.
+This script displays the membrane potential of the soma as it charges and 
+discharges.
+
+	import moose
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+		stimList = [['soma', '1', '.', 'inject', '(t>0.1 && t<0.2) * 2e-8']],
+		plotList = [['soma', '1', '.', 'Vm', 'Soma membrane potential']],
+	)
+	rdes.buildModel()
+	moose.reinit()
+	moose.start( 0.3 )
+	rdes.display()
+
+The *stimList* defines a stimulus. Each entry has five arguments:
+
+	`[region_in_cell, region_expression, moose_object, parameter, expression_string]`
+
++	`region_in_cell` specifies the objects to stimulate. Here it is just the
+	soma.
++	`region_expression` specifies a geometry based calculation to decide
+	whether to apply the stimulus. The value must be >0 for the stimulus
+	to be present. Here it is just 1.
+	`moose_object` specifies the simulation object to operate upon during 
+	the stimulus. Here the `.` means that it is the soma itself. In other
+	models it might be a channel on the soma, or a synapse, and so on.
++	`parameter` specifies the simulation parameter on the moose object that
+	the stimulus will modify. Here it is
+	the injection current to the soma compartment.
++	`expression_string` calculates the value of the parameter, typically
+	as a function of time. Here we use the function 
+	`(t>0.1 && t<0.2) * 2e-8` which evaluates as 2e-8 between the times of
+	0.1 and 0.2 seconds.
+
+To summarise this, the *stimList* here means *inject a current of 20nA to the
+soma between the times of 0.1 and 0.2 s*.
+
+The *plotList* defines what to plot. It has a similar set of arguments:
+
+	`[region_in_cell, region_expression, moose_object, parameter, title_of_plot]`
+These mean the same thing as for the stimList except for the title of the plot.
+
+The *rdes.display()* function causes the plots to be displayed.
+
+![Plot for current input to passive compartment](../../images/rdes2_passive_squid.png)
+
+When we run this we see an initial depolarization as the soma settles from its
+initial -65 mV to a resting Em = -54.4 mV. These are the original HH values, see
+the example above. At t = 0.1 seconds there is another depolarization due
+to the current injection, and at t = 0.2 seconds this goes back to the resting
+potential.
+
+### HH Squid model in a single compartment
+Here we put the Hodgkin-Huxley squid model channels into a passive compartment.
+The HH channels are predefined as prototype channels for Rdesigneur,
+
+	import moose
+	import pylab
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+    	chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
+    	chanDistrib = [
+        	['Na', 'soma', 'Gbar', '1200' ],
+        	['K', 'soma', 'Gbar', '360' ]],
+    	stimList = [['soma', '1', '.', 'inject', '(t>0.1 && t<0.2) * 1e-8' ]],
+    	plotList = [['soma', '1', '.', 'Vm', 'Membrane potential']]
+	)
+	
+	rdes.buildModel()
+	moose.reinit()
+	moose.start( 0.3 )
+	rdes.display()
+
+
+Here we introduce two new model specification lines:
+
++	**chanProto**: This specifies which ion channels will be used in the 
+	model.
+	Each entry here has two fields: the source of the channel definition,
+	and (optionally) the name of the channel.
+	In this example we specify two channels, an Na and a K channel using
+	the original Hodgkin-Huxley parameters. As the source of the channel
+	definition we use the name of the  Python function that builds the 
+	channel. The *make_HH_Na()* and *make_HH_K()* functions are predefined 
+	but we can also specify our own functions for making prototypes.
+	We could also have specified the channel prototype using the name
+	of a channel definition file in ChannelML (a subset of NeuroML) format.
++	**chanDistrib**: This specifies  *where* the channels should be placed
+	over the geometry of the cell. Each entry in the chanDistrib list 
+	specifies the distribution of parameters for one channel using four 
+	entries: 
+
+	`[object_name, region_in_cell, parameter, expression_string]`
+
+	In this case the job is almost trivial, since we just have a single 
+	compartment named *soma*. So the line
+
+	`['Na', 'soma', 'Gbar', '1200' ]`
+
+	means *Put the Na channel in the soma, and set its maximal 
+	conductance density (Gbar) to 1200 Siemens/m^2*. 
+
+As before we apply a somatic current pulse. Since we now have HH channels in
+the model, this generates action potentials.
+
+![Plot for HH squid simulation ](../../images/rdes3_squid.png)
+
+### HH Squid model in an axon
+Here we put the Hodgkin-Huxley squid model into a long compartment that is
+subdivided into many segments, so that we can watch action potentials 
+propagate. Most of this example is boilerplate code to build a spiral axon.
+There is a short *rdesigneur* segment that takes
+the spiral axon prototype and populates it with channels, and sets up the
+display. Later examples will show you how to read morphology files to specify
+the neuronal geometry.
+
+	import numpy as np
+	import moose
+	import pylab
+	import rdesigneur as rd
+
+	numAxonSegments = 200
+	comptLen = 10e-6
+	comptDia = 1e-6
+	RM = 1.0
+	RA = 10.0
+	CM = 0.01
+	
+	def makeAxonProto():
+    		axon = moose.Neuron( '/library/axon' )
+    		prev = rd.buildCompt( axon, 'soma', RM = RM, RA = RA, CM = CM, dia = 10e-6, x=0, dx=comptLen)
+    		theta = 0
+    		x = comptLen
+    		y = 0.0
+
+    		for i in range( numAxonSegments ):
+        		dx = comptLen * np.cos( theta )
+        		dy = comptLen * np.sin( theta )
+        		r = np.sqrt( x * x + y * y )
+        		theta += comptLen / r
+        		compt = rd.buildCompt( axon, 'axon' + str(i), RM = RM, RA = RA, CM = CM, x = x, y = y, dx = dx, dy = dy, dia = comptDia )
+        		moose.connect( prev, 'axial', compt, 'raxial' )
+        		prev = compt
+        		x += dx
+        		y += dy
+    		
+    		return axon
+
+	moose.Neutral( '/library' )
+	makeAxonProto()
+
+	rdes = rd.rdesigneur(
+    		chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
+    		cellProto = [['elec','axon']],
+    		chanDistrib = [
+        		['Na', '#', 'Gbar', '1200' ],
+        		['K', '#', 'Gbar', '360' ]],
+    		stimList = [['soma', '1', '.', 'inject', '(t>0.01 && t<0.2) * 2e-11' ]],
+    		plotList = [['soma', '1', '.', 'Vm', 'Membrane potential']],
+    		moogList = [['#', '1', '.', 'Vm', 'Vm (mV)']]
+)
+
+	rdes.buildModel()
+	moose.reinit()
+
+	rdes.displayMoogli( 0.00005, 0.05, 0.0 )
+
+![Axon with propagating action potential](../../images/rdes3.1_axon.png)
+
+Note how we explicitly create the prototype axon on '/library', and then 
+specify it using the *cellProto* line in the rdesigneur.
+The moogList specifies the 3-D display. See below for how to set up and use
+these displays.
+
+### HH Squid model in a myelinated axon
+This is a curious cross-species chimera model, where we embed the HH equations
+into a myelinated example model. As for the regular axon above, most of the
+example is boilerplate setup code. Note how we restrict the HH channels to the
+nodes of Ranvier using a conditional test for the diameter of the axon
+segment.
+
+	
+	import numpy as np
+	import moose
+	import pylab
+	import rdesigneur as rd
+	
+	numAxonSegments = 405
+	nodeSpacing = 100
+	comptLen = 10e-6
+	comptDia = 2e-6 # 2x usual
+	RM = 100.0 # 10x usual
+	RA = 5.0
+	CM = 0.001 # 0.1x usual
+	
+	nodeDia = 1e-6
+	nodeRM = 1.0
+	nodeCM = 0.01
+	
+	def makeAxonProto():
+	    axon = moose.Neuron( '/library/axon' )
+	    x = 0.0
+	    y = 0.0
+	    prev = rd.buildCompt( axon, 'soma', RM = RM, RA = RA, CM = CM, dia = 10e-6, x=0, dx=comptLen)
+	    theta = 0
+	    x = comptLen
+	
+	    for i in range( numAxonSegments ):
+	        r = comptLen
+	        dx = comptLen * np.cos( theta )
+	        dy = comptLen * np.sin( theta )
+	        r = np.sqrt( x * x + y * y )
+	        theta += comptLen / r
+	        if i % nodeSpacing == 0:
+	            compt = rd.buildCompt( axon, 'axon' + str(i), RM = nodeRM, RA = RA, CM = nodeCM, x = x, y = y, dx = dx, dy = dy, dia = nodeDia )
+	        else:
+	            compt = rd.buildCompt( axon, 'axon' + str(i), RM = RM, RA = RA, CM = CM, x = x, y = y, dx = dx, dy = dy, dia = comptDia )
+	        moose.connect( prev, 'axial', compt, 'raxial' )
+	        prev = compt
+	        x += dx
+	        y += dy
+	    
+	    return axon
+	
+	moose.Neutral( '/library' )
+	makeAxonProto()
+	
+	rdes = rd.rdesigneur(
+	    chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
+	    cellProto = [['elec','axon']],
+	    chanDistrib = [
+	        ['Na', '#', 'Gbar', '12000 * (dia < 1.5e-6)' ],
+	        ['K', '#', 'Gbar', '3600 * (dia < 1.5e-6)' ]],
+	    stimList = [['soma', '1', '.', 'inject', '(t>0.01 && t<0.2) * 1e-10' ]],
+	    plotList = [['soma,axon100,axon200,axon300,axon400', '1', '.', 'Vm', 'Membrane potential']],
+	    moogList = [['#', '1', '.', 'Vm', 'Vm (mV)']]
+	)
+	
+	rdes.buildModel()
+	
+	for i in moose.wildcardFind( "/model/elec/#/Na" ):
+	    print i.parent.name, i.Gbar
+	
+	moose.reinit()
+	
+	rdes.displayMoogli( 0.00005, 0.05, 0.0 )
+
+
+When you run the example, keep an eye out for a few things:
+
++	**saltatory conduction:** This is the way the action potential jumps
+	from one node of Ranvier to the next. Between the nodes it is just
+	passive propagation.
++	**Failure to propagate:** Observe that the second and fourth action
+	potentials fails to trigger propagation along the axon. Here we have
+	specially tuned the model properties so that this happens. With a larger
+	RA of 10.0, the model will be more reliable.
++	**Speed:** Compare the propagation speed with the previous, 
+	unmyelinated axon. Note that the current model is larger!
+
+
+![Myelinated axon with propagating action potential](../../images/rdes3.2_myelinated_axon.png)
+
+
+### Reaction system in a single compartment
+Here we use the compartment as a place in which to embed a chemical model.
+The chemical oscillator model is predefined in the rdesigneur prototypes.
+
+	import moose
+	import pylab
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+    		turnOffElec = True,
+    		diffusionLength = 1e-3, # Default diffusion length is 2 microns
+    		chemProto = [['makeChemOscillator()', 'osc']],
+    		chemDistrib = [['osc', 'soma', 'install', '1' ]],
+    		plotList = [['soma', '1', 'dend/a', 'conc', 'a Conc'],
+        		['soma', '1', 'dend/b', 'conc', 'b Conc']]
+	)
+	rdes.buildModel()
+	b = moose.element( '/model/chem/dend/b' )
+	b.concInit *= 5
+	moose.reinit()
+	moose.start( 200 )
+	
+	rdes.display()
+
+In this special case we set the turnOffElec flag to True, so that Rdesigneur 
+only sets up chemical and not electrical calculations.  This makes the 
+calculations much faster, since we disable electrical calculations and delink
+chemical calculations from them.
+
+We also have a line which sets the `diffusionLength` to 1 mm, so that it is 
+bigger than the 0.5 mm squid axon segment in the default compartment. If you 
+don't do this the system will subdivide the compartment into the default 
+2 micron voxels for the purposes of putting in a reaction-diffusion system.
+We discuss this case below.
+
+Note how the *plotList* is done here. To remind you, each entry has five 
+arguments
+
+	[region_in_cell, region_expression, moose_object, parameter, title_of_plot]
+
+The change from the earlier usage is that the `moose_object` now refers to 
+a chemical entity, in this example the molecule *dend/a*. The simulator 
+builds a default chemical compartment named *dend* to hold the reactions 
+defined in the *chemProto*. What we do in this plot is to select molecule *a*
+sitting in *dend*, and plot its concentration. Then we do this again for
+molecule *b*. 
+
+After the model is built, we add a couple of lines to change the 
+initial concentration of the molecular pool *b*. Note its full path within 
+MOOSE: */model/chem/dend/b*. It is scaled up 5x to give rise to slowly 
+decaying oscillations.
+
+![Plot for single-compartment reaction simulation ](../../images/rdes4_osc.png)
+
+### Reaction-diffusion system
+
+In order to see what a reaction-diffusion system looks like, delete the
+`diffusionLength` expression in the previous example and add a couple of lines
+to set up 3-D graphics for the reaction-diffusion product: 
+
+	import moose
+	import pylab
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+    		turnOffElec = True,
+    		chemProto = [['makeChemOscillator()', 'osc']],
+    		chemDistrib = [['osc', 'soma', 'install', '1' ]],
+    		plotList = [['soma', '1', 'dend/a', 'conc', 'Concentration of a'],
+        		['soma', '1', 'dend/b', 'conc', 'Concentration of b']],
+    		moogList = [['soma', '1', 'dend/a', 'conc', 'a Conc', 0, 360 ]]
+	)
+
+	rdes.buildModel()
+	bv = moose.vec( '/model/chem/dend/b' )
+	bv[0].concInit *= 2
+	bv[-1].concInit *= 2
+	moose.reinit()
+
+	rdes.displayMoogli( 1, 400, 0.001 )
+
+
+
+This is the line we deleted. 
+
+    	diffusionLength = 1e-3,
+
+With this change we permit
+*rdesigneur* to use the default diffusion length of 2 microns. 
+The 500-micron axon segment is now subdivided into 250 voxels, each of 
+which has a reaction system and diffusing molecules. To make it more 
+picturesque, we have added a line after the plotList, to display the outcome 
+in 3-D:
+
+	moogList = [['soma', '1', 'dend/a', 'conc', 'a Conc', 0, 360 ]]
+
+This line says: take the model compartments defined by `soma` as the region
+to display, do so throughout the the geometry (the `1` signifies this), and
+over this range find the chemical entity defined by `dend/a`. For each `a`
+molecule, find the `conc` and dsiplay it. There are two optional arguments, 
+`0` and `360`, which specify the low and high value of the displayed variable.
+
+In order to initially break the symmetry of the system, we change the initial
+concentration of molecule b at each end of the cylinder:
+
+	bv[0].concInit *= 2
+	bv[-1].concInit *= 2
+
+If we didn't do this the entire system would go through a few cycles of 
+decaying oscillation and then reach a boring, spatially uniform, steady state.
+Try putting an initial symmetry break elsewhere to see what happens.
+
+To display the concenctration changes in the 3-D soma as the simulation runs,
+we use the line
+
+	`rdes.displayMoogli( 1, 400, 0.001 )`
+
+The arguments mean: *displayMoogli( frametime, runtime, rotation )*
+Here, 
+
+	frametime = time by which simulation advances between display updates
+	runtime = Total simulated time
+	rotation = angle by which display rotates in each frame, in radians.
+
+When we run this, we first get a 3-D display with the oscillating 
+reaction-diffusion system making its way inward from the two ends. After the
+simulation ends the plots for all compartments for the whole run come up.
+
+
+![Display for oscillatory reaction-diffusion simulation ](../../images/rdes5_reacdiff.png)
+
+### Primer on using the 3-D MOOGLI display
+Here is a short primer on the 3-D display controls.
+
+- *Roll, pitch, and yaw*: Use the letters *r*, *p*, and *y*. To rotate 
+backwards, use capitals.
+- *Zoom out and in*: Use the *,* and *.* keys, or their upper-case equivalents,
+*<* and *>*. Easier to remember if you think in terms of the upper-case.
+- *Left/right/up/down*: Arrow keys.
+- *Quit*: control-q or control-w.
+- You can also use the mouse or trackpad to control most of the above. 
+- By default rdesigneur gives Moogli a small rotation each frame. It is the
+*rotation* argument in the line:
+
+	`displayMoogli( frametime, runtime, rotation )`
+
+These controls operate over and above this rotation, but the rotation 
+continues. If you set the rotation to zero you can, with a suitable flick of
+the mouse, get the image to rotate in any direction you choose as long as the
+window is updating.
+
+### Make a toy multiscale model with electrical and chemical signaling.
+Now we put together chemical and electrical models. In this toy model we have an
+HH-squid type single compartment electrical model, cohabiting with a chemical
+oscillator. The chemical oscillator regulates K+ channel amounts, and the
+average membrane potential regulates the amounts of a reactant in the 
+chemical oscillator. This is a recipe for some strange firing patterns.
+
+	import moose
+	import pylab
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+        	# We want just one compartment so we set diffusion length to be
+        	# bigger than the 0.5 mm HH axon compartment default. 
+    			diffusionLength = 1e-3,
+    			chanProto = [['make_HH_Na()', 'Na'], ['make_HH_K()', 'K']],
+    			chanDistrib = [
+        			['Na', 'soma', 'Gbar', '1200' ],
+        			['K', 'soma', 'Gbar', '360' ]],
+    		chemProto = [['makeChemOscillator()', 'osc']],
+    		chemDistrib = [['osc', 'soma', 'install', '1' ]],
+       		# These adaptor parameters give interesting-looking but
+       		# not particularly physiological behaviour.
+    		adaptorList = [
+        		[ 'dend/a', 'conc', 'Na', 'modulation', 1, -5.0 ],
+        		[ 'dend/b', 'conc', 'K', 'modulation', 1, -0.2],
+        		[ 'dend/b', 'conc', '.', 'inject', -1.0e-7, 4e-7 ],
+        		[ '.', 'Vm', 'dend/s', 'conc', 2.5, 20.0 ]
+    		],
+    		plotList = [['soma', '1', 'dend/a', 'conc', 'a Conc'],
+        		['soma', '1', 'dend/b', 'conc', 'b Conc'],
+        		['soma', '1', 'dend/s', 'conc', 's Conc'],
+        		['soma', '1', 'Na', 'Gk', 'Na Gk'],
+        		['soma', '1', '.', 'Vm', 'Membrane potential']
+		]
+	)
+
+	rdes.buildModel()
+	moose.reinit()
+	moose.start( 250 ) # Takes a few seconds to run this.
+
+	rdes.display()
+
+We've already modeled the HH squid model and the oscillator individually,
+and you should recognize the parts of those models above.
+The new section that makes this work the *adaptorList* which specifies how 
+the electrical and chemical parts talk to each other. This entirely
+fictional set of interactions goes like this:
+
+	[ 'dend/a', 'conc', 'Na', 'modulation', 1, -5.0 ]
+
++	*dend/a*: The originating variable comes from the 'a' pool on the
+	'dend' compartment.
+
+	*conc*: This is the originating variable name on the 'a' pool.
+
+	*Na*: This is the target variable
+
+	*modulation*: scale the Gbar of Na up and down. Use 'modulation'
+	rather than direct assignment of Gbar since Gbar is different for
+	each differently-sized compartment. 
+
+	*1*: This is the initial offset
+
+	*-5.0*: This is the scaling from the input to the parameter updated
+	in the simulation.
+
+A similar set of adaptor entries couple the molecule  *dend/b* to the 
+K channel, *dend/b* again to the current injection into the soma, and the 
+membrane potential to the concentration of *dend/s*. 
+
+
+![Plot for toy multiscale model ](../../images/rdes6_multiscale.png)
+
+### Morphology: Load .swc morphology file and view it
+Here we build a passive model using a morphology file in the .swc file format
+(as used by NeuroMorpho.org). The morphology file is predefined for Rdesigneur
+and resides in the 
+directory `./cells`. We apply a somatic current pulse, and view
+the somatic membrane potential in a plot, as before. 
+To make things interesting we display the morphology in 3-D upon which we
+represent the membrane potential as colors.
+
+	import moose
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+		cellProto = [['./cells/h10.CNG.swc', 'elec']],
+		stimList = [['soma', '1', '.', 'inject', 't * 25e-9' ]], 
+		plotList = [['#', '1', '.', 'Vm', 'Membrane potential'],
+			['#', '1', 'Ca_conc', 'Ca', 'Ca conc (uM)']],
+		moogList = [['#', '1', '.', 'Vm', 'Soma potential']]
+	)
+
+	rdes.buildModel()
+
+	moose.reinit()
+	rdes.displayMoogli( 0.0002, 0.1 )
+
+Here the new concept is the cellProto line, which loads in the specified cell
+model:
+
+	`[ filename, cellname ]`
+
+The system recognizes the filename extension and builds a model from the swc
+file. It uses the cellname **elec** in this example.
+
+We use a similar line as in the reaction-diffusion example, to build up a 
+Moogli display of the cell model:
+
+	`moogList = [['#', '1', '.', 'Vm', 'Soma potential']]`
+
+Here we have:
+
+	*#*: the path to use for selecting the compartments to display. 
+	This wildcard means use all compartments.
+	*1*: The expression to use for the compartments. Again, `1` means use
+	all of them.
+	*.*: Which object in the compartment to display. Here we are using the
+	compartment itself, so it is just a dot.
+	*Vm*: Field to display
+	*Soma potential*: Title for display.
+
+![3-D display for passive neuron](../../images/rdes7_passive.png)
+
+### Build an active neuron model by putting channels into a morphology file
+We load in a morphology file and distribute voltage-gated ion channels over 
+the neuron. Here the voltage-gated channels are obtained from a number of 
+channelML files, located in the `./channels` subdirectory. Since we have a 
+spatially extended neuron, we need to specify the spatial distribution of 
+channel densities too. 
+
+
+	import moose
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+    	chanProto = [
+        	['./chans/hd.xml'],
+        	['./chans/kap.xml'],
+        	['./chans/kad.xml'],
+        	['./chans/kdr.xml'],
+        	['./chans/na3.xml'],
+        	['./chans/nax.xml'],
+        	['./chans/CaConc.xml'],
+        	['./chans/Ca.xml']
+    	],
+    	cellProto = [['./cells/h10.CNG.swc', 'elec']],
+    	chanDistrib = [ \
+        	["hd", "#dend#,#apical#", "Gbar", "50e-2*(1+(p*3e4))" ],
+        	["kdr", "#", "Gbar", "p < 50e-6 ? 500 : 100" ],
+        	["na3", "#soma#,#dend#,#apical#", "Gbar", "850" ],
+        	["nax", "#soma#,#axon#", "Gbar", "1250" ],
+        	["kap", "#axon#,#soma#", "Gbar", "300" ],
+        	["kap", "#dend#,#apical#", "Gbar",
+            	"300*(H(100-p*1e6)) * (1+(p*1e4))" ],
+        	["Ca_conc", "#", "tau", "0.0133" ],
+        	["kad", "#soma#,#dend#,#apical#", "Gbar", "50" ],
+        	["Ca", "#", "Gbar", "50" ]
+    	],
+    	stimList = [['soma', '1', '.', 'inject', '(t>0.02) * 1e-9' ]],
+    	plotList = [['#', '1', '.', 'Vm', 'Membrane potential'],
+            	['#', '1', 'Ca_conc', 'Ca', 'Ca conc (uM)']],
+    	moogList = [['#', '1', 'Ca_conc', 'Ca', 'Calcium conc (uM)', 0, 120],
+        	['#', '1', '.', 'Vm', 'Soma potential']]
+	)
+	
+	rdes.buildModel()
+	
+	moose.reinit()
+	rdes.displayMoogli( 0.0002, 0.052 )
+
+
+Here we make more extensive use of two concepts which we've already seen from 
+the single compartment squid model:
+
+1. *chanProto*: This defines numerous channels, each of which is of the form:
+
+	`[ filename ]`
+
+	or 
+
+	`[ filename, channelname ]`
+
+If the *channelname* is not specified the system uses the last part of the
+channel name, before the filetype suffix.
+
+2. *chanDistrib*: This defines the spatial distribution of each channel type.
+Each line is of a form that should be familiar now:
+
+	`[channelname, region_in_cell, parameter, expression_string]`
+
+- The *channelname* is the name of the prototype from *chanproto*. This is 
+usually an ion channel, but in the example above you can also see a calcium 
+concentration pool defined.
+- The *region_in_cell* is typically defined using wildcards, so that it
+generalizes to any cell morphology.
+For example, the plain wildcard `#` means to consider 
+all cell compartments. The wildcard `#dend#` means to consider all compartments with the string `dend`
+somewhere in the name. Wildcards can be comma-separated, so 
+`#soma#,#dend#` means consider all compartments with either soma or dend in
+their name. The naming in MOOSE is defined by the model file. Importantly,
+in **.swc** files MOOSE generates names that respect the classification of 
+compartments into axon, soma, dendrite, and apical dendrite compartments 
+respectively. SWC files generate compartment names such as:
+
+		soma_<number>
+		dend_<number>
+		apical_<number>
+		axon_<number>
+
+where the number is automatically assigned by the reader. In order to 
+select all dendritic compartments, for example, one would use *"#dend#"*
+where the *"#"* acts as a wildcard to accept any string.
+- The *parameter* is usually Gbar, the channel conductance density in *S/m^2*.
+If *Gbar* is zero or less, then the system economizes by not incorporating this
+channel mechanism in this part of the cell. Similarly, for calcium pools, if 
+the *tau* is below zero then the calcium pool object is simply not inserted 
+into this part of the cell.
+- The *expression_string* defines the value of the parameter, such as Gbar.
+This is typically a function of position in the cell. The expression evaluator 
+knows about several parameters of cell geometry. All units are in metres: 
+
++ *x*, *y* and *z* coordinates.
++ *g*, the geometrical distance from the soma
++ *p*, the path length from the soma, measured along the dendrites. 
++ *dia*, the diameter of the dendrite.
++ *L*, The electrotonic length from the soma (no units).
+
+Along with these geometrical arguments, we make liberal use of the Heaviside 
+function H(x) to set up the channel distributions. The expression evaluator
+also knows about pretty much all common algebraic, trignometric, and logarithmic
+functions, should you wish to use these.
+
+Also note the two Moogli displays. The first is the calcium 
+concentration. The second is the membrane potential in each compartment. Easy!
+
+![3-D display for active neuron](../../images/rdes8_active.png)
+
+### Build a spiny neuron from a morphology file and put active channels in it.
+This model is one step elaborated from the previous one, in that we now also
+have dendritic spines. MOOSE lets one decorate a bare neuronal morphology file 
+with dendritic spines, specifying various geometric parameters of their
+location. As before, we use an swc file for the morphology, and the same 
+ion channels and distribution.
+
+	import moose
+	import pylab
+	import rdesigneur as rd
+	rdes = rd.rdesigneur(
+    	chanProto = [
+        	['./chans/hd.xml'],
+        	['./chans/kap.xml'],
+        	['./chans/kad.xml'],
+        	['./chans/kdr.xml'],
+        	['./chans/na3.xml'],
+        	['./chans/nax.xml'],
+        	['./chans/CaConc.xml'],
+        	['./chans/Ca.xml']
+    	],
+    	cellProto = [['./cells/h10.CNG.swc', 'elec']],
+    	spineProto = [['makeActiveSpine()', 'spine']],
+    	chanDistrib = [
+        	["hd", "#dend#,#apical#", "Gbar", "50e-2*(1+(p*3e4))" ],
+        	["kdr", "#", "Gbar", "p < 50e-6 ? 500 : 100" ],
+        	["na3", "#soma#,#dend#,#apical#", "Gbar", "850" ],
+        	["nax", "#soma#,#axon#", "Gbar", "1250" ],
+        	["kap", "#axon#,#soma#", "Gbar", "300" ],
+        	["kap", "#dend#,#apical#", "Gbar",
+            	"300*(H(100-p*1e6)) * (1+(p*1e4))" ],
+        	["Ca_conc", "#", "tau", "0.0133" ],
+        	["kad", "#soma#,#dend#,#apical#", "Gbar", "50" ],
+        	["Ca", "#", "Gbar", "50" ]
+    	],
+    	spineDistrib = [['spine', '#dend#,#apical#', '20e-6', '1e-6']],
+    	stimList = [['soma', '1', '.', 'inject', '(t>0.02) * 1e-9' ]],
+    	plotList = [['#', '1', '.', 'Vm', 'Membrane potential'],
+            	['#', '1', 'Ca_conc', 'Ca', 'Ca conc (uM)']],
+    	moogList = [['#', '1', 'Ca_conc', 'Ca', 'Calcium conc (uM)', 0, 120],
+        	['#', '1', '.', 'Vm', 'Soma potential']]
+	)
+	
+	rdes.buildModel()
+	
+	moose.reinit()
+	rdes.displayMoogli( 0.0002, 0.023 )
+
+
+Spines are set up in a familiar way: we first define one (or more) prototype
+spines, and then distribute these around the cell. Here is the prototype
+string:
+
+    	[spine_proto, spinename]
+
+*spineProto*: This is typically a function. One can define one's own,
+but there are several predefined ones in rdesigneur. All these define a 
+spine with the following parameters:
+
+- head diameter 0.5 microns
+- head length 0.5 microns
+- shaft length 1 micron
+- shaft diameter of 0.2 microns
+- RM = 1.0 ohm-metre square
+- RA = 1.0 ohm-meter
+- CM = 0.01 Farads per square metre.
+	
+Here are the predefined spine prototypes:
+
+- *makePassiveSpine()*: This just makes a passive spine with the 
+default parameters
+- *makeExcSpine()*: This makes a spine with NMDA and glu receptors,
+and also a calcium pool. The NMDA channel feeds the Ca pool.
+- *makeActiveSpine()*: This adds a Ca channel to the exc_spine.
+and also a calcium pool.
+
+The spine distributions are specified in a familiar way for the first few 
+arguments, and then there are multiple (optional) spine-specific parameters:
+
+*[spinename, region_in_cell, spacing, spacing_distrib, size, size_distrib, angle, angle_distrib ]*
+
+Only the first two arguments are mandatory.
+
+- *spinename*: The prototype name
+- *region_in_cell*: Usual wildcard specification of names of compartments in which to put the spines.
+- *spacing*: Math expression to define spacing between spines. In the current implementation this evaluates to `1/probability_of_spine_per_unit_length`.
+Defaults to 10 microns. Thus, there is a 10% probability of a spine insertion in every micron. This evaluation method has the drawback that it is possible to space spines rather too close to each other. If spacing is zero or less, no spines are inserted.
+- *spacing_distrib*: Math expression for distribution of spacing. In the current implementation, this specifies the interval at which the system samples from the spacing probability above. Defaults to 1 micron.
+- *size*: Linear scale factor for size of spine. All dimensions are scaled by this factor. The default spine head here is 0.5 microns in diameter and length. If the scale factor were to be 2, the volume would be 8 times as large. Defaults to 1.0.
+- *size_distrib*: Range for size of spine. A random number R is computed in the range 0 to 1, and the final size used is `size + (R - 0.5) * size_distrib`. Defaults to 0.5
+- *angle*: This specifies the initial angle at which the spine sticks out of the dendrite. If all angles were zero, they would all point away from the soma. Defaults to 0 radians.
+- *angle_distrib*: Specifies a random number to add to the initial angle. Defaults to 2 PI radians, so the spines come out in any direction.
+
+One may well ask why we are not using a Python dictionary to handle all 
+these parameters. Short answer is: terseness. Longer answer is that the 
+rdesigneur format is itself meant to be an intermediate form for an 
+eventual high-level, possibly XML-based multiscale modeling format.
+
+![3-D display for spiny active neuron](../../images/rdes9_spiny_active.png)
+
+
+### Put a spine on a cylindrical compartment, give it synaptic input, and watch Ca diffuse.
+Calcium enters spines during strong synaptic input, how far does it spread 
+along the dendrites? This model is simple conceptually but illustrates several
+things:
+
+- Setting up random (Poisson) synaptic input to one or more spines
+- Setting up a reaction-diffusion system (Ca) coupled to an electrical
+system (Ca influx through channels). This uses a separate
+chemical definition script. One can replace this with more elaborate chemical
+schemes simply by changing the name of the script.
+- User definitions of prototypes (the soma in this example).
+- Assigning random number seeds.
+- The difference between electrical and chemical length scales. For numerical
+reasons, the discretization of reaction-diffusion systems into voxels normally
+happens on a smaller length scale (microns) than for electrical systems 
+(tens to hundreds of microns). In this example there is just one electrical
+compartment, but 50 chemical subdivisions.
+
+Most of the script is setting up the input and the prototypes. Rdesigneur
+is compact, as usual. First, the headers and parameter list:
+
+
+	import moose
+	import numpy as np
+	import rdesigneur as rd
+	
+	params = { 
+		'diffusionLength':1.0e-6,  # Diffusion characteristic length, used as voxel length too.
+		'dendDiameter': 1e-6,  # Diameter of section of dendrite in model
+		'dendLength': 50e-6,   # Length of section of dendrite in model
+		'spineSpacing': 30e-6,   # mean spacing between spines.
+		'diffConstCa':20.0e-12,  # Diffusion constant of Ca, m^2/sec
+		'spineFreq': 1,	 # Frequencey of input to spines
+		'gluWeight': 100,  # Weight for glutamate receptor
+		'nmdaWeight': 100, # weight for NMDA receptor
+		'chemModel':'spineCa_diffn.g',  # Chem model definition.
+		'RA': 1.0,		  # Axial resistivity of compartment, ohms.metre
+		'RM': 1.0,		  # membrane resistivity of compartment, ohms.metre^2
+		'CM': 0.01,		  # Specific capacitance of membrane, Farads/metre^2
+		'runtime': 3,	   # Simulation run time, sec.
+	}
+	
+Then, we define the prototypes for the soma compartment and the CaConc object
+that handles conversion of calcium current into calcium concentration:
+
+
+	def makePassiveSoma( name, length, diameter ):
+		elecid = moose.Neuron( '/library/' + name )
+		dend = moose.Compartment( elecid.path + '/soma' )
+		dend.diameter = diameter
+		dend.length = length
+		dend.Ra = params['RA'] * length * 4.0 / (diameter * diameter * np.pi)
+		dend.Rm = params['RM'] / (length * diameter * np.pi)
+		dend.Cm = params['CM'] * length * diameter * np.pi
+		dend.x = length
+		return elecid
+	
+	def makeCaConc( name ):
+		conc = moose.CaConc( '/library/' + name )
+		conc.tau = 0.0133333
+		conc.B = 17.402e12 # Conversion from Amps to milliMolar for soma
+		conc.Ca_base = 0.0 
+	
+
+Then, we define the stimulus including the poisson spike generator:
+
+	def attachStimulus():
+		numSpine = len( moose.wildcardFind( '/model/elec/head#' ) ) 
+		spikeInput = moose.RandSpike( '/model/elec/spineInput', numSpine )
+		spikeVec = spikeInput.vec
+		spikeVec.rate = params['spineFreq']
+	
+		j = 0 
+		for i in moose.wildcardFind( '/model/elec/head#' ):
+			sh = moose.element( i.path + '/glu/sh' )
+			sh.numSynapses = 1 
+			sh.synapse[0].weight = params['gluWeight']
+			moose.connect( spikeVec[j], 'spikeOut', sh.synapse[0], 'addSpike')
+			sh = moose.element( i.path + '/NMDA/sh' )
+			sh.numSynapses = 1 
+			sh.synapse[0].weight = params['nmdaWeight']
+			moose.connect( spikeVec[j], 'spikeOut', sh.synapse[0], 'addSpike')
+			j += 1
+	
+
+Having specified the framework for the model, here is the actual rdesigneur
+setup:
+	
+	moose.seed( 123 ) # One seed for the layout
+	library = moose.Neutral( '/library' )
+	makePassiveSoma( 'cell', params['dendLength'], params['dendDiameter'] )
+	makeCaConc( 'Ca_conc' )
+	
+	rdes = rd.rdesigneur(
+		chemPlotDt = 0.02,
+		diffusionLength = params['diffusionLength'],
+		spineProto = [['makeExcSpine()', 'spine']],
+		spineDistrib = [['spine', '#', str( params['spineSpacing'] ),'1e-7']],
+		chanDistrib = [["Ca_conc", "#", "tau", "0.0133", "thick","0.1e-6"]],
+		cellProto = [['cell', 'elec']],
+		chemProto = [['../chem/' + params['chemModel'], 'chem']],
+		chemDistrib = [['chem', '#soma#', 'install', '1' ]],
+		plotList = [
+			['soma', '1', '.', 'Vm', 'soma Vm'],
+			['soma', '1', 'dend/DEND/Ca', 'conc', '[dend Ca]'],
+			['#head#', '1', 'spine/Ca', 'conc', '[Spine Ca]'],
+			['#head#', '1', 'psd/Ca', 'conc', '[PSD Ca]'],
+		],
+		moogList = [['#', '1', 'dend/DEND/Ca', 'conc', 'dend Ca', 0, 0.5]],
+		adaptorList = [
+			[ 'Ca_conc', 'Ca', 'psd/Ca_input', 'concInit', 2e-6, 0.1 ],
+			[ 'Ca_conc', 'Ca','dend/DEND/Ca_input','concInit',2e-6,0.001],
+		]
+	)
+	for ca in moose.wildcardFind( '/library/##/Ca' ):
+		ca.diffConst = params['diffConstCa']
+	rdes.buildModel()
+	attachStimulus()
+	moose.reinit()
+	moose.seed( 3 ) # Another seed because the reinit does a reseed.
+	rdes.displayMoogli( 0.01, params['runtime'], 0.0 )
+	
+
+You will additionally need to copy over the chemical models for the calcium.
+These reside in the moose-examples/genesis directory. The simple model
+`spineCa_diffn.g`
+has calcium in spine PSD, spine head, and dendrite pools, with reactions
+for controlling input from the *Ca_conc* object. 
+
+With this done you can run the script and watch calcium spreading from the 
+location of the spine. There are three pulses of calcium, the first being
+quite weak.
+
+![Calcium influx from spine in middle of cylindrical compartment, spreading 
+into the dendrite and then axially in both directions.](../../images/rdes10_CaSpread.png)
+
+Once the simulation completes you'll also see a number of plots, so that you
+can figure out what the calcium influx was doing. Here, we have a single spine
+so there is just one trace for it. We have 50 chemical voxels along the
+dendrite, so there are 50 traces for the chemical time-course.
+
+![Time-course of Calcium buildup in spine and dendrite.](../../images/rdes10_CaTimecourse.png)
+
+
+Note the explicit assignment of random seeds using `moose.seed( 123 )`. By
+default, MOOSE generates a reasonably random seed using system information.
+Here, however, we want to be sure that the simulation always gives the same
+result. So we explicitly set the seed to a known number. Note also that
+we set the seed at two places: First, before setup, so that we ensure that the
+spines are going to come in the same number and place each time. Second, after
+`moose.reinit()` to make sure that the same pseudo-random sequence of 
+synaptic input and chemical stochastic calculations happens each run.
+
+Note also that this is run using stochastic methods for the chemical 
+calculations. This is the default. One can alter this using the following 
+line in rdesigneur:
+
+		useGssa = False
+
+As an exercise for the user, we also have a plug-in replaceable model for
+Ca influx, this one having a lot of calmodulin to act as a buffer. Replace
+the original line in the params dictionary as follows:
+
+		'chemModel':'spineCa_diffn.g'
+
+with
+
+		'chemModel':'spineCa_CaM_diffn.g'
+
+The resultant model has reduced free Ca++ buildup.
+
+Some other interesting things to try are:
+
+- Increase the diffusion constant for calcium. You might expect that this 
+would lead to faster flow of Ca from the spine to the dendrite, and hence a 
+higher peak in the dendrite. Try it and see.
+- Change the diameter of the dendrite.
+
+
+### Build a spiny neuron from a morphology file and put a reaction-diffusion system in it.
+Rdesigneur is specially designed to take reaction systems with a dendrite,
+a spine head, and a spine PSD compartment, and embed these systems into 
+neuronal morphologies. This example shows how this is done.
+
+The dendritic molecules diffuse along the dendrite
+in the region specified by the *chemDistrib* keyword. In this case they are
+placed on all apical and basal dendrites, but only at distances over 
+500 microns from the soma. The spine head and PSD 
+reaction systems are inserted only into spines within this same *chemDistrib*
+zone. Diffusion coupling between dendrite, and each spine head and PSD is also 
+set up.
+It takes a predefined chemical model file for Rdesigneur, which resides 
+in the `./chem` subdirectory. As in an earlier example, we turn off the 
+electrical calculations here as they are not needed. 
+Here we plot out the number of receptors on every single spine as a function
+of time.
+
+(Documentation still to come here)
+
+### Make a full multiscale model with complex spiny morphology and electrical and chemical signaling.
+
+(Documentation still to come here)
-- 
GitLab