Page 1 of 1
More Concerning Longitudinal Diffusion
Posted: Thu Dec 21, 2006 9:08 pm
by hwaiianpineapple
I wrote a mechanism (in mod) for the longitudinal diffusion (as well as transformation) of a user-defined ion. The syntax seemed fine, and the compiler didn't pick up any problems. However, when I tried to run the program in hoc, the ion didn't diffuse. I don't know what's going on. Can someone look over my code and see if there's something I'm missing? Thanks!
Here's my kinetics block:
KINETIC state{
COMPARTMENT i, PI*diam*diam*(L/nseg) {GTPi}
~Oro+GTPRecep<->OroGTPRecep, (K1, K2)
~OroGTPRecep<->GTPRecep+GTPi (K3, K4)
~GTPi<->GTPDec (KD, 0)
LONGITUDINAL_DIFFUSION i, DFree*diam*diam {GTPi}
~GTPi<<(-iGTP*PI*diam/(2*FARADAY))
}
(Oro, GTPi are intracellular concentrations of 2 different ions. GTPRecep is a GTP receptor. OroGTPRecep is the oro-GTP receptor complex. GTPDec is the GTP decay mechanism. K1~K4, KD are kinetic constants).
Posted: Fri Dec 22, 2006 1:07 am
by ted
Sounds like it's going to be an interesting model when you're finished
with it.
First question: did you check for units consistency with modlunit? This would
probably have detected the fact that the COMPARTMENT statement is
dimensionally inconsistent, because it should not involve L. It shouldn't
involve nseg, either, but I don't think modlunit will catch that error. Also,
modlunit probably wouldn't have picked up the apparently superfluous i--
superfluous because the kinetic scheme, as written, treats each entire
segment as single compartment. But it would have pointed out dimensional
inconsitencies, which might be present in code that was not included with
your original post, and which might introduce scaling errors involving
many powers of 10. A few thousands or millions here or there might
incorrectly make diffusion vanishingly small.
Second question: do you really want the "GTP ion" to have a valance of 2?
If yes, then does its USEION statement declare that?
Third question: do you have any idea of the spatial scale of diffusion of the
"GTP ion"? That will suggest the appropriate spatial grid for longitudinal
diffusion, and may indicate whether you also need to consider radial
diffusion--or, if GTP just gets destroyed before it has a chance to move
very far, whether all of the "GTP action" should take place in a thin shell,
or a small number of thin shells, just inside the cell membrane, surrounding
a central core (with fixed GTP concentration) that occupies most of the
volume of any segment. If GTP cannot move very far before it is consumed,
then if segments are much longer, you won't see much solute flux
between longitudinally adjacent compartments.
Posted: Tue Jan 02, 2007 10:02 pm
by hwaiianpineapple
Ted,
Thanks for the last reply. I am still working on the model. One quick question though: if the compiler doesn't pick up any errors with LONGITUDINAL_DIFFUSION, does it mean that there definitely is diffusion, and that the reason why it's not observed macroscopically is because of unit inconsistencies? Thanks!
Posted: Wed Jan 03, 2007 9:42 am
by ted
It only means that the compiler passed the code without gagging. It is not
a guarantee that the compiled mechanism generates valid results. In
programming, the most treacherous errors are the ones that allow code
to run to completion without crashing or emitting an error message.
Whenever trying anything new, always run tests to verify that what you
get is what you should have gotten.
Posted: Tue Jan 09, 2007 4:50 am
by hwaiianpineapple
Ted,
Very sorry to bother you, but is it okay if i sent you my code for you to look at? I've changed all the units so that it matches, yet there seem to be no diffusion whatsoever (and the compiler's not picking up anything). I can't seem to figure out what's wrong. Thanks!