In article <382057BF.6F1B991B at stud.uni-frankfurt.de> ,
cwilms at stud.uni-frankfurt.de writes:
>Hello!
>>I am a student majoring in Neurobiology and am working on a project to
>build a simple model of a NMDA-receptor.
>>After doing a bit of reading on the subject I still am not sure whether
>to use a simulator (in my case this would mean Genesis or maybe Neuron)
>or if it would be simpler/more straight-forward to program the
>simulation in an object-oriented language (JAVA). I first aim is to have
>something running within a few days, my second aim is to be able to
>expand the first simple simulation by adding diffrent inhibitors, etc.
>>I would be grateful for any form of advice.
>>Thanks, Chris Wilms
Hmmm. You want to have something up and running within a few days? No
lack of ambition on your part is there?
First off, can you be a little more specific about what you mean by
"model of a NMDA-receptor"? What aspects of the receptor do you want to
model (it makes a huge difference to how long it will take or whether
it's even possible yet). If you want to start with just understanding
receptor kinetics, that's fairly easy and straightforward (building -a-
model is easy, getting the kinetics exactly right is a whole 'nother
story because experimentalists are still arguing about what the real
kinetics are). On the other hand, if you're talking about modeling the
channel protein structure, that's a huge huge job and it's very unlikely
that there even exists enough experimental data to constrain such a model
at the moment.
Since you mentioned Neuron and Genesis, I'll assume you meant kinetics
and not structure.
These programs are really meant for compartmental modeling of neurons,
and include only minimalist descriptions of ligand-gated channels. You'd
probably have to write your own channel *.mod files, and then compile
them into the program. There are some already written and available on
the web, but the ones I've seen don't include channel desensitization,
and in my opinion are really not very good simulations of how the
channels actually behave.
Also, you'll have to make a decision about whether you want to describe
kinetics as the solutions to the differential equations governing state
transitions, or whether you want to explicitly simulate the random
opening and closing (Monte Carlo methods). These both have their
advantages. Coding for differential equation solvers is probably easier,
but watching the channel behaviour evolve randomly is more fun, and also
more accurate (in the sense that these channels really do open and close
randomly).
Differential equations:
The basic equations are pretty simple. Suppose you have a channel kinetic
scheme that looks like this (This is just an example. It is NOT a good
kinetic scheme for NMDA receptors. See the J. Neurosci. paper by Lester
and Jahr for a much better one):
Unbound <-> Bound <-> Open <-> Desensitized
Assume that the unbound-bound transition has forward and backward rate
constants kon and koff respectively, and that the effective binding rate
is the product of kon and [Glutamate]. Then the rate of change in the
occupancy of the bound state is the sum of the rates leading out of it
(negative) and the rates leading into it (positive):
d[Unbound]/dt = [Bound] * koff - [Unbound] * kon * [Glutamate];
You write a similar equation:
d[State]/dt = sum( entry rates * [neighboring state] ) - sum( [State] *
exit rates )
for each state in the scheme, giving you a system of coupled differential
equations.
Then you pass the whole lot, plus initial conditions (i.e., initial state
occupancies and agonist concentration) to a numerical (ie., approximate)
differential equation solver, ideally one that is good for stiff ODEs. I
use Matlab, and in that package a good solver is ode15s. If you'll be
programming in C/C++ or JAVA you can probably download a suite of solvers
off the web, or you can use a program called SCoP (Simulation Resources,
Berrien Springs, MI, USA). Voila. If you're really bent on analytical
rigour, you can also solve these analytically, using Colquhoun and
Hawkes' Q-Matrix method.
Monte Carlo methods:
Here, you start with a single channel in one state, and iteratively
recalculate the probability of moving to another state at each time point
by comparing a random number to the probability of moving to that state.
These probabilities are given by the Pi-matrix (see Colquhoun and
Hawkes), which is derived from the Q-Matrix of transition rates. That is,
comparing a random number with the Q-Matrix entries for that state gives
the -time- spent in that state during the current sojourn, whereas
comparing a different random number with the entries from the Pi-Matrix
gives the -state- to which the transition will be made when the time
comes.
Monte Carlo simulations are really fun, but they take a long time. First
because you're doing a lot more calculations, I think. And second because
you have to do the whole thing over and over again, then average the
results, in order to converge on the "average" solution, which is what
differential equations give you right off the bat.
Protein Structure:
In PRINCIPLE, you would apply the same methods (with different equations)
if you wanted to simulate movements in the protein structure. But in
PRACTICE, this is a huge job because there are thousands of free
parameters, and as any good modeler knows, you have to constrain models
with experimental data very strictly, otherwise you get crap. (You WILL
get crap without strong constraints, trust me on this one). Right now,
there is precious little structural data about ligand gated channels to
use in constraining models.
Anyway, good luck, and we'll expect you to post your simulations on your
website tomorrow morning (!).
Cheers,
Matt Jones