Re: Multiple Executions of .nb file part2

• To: mathgroup at smc.vnet.net
• Subject: [mg90542] Re: Multiple Executions of .nb file part2
• From: dh <dh at metrohm.ch>
• Date: Sat, 12 Jul 2008 05:33:04 -0400 (EDT)
• References: <g54op3\$f50\$1@smc.vnet.net>

```
Sorry, I just confused my private communication with David and the group

and therefore answered to the wrong question. Here is the question and

Hi David,

if you put a semicolon behind area=..; and a  //Print behind

ParametricPlot[..] and a Print around  NeuronNumber your code will run.

Daniel

Question:

Dan,

Fun[SmV_]:=(**Code**)

I can call it with

Fun[-80]

And it returns me output for My program with  a -80 input.

For some reason it isn't working for the larger implementation.

The follow code should generate 4 very different graphs:

time = 2000;

databaseModel[NeuronNumber_] := (

(* 0.628 *)

area = 0.628

InjectedCurrent = 0;

currentInjectionStart = 0;

currentInjectionFinish = 0;

startingMembraneV = -60;

numb = NeuronNumber;

n0 = (numb - Mod[numb, 6^7])/6^7;

numb = numb - (n0 * 6^7);

n1 = (numb - Mod[numb, 6^6])/6^6;

numb = numb - (n1 * 6^6);

n2 = (numb - Mod[numb, 6^5])/6^5;

numb = numb - (n2 * 6^5);

n3 = (numb - Mod[numb, 6^4])/6^4;

numb = numb - (n3 * 6^4);

n4 = (numb - Mod[numb, 6^3])/6^3;

numb = numb - (n4 * 6^3);

n5 = (numb - Mod[numb, 6^2])/6^2;

numb = numb - (n5 * 6^2);

n6 = (numb - Mod[numb, 6^1])/6^1;

numb = numb - (n6 * 6^1);

n7 = Mod[numb, 6]/6^0;

INaC = n0;

ICaTC = n1;

ICaSC = n2;

IA = n3;

IKCa = n4;

IKd = n5;

IH = n6;

IL = n7;

INaC = INaC*100;

ICaTC = ICaTC*2.5;

ICaSC = ICaSC *2;

IA = IA *10;

IKCa = IKCa*5;

IKd = IKd *25;

IH = IH*0.01;

IL = IL*0.01;

ic = InjectedCurrent;

ics = currentInjectionStart;

icf = currentInjectionFinish;

SmV = startingMembraneV;

PD1INam0[u_] := 1/(1 + Exp[(u + 25.5)/-5.29]);

PD1INah0[u_] := 1/(1 + Exp[(u + 48.9)/5.18]);

PD1INataum[u_] := 2.64 - 2.52/(1 + Exp[(u + 120)/-25]);

PD1INatauh[u_] := (1.34/(1 + Exp[(u + 62.9)/-10]))*(

1.5 + 1/(1 + Exp[(u + 34.9)/3.6]));

PD1ICaTm0[u_] := 1/(1 + Exp[(u + 27.1)/-7.2]);

PD1ICaTh0[u_] := 1/(1 + Exp[(u + 32.1)/5.5]);

PD1ICaTtaum[u_] := 43.4 - 42.6/(1 + Exp[(u + 68.1)/-20.5]);

PD1ICaTtauh[u_] := 210 - 179.6/(1 + Exp[(u + 55)/-16.9]);

PD1ICaSm0[u_] := 1/(1 + Exp[(u + 33)/-8.1]);

PD1ICaSh0[u_] := 1/(1 + Exp[(u + 60)/6.2]);

PD1ICaStaum[u_] := 2.8 + 14/((Exp[(u + 27)/10]) + (Exp[(u + 70)/-13]));

PD1ICaStauh[u_] := 120 + 300/((Exp[(u + 55)/9]) + (Exp[(u + 65)/-16]));

PD1IAm0[u_] := 1/(1 + Exp[(u + 27.2)/-8.7]);

PD1IAh0[u_] := 1/(1 + Exp[(u + 56.9)/4.9]);

PD1IAtaum[u_] := 23.2 - 20.8/(1 + Exp[(u + 32.9)/-15.2]);

PD1IAtauh[u_] := 77.2 - 58.4/(1 + Exp[(u + 38.9)/-26.5]);

PD1IKCam0[u_, x_] := (x/(x + 3))*1/(1 + Exp[(u + 28.3)/-12.6]);

PD1IKCataum[u_] := 180.6 - 150.2/(1 + Exp[(u + 46)/-22.7]);

PD1IKm0[u_] := 1/(1 + Exp[(u + 12.3)/-11.8]);

PD1IKtaum[u_] := 14.4 - 12.8/(1 + Exp[(u + 28.3)/-19.2]);

PD1IHm0[u_] := 1/(1 + Exp[(u + 75)/5.5]);

PD1IHtaum[u_] := 2/((Exp[(u + 169.7)/-11.6]) + (Exp[(u - 26.7)/14.3]));

PD1eca[x_] := 12.2396*Log[13000/x];

PD1INamx0[u_] := 1/(1 + Exp[-(u + 24.7)/5.29]);

PD1INahx0[u_] := 1/(1 + Exp[(u + 48.9)/5.18]);

PD1INataumx[u_] := 1.32 - 1.26/(1 + Exp[(u + 120)/25]);

PD1INatauhx[u_] := (0.67/(1 + Exp[-(u + 62.9)/10]))*(1.5 + 1/(1 + Exp[(u +

34.9)/3.6]));

solution = NDSolve[{

PD1INam'[

t] == (PD1INam0[PD1v[t]] - \

PD1INam[t])*(1/PD1INataum[PD1v[t]]), PD1INam[0] == PD1INam0[SmV]*(1/

PD1INataum[SmV]),

PD1INah'[t] == (PD1INah0[PD1v[t]] - PD1INah[t])*(

1/PD1INatauh[PD1v[t]]),

PD1INah[0] == PD1INah0[SmV]*(1/PD1INatauh[SmV]),

PD1ICaTm'[t] == (

PD1ICaTm0[PD1v[t]] - PD1ICaTm[t])*(1/PD1ICaTtaum[PD1v[t]]),

PD1ICaTm[0] == PD1ICaTm0[SmV]*(1/PD1ICaTtaum[SmV]),

PD1ICaTh'[t] == (PD1ICaTh0[PD1v[

t]] - PD1ICaTh[t])*(1/PD1ICaTtauh[PD1v[t]]),

PD1ICaTh[0] == PD1ICaTh0[SmV]*(1/PD1ICaTtauh[SmV]),

PD1ICaSm'[

t] == (PD1ICaSm0[PD1v[t]] - \

PD1ICaSm[t])*(1/PD1ICaStaum[PD1v[t]]),

PD1ICaSm[0] == PD1ICaSm0[SmV]*(1/PD1ICaStaum[SmV]),

PD1ICaSh'[t] == (PD1ICaSh0[PD1v[t]] - PD1ICaSh[

t])*(1/PD1ICaStauh[PD1v[t]]),

PD1ICaSh[0] == PD1ICaSh0[SmV]*(1/PD1ICaStauh[SmV]),

PD1IAm'[t] == (PD1IAm0[PD1v[t]] -

PD1IAm[t])*(1/PD1IAtaum[PD1v[t]]),

PD1IAm[0] == PD1IAm0[SmV]*(1/PD1IAtaum[SmV]),

PD1IAh'[t] == (PD1IAh0[PD1v[t]] - PD1IAh[t])*(

1/PD1IAtauh[PD1v[t]]),

PD1IAh[0] == PD1IAh0[SmV]*(1/PD1IAtauh[

SmV]),

PD1IKCam'[t] == (

PD1IKCam0[PD1v[t], PD1cca[t]] - PD1IKCam[t])*(1/PD1IKCataum[

PD1v[t]]),

PD1IKCam[0] == PD1IKCam0[SmV, 0.5]*(1/PD1IKCataum[SmV]),

PD1IKm'[t] == (

PD1IKm0[PD1v[t]] - PD1IKm[t])*(1/PD1IKtaum[PD1v[t]]),

PD1IKm[0] == PD1IKm0[SmV]*(1/PD1IKtaum[SmV]),

PD1IHm'[

t] == (PD1IHm0[PD1v[t]] - PD1IHm[t])*(1/PD1IHtaum[PD1v[t]]),

PD1IHm[0] == PD1IHm0[SmV]*(1/PD1IHtaum[SmV]),

PD1cca'[t] == (-14.96*((0*(

PD1ICaTm[t]^3)*PD1ICaTh[t]*(PD1v[t] -

PD1eca[PD1cca[t]])) +

(2*(PD1ICaSm[t]^3)*PD1ICaSh[t]*(PD1v[

t] - PD1eca[PD1cca[t]]))) -

PD1cca[t] + 0.05)*(1/200), PD1cca[0] == 0.05,

PD1v'[t] == -1*((0

+ 1*INaC*(PD1INam[t]^3)*PD1INah[t]*(PD1v[t] - 50)

+ 1*ICaTC*(

PD1ICaTm[t]^3)*PD1ICaTh[t]*(PD1v[t] - PD1eca[PD1cca[t]])

+ 1*

ICaSC*(PD1ICaSm[t]^3)*PD1ICaSh[t]*(PD1v[t] -

PD1eca[PD1cca[t]])

+ 1*IA*(PD1IAm[t]^3)*PD1IAh[t]*(PD1v[t] + 80)

+ 1*IKCa*(PD1IKCam[t]^4)*(PD1v[t] + 80)

+ 1*IKd*(PD1IKm[t]^4)*(PD1v[t] + 80)

+ 1*IH*PD1IHm[t]*(PD1v[t] + 20)

+ 1*IL*(PD1v[t] + 50)

)

- (

If[t < ics, 0, If[t > icf, 0, 1]]*ic

))

*(area),

PD1v[0] == SmV

},

{PD1v, PD1INam, PD1INah, PD1IKm, PD1IKCam, PD1IAm, PD1IAh,

PD1ICaTm,

PD1ICaTh, PD1ICaSm, PD1ICaSh, PD1IHm, PD1cca}, {

t, 0, time}, Method -> Automatic, MaxSteps ->

Infinity];

NeuronNumber

(*ParametricPlot[Evaluate[{t, PD1v[t]} /. solution], {t, 0, time}, \

PlotPoints -> time, PlotRange -> {SmV, 20},

PlotLabel -> "Model'

s Soma", AxesLabel -> {"Time (ms)", "Voltage (mV)"}];*)

ParametricPlot[Evaluate[{t,

PD1v[t]} /. solution], {t, 0, time}, PlotPoints ->

time, PlotRange -> {-80, 60}, PlotLabel -> NeuronNumber,

AxesLabel \

-> {"Time (ms)", "Voltage (mV)"}];

)

m = {{0}, {287978}, {295701}, {296048}};

Do[databaseModel[m[[i, 1]]], {i, 4}]

databaseModel[295701]

databaseModel[295701]

the graphs should all be different but they are coming out as flat

lines. I have played around with this but cannot get it too output as it

should. I wondered if this is something to do with the variables not

reseting. If you try the code without the function the 4 executions come

out as in the attached .jpg.

Thank you for your help with this. I am a biologist working on some

Neural simulations and am not prepared for things not running smoothly.

I find the tutorials and books can only take you so far.

Yours

David Fourie

--

Daniel Huber

Metrohm Ltd.

Oberdorfstr. 68

CH-9100 Herisau

Tel. +41 71 353 8585, Fax +41 71 353 8907

E-Mail:<mailto:dh at metrohm.com>

Internet:<http://www.metrohm.com>

```

• Prev by Date: Re: What does FullForm[ ] actually do?
• Next by Date: Re: ListPlot still ignores SetOptions[] command
• Previous by thread: Re: Multiple Executions of .nb file part2
• Next by thread: Glitch in Exporting PDFs from Mathematica to Illustrator, one solution