diff --git a/docs/bibliography.bib b/docs/bibliography.bib new file mode 100644 index 0000000000000000000000000000000000000000..b3206ba47fde7e114969fd693bdf3f1c21ef9827 --- /dev/null +++ b/docs/bibliography.bib @@ -0,0 +1,20 @@ +@article{lindsay_2004, +title = "From Maxwell's equations to the cable equation and beyond ", +journal = "Progress in Biophysics and Molecular Biology ", +volume = "85", +number = "1", +pages = "71 - 116", +year = "2004", +note = "", +issn = "0079-6107", +doi = "http://dx.doi.org/10.1016/j.pbiomolbio.2003.08.001", +url = "http://www.sciencedirect.com/science/article/pii/S0079610703000786", +author = "K.A. Lindsay and J.R. Rosenberg and G. Tucker", +keywords = "Maxwell's equations", +keywords = "Cable equation", +keywords = "Finite elements", +keywords = "Neuronal models", +keywords = "Tapered dendrites", +keywords = "Regular perturbation expansions " +} + diff --git a/docs/formulation.tex b/docs/formulation.tex index 7609dcbf56c585abf004852227c9dbdd300f4991..3812398dcff54a9852f34fe59ded3d8446fd6aea 100644 --- a/docs/formulation.tex +++ b/docs/formulation.tex @@ -3,70 +3,65 @@ The cable equation is a nonlinear parabolic PDE that can be written in the form \begin{equation} \label{eq:cable} - c_m \pder{V}{t} = \frac{1}{2ar_{L}} \pder{}{x} \left( a^2 \pder{V}{x} \right) - i_m + i_e, + c_m \pder{V}{t} = \frac{1}{2\pi a r_{L}} \pder{}{x} \left( a^2 \pder{V}{x} \right) - i_m + i_e, \end{equation} where \begin{itemize} \item $V$ is the potential relative to the ECM $[mV]$ - \item $a$ is the cable radius \todo{units} $[mm]$? + \item $a$ is the cable radius $(mm)$, and can vary with $x$ \item $c_m$ is the {specific membrane capacitance}, approximately the same for all neurons $\approx 10~nF/mm^2$. Related to \emph{membrane capacitance} $C_m$ by the relationship $C_m=c_{m}A$, where $A$ is the surface area of the cell. - \item $i_m$ is the membrane current \todo{units}. The total contribution from ion and synaptic channels is expressed as a the product of current per unit area $i_m$ and the surface area. + \item $i_m$ is the membrane current $[A]$. The total contribution from ion and synaptic channels is expressed as a the product of current per unit area $i_m$ and the surface area. \item $i_e$ is the electrode current flowing into the cell, divided by surface area, i.e. $i_e=I_e/A$. \item $r_L$ is intracellular resistivity, typical value $1~k\Omega$ \end{itemize} Note that the standard convention is followed, whereby membrane and synapse currents ($i_m$) are positive when outward, and electrod currents ($i_e$) are positive inward. -The PDE in (\ref{eq:cable}) is derived from the following mass balance expression for a cable segment -\begin{equation} - \label{eq:cable} - 2\pi a \Delta x c_m \pder{V}{t} = -\left. \left( \frac{\pi a^2}{r_L}\pder{V}{x} \right) \right|_\text{left} - +\left. \left( \frac{\pi a^2}{r_L}\pder{V}{x} \right) \right|_\text{right} - - 2\pi a \Delta x (i_m - i_e) -\end{equation} - -\begin{table*}[htp!] - \begin{center} - - \begin{tabular}{llll} - \hline - quality & symbol & unit & notes \\ - \hline - energy & $J$ & joule $j$ & work to push 1 $N$ through 1 $m$ \\ - charge & $q$ & coulomb $C$ & $6.25\cdot10^{18}$ electrons, $[A\cdot s]$ \\ - current & $I$ & ampere $A$ & $[C\cdot s^{-1}]$, $A$ is SI base unit\\ - voltage & $V$ & volt $V$ & potential work per unit charge \\ - resistance & $R$ & ohm $\Omega$ & recall Ohm's law $V=IR$ \\ - capacitance& $C$ & farad $F$ & $C=\frac{q}{V}$, $[J\cdot C^{2}]$\\ - \hline - \end{tabular} - - \begin{tabular}{llll} - \hline - symbol & unit & equivalents & SI base \\ - \hline - $J$ & $j$ & $J\cdot s^{-1}$, $V\cdot A$ & - $kg\cdot m^{2}\cdot s^{-2}$ \\ - - $q$ & $C$ & $s\cdot A$ & - $s\cdot A$ \\ - - $I$ & $A$ & $C\cdot s^{-1}$ & - $A$ \\ +The PDE in (\ref{eq:cable}) is derived from the following mass balance expression for a cable segment: +\begin{align} + \int_{\Omega}{c_m \pder{V}{t} } \deriv{v} = + & - \int_{\Gamma_{\text{left}}} \left( \frac{1}{r_L}\pder{V}{x} \right) \deriv{s} + + \int_{\Gamma_{\text{right}}} \left( \frac{1}{r_L}\pder{V}{x} \right) \deriv{s} \nonumber \\ + & - \int_{\Gamma_{ext}} {(i_m - i_e)} \deriv{s} + \label{eq:cable_balance} +\end{align} +where $\int_\Omega \cdot \deriv{v}$ is shorthand for the volume integral over the segment $\Omega$, and $\int_\Gamma \cdot \deriv{s}$ is shorthand for the surface integral over the surface $\Gamma$. +The surface of the cable segment is sub-divided into the left, right and external parts of the surface. - $V$ & $V$ & $W\cdot A$ & - $kg\cdot m^{2}\cdot s^{-3}\cdot A^{-1}$ \\ +The external surface $\Gamma_{ext}$ is the cell membrane, at the interface between the extra-cellular and intra-cellular regions. +The current, which is the conserved quantity in our conservation law, over the surface is composed of the synapse and ion channel contributions. +This is derived from a thin film approximation to the cell membrane, whereby the membrane is treated as an infinitesimally thin interface between the intra and extra cellular regions. - $R$ & $\Omega$ & $V\cdot A^{-1}$ & - $kg\cdot m^{2}\cdot s^{-3}\cdot A^{-2}$ \\ +The left and right surface are the interface between the cable segment and its neighbour. - $C$ & $F$ & $C\cdot V^{-1}$ & - $kg^{-1}\cdot m^{-2}\cdot s^{4}\cdot A^{2}$ \\ - \hline - \end{tabular} +\subsection{Assumptions of the cable equation} +See \cite{lindsay_2004} for a detailed derivation of the cable equation, and extensions to the one-dimensional model that account for radial variation of potential. - \end{center} - \caption{Symbols and quantities.} -\end{table*} +The formulation in equations~\eq{eq:cable} and~\eq{eq:cable_balance} is based on the following expression in three dimensions (based on Maxwell's equations adapted for neurological modelling) +\begin{equation} + \nabla \cdot \vv{J} = 0, +\end{equation} +where $\vv{J}$ is current density (units $A/m^2$). +Current density is in turn defined in terms of electric field $\vv{E}$ (units $V/m$) +\begin{equation} + \vv{J} = \sigma \vv{E}, +\end{equation} +where $\sigma$ is the specific electrical conductivity of intra-cellular fluid (typically 3.3 $S/m$). +The derivation of the cable equation is based on two assumptions: +\begin{enumerate} + \item that charge disperion is effectively instantaneous for the purposes of dendritic modelling. + \item that diffusion of magnetic field is instant, i.e. it behaves quasi-statically in the sense that it is determined by the electric field through the Maxwell equations. +\end{enumerate} +Under these conditions, $\vv{E}$ is conservative, and as such can be expressed in terms of a potential field +\begin{equation} + \vv{E} = \nabla \phi, +\end{equation} +where the extra/intra-cellular potential field $\phi$ has units $mV$. +The derivation of the one-dimensional conservation equation \eq{eq:cable_balance} is based on the assumption that the intra-cellular potential (i.e. inside the cell) does not vary radially. +That is, potential is a function of the axial distance $x$ alone +\begin{equation} + \vv{E} = \nabla \phi = \pder{V}{x}. +\end{equation} +This is not really true, because a potential field that is a variable of $x$ and $t$ alone can't support the axial gradients required to drive the potential difference over the cell membrane. diff --git a/docs/report.bbl b/docs/report.bbl new file mode 100644 index 0000000000000000000000000000000000000000..bc1039fa6704025f2927c47d36620acf270bb044 --- /dev/null +++ b/docs/report.bbl @@ -0,0 +1,9 @@ +\begin{thebibliography}{1} + +\bibitem{lindsay_2004} +K.~Lindsay, J.~Rosenberg, and G.~Tucker. +\newblock From maxwell's equations to the cable equation and beyond. +\newblock {\em Progress in Biophysics and Molecular Biology}, 85(1):71 -- 116, + 2004. + +\end{thebibliography} diff --git a/docs/report.blg b/docs/report.blg new file mode 100644 index 0000000000000000000000000000000000000000..34a47a81b90faf6b3fae66b78548023ed1450d4f --- /dev/null +++ b/docs/report.blg @@ -0,0 +1,46 @@ +This is BibTeX, Version 0.99d (TeX Live 2015/Arch Linux) +Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 +The top-level auxiliary file: report.aux +The style file: abbrv.bst +Database file #1: bibliography.bib +You've used 1 entry, + 2118 wiz_defined-function locations, + 504 strings with 3885 characters, +and the built_in function-call counts, 383 in all, are: += -- 35 +> -- 18 +< -- 0 ++ -- 7 +- -- 6 +* -- 33 +:= -- 70 +add.period$ -- 3 +call.type$ -- 1 +change.case$ -- 6 +chr.to.int$ -- 0 +cite$ -- 1 +duplicate$ -- 11 +empty$ -- 29 +format.name$ -- 6 +if$ -- 76 +int.to.chr$ -- 0 +int.to.str$ -- 1 +missing$ -- 1 +newline$ -- 8 +num.names$ -- 2 +pop$ -- 4 +preamble$ -- 1 +purify$ -- 5 +quote$ -- 0 +skip$ -- 7 +stack$ -- 0 +substring$ -- 29 +swap$ -- 1 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 4 +warning$ -- 0 +while$ -- 3 +width$ -- 2 +write$ -- 13 diff --git a/docs/report.tex b/docs/report.tex index fdc2cca75baaec1ca7702cb73d4f493bb96ac5d5..f087be39ee12d6ab5d09d43fd500112a6dd489b6 100644 --- a/docs/report.tex +++ b/docs/report.tex @@ -22,6 +22,7 @@ \usepackage{xspace} \usepackage{color} +\usepackage{bm} % bold math %---------------------------------------------------------------------------------------- % COLUMNS @@ -58,20 +59,6 @@ % CUSTOM COMMANDS %---------------------------------------------------------------------------------------- -\newcommand{\HWtwelve}{HW12\xspace} -\newcommand{\HWtwelves}{HW12$^*$\xspace} -\newcommand{\HWeight}{HW8\xspace} -\newcommand{\HWsix}{HW6\xspace} -\newcommand{\HWfour}{HW4\xspace} -\newcommand{\SBeight}{SB8\xspace} - -\newcommand{\HWtwelvecode}{E5-2690v3\xspace} -\newcommand{\HWtwelvescode}{E5-2680v3\xspace} -\newcommand{\HWeightcode}{E5-1660v3\xspace} -\newcommand{\HWsixcode}{E5-1650v3\xspace} -\newcommand{\HWfourcode}{E5-1620v3\xspace} -\newcommand{\SBeightcode}{E5-2670\xspace} - \newcommand{\todo}[1]{\textbf{\textcolor{blue}{TODO: #1}}} % add a comment to the article \newcommand{\tbl}[1]{\textbf{Table \ref{#1}}\xspace} @@ -80,6 +67,8 @@ \newcommand{\ssec}[1]{\textbf{\S\ref{#1}}\xspace} \newcommand{\pder}[2]{\frac{\partial{#1}}{\partial{#2}}} +\newcommand{\deriv}[1]{~\text{d}{#1}} +\newcommand{\vv}[1]{\bm{#1}\xspace} %---------------------------------------------------------------------------------------- % ARTICLE INFORMATION @@ -101,8 +90,16 @@ \thispagestyle{empty} % Removes page numbering from the first page %------------------------------------------------ +\section{Formulation} \input{formulation.tex} +\section{Symbols and Units} +\input{symbols.tex} + +%************************************************* +\bibliographystyle{abbrv} +\bibliography{bibliography} +%************************************************* \end{document} diff --git a/docs/symbols.tex b/docs/symbols.tex new file mode 100644 index 0000000000000000000000000000000000000000..814b7d4a4ea907f8118be91820e200a1e611e393 --- /dev/null +++ b/docs/symbols.tex @@ -0,0 +1,43 @@ +\begin{table*}[htp!] + \begin{center} + + \begin{tabular}{llll} + \hline + quality & symbol & unit & notes \\ + \hline + energy & $J$ & joule $j$ & work to push 1 $N$ through 1 $m$ \\ + charge & $q$ & coulomb $C$ & $6.25\cdot10^{18}$ electrons, $[A\cdot s]$ \\ + current & $I$ & ampere $A$ & $[C\cdot s^{-1}]$, $A$ is SI base unit\\ + voltage & $V$ & volt $V$ & potential work per unit charge \\ + resistance & $R$ & ohm $\Omega$ & recall Ohm's law $V=IR$ \\ + capacitance& $C$ & farad $F$ & $C=\frac{q}{V}$, $[J\cdot C^{2}]$\\ + \hline + \end{tabular} + + \begin{tabular}{llll} + \hline + symbol & unit & equivalents & SI base \\ + \hline + $J$ & $j$ & $J\cdot s^{-1}$, $V\cdot A$ & + $kg\cdot m^{2}\cdot s^{-2}$ \\ + + $q$ & $C$ & $s\cdot A$ & + $s\cdot A$ \\ + + $I$ & $A$ & $C\cdot s^{-1}$ & + $A$ \\ + + $V$ & $V$ & $W\cdot A$ & + $kg\cdot m^{2}\cdot s^{-3}\cdot A^{-1}$ \\ + + $R$ & $\Omega$ & $V\cdot A^{-1}$ & + $kg\cdot m^{2}\cdot s^{-3}\cdot A^{-2}$ \\ + + $C$ & $F$ & $C\cdot V^{-1}$ & + $kg^{-1}\cdot m^{-2}\cdot s^{4}\cdot A^{2}$ \\ + \hline + \end{tabular} + + \end{center} + \caption{Symbols and quantities.} +\end{table*} diff --git a/tree.hpp b/tree.hpp index b67244c721d97ad0084df57612d09c62e6f55f5f..772eb86c99d55ac65b076ee8ab164d1ae0c6c675 100644 --- a/tree.hpp +++ b/tree.hpp @@ -188,7 +188,6 @@ class tree { new_tree.init(num_nodes()); // add the root node - new_tree.data_(memory::all) = -std::numeric_limits<int_type>::min(); new_tree.parents_[0] = -1; new_tree.child_index_[0] = 0;