std::vector<CTLSpecies*>::iterator it = Tgen.begin(), end = Tgen.end();
for (it = Tgen.begin(); it != end; ++it) { // p
- KillingReaction* rx = new KillingReaction(r.rate_p);
+ KillingReaction* rx = new KillingReaction(r.rate_p / r.vol);
rx->T = *it; rx->V = V;
rx->name = (*it)->name + " + V --(p)--> " + (*it)->name;
reactions.push_back(rx); update_rxn_dependents(reactions);
}
{ // a
- CTLActivationReaction* rx = new CTLActivationReaction(r.rate_a);
+ CTLActivationReaction* rx = new CTLActivationReaction(r.rate_a / r.vol);
rx->Tfrom = N; rx->Tto = T; rx->V = V;
rx->name = "N + V --(a)--> T1 + V";
reactions.push_back(rx); update_rxn_dependents(reactions);
reactions.push_back(rx); update_rxn_dependents(reactions);
}
{ // w
- ElementaryReaction* rx = new ElementaryReaction(r.rate_w);
+ ElementaryReaction* rx = new ElementaryReaction(r.rate_w * r.vol);
rx->products.push_back(N); rx->product_stoich.push_back(1);
rx->name = "0 --(w)--> N";
reactions.push_back(rx); update_rxn_dependents(reactions);
}
{ // a'
- CTLActivationReaction* rx = new CTLActivationReaction(r.rate_aprime);
+ CTLActivationReaction* rx = new CTLActivationReaction(r.rate_aprime / r.vol);
rx->Tfrom = M; rx->Tto = T; rx->V = V;
rx->name = "M + V --(a')--> T1 + V";
reactions.push_back(rx); update_rxn_dependents(reactions);
std::vector<CTLaaSpecies*>::iterator it = Tgen.begin(), end = Tgen.end();
for (it = Tgen.begin(); it != end; ++it) { // p
- AAKillingReaction* rx = new AAKillingReaction(r.rate_p);
+ AAKillingReaction* rx = new AAKillingReaction(r.rate_p / r.vol);
rx->T = *it; rx->V = V;
reactions.push_back(rx); update_rxn_dependents(reactions);
}
{ // a
- CTLaaActivationReaction* rx = new CTLaaActivationReaction(r.rate_a);
+ CTLaaActivationReaction* rx = new CTLaaActivationReaction(r.rate_a / r.vol);
rx->Tfrom = N; rx->Tto = T; rx->V = V;
rx->name = "N + V --(a)--> T1 + V";
reactions.push_back(rx); update_rxn_dependents(reactions);
reactions.push_back(rx); update_rxn_dependents(reactions);
}
{ // w
- ElementaryReaction* rx = new ElementaryReaction(r.rate_w);
+ ElementaryReaction* rx = new ElementaryReaction(r.rate_w * r.vol);
rx->products.push_back(N); rx->product_stoich.push_back(1);
rx->name = "0 --(w)--> N";
reactions.push_back(rx); update_rxn_dependents(reactions);
}
{ // a'
- CTLaaActivationReaction* rx = new CTLaaActivationReaction(r.rate_aprime);
+ CTLaaActivationReaction* rx = new CTLaaActivationReaction(r.rate_aprime / r.vol);
rx->Tfrom = M; rx->Tto = T; rx->V = V;
rx->name = "M + V --(a')--> T1 + V";
reactions.push_back(rx); update_rxn_dependents(reactions);
" -numruns (int) number of trajectories to simulate\n"
" -rate_X (double) X in [s,u,p,a,r,d,dprime,b,e,w,aprime,g,h]\n"
" -const_ND (int) number of effector CTL divisions (generations) [default=9]\n"
+" -vol (double) volume scaling factor; affects rate constants, not initial values [default=1.0]\n"
; std::cout.flush();
}
else if (strcmp(argv[i],"-const_ND")==0) { if (++i==argc) break; else r.num_T_gen=(unsigned int)strtodouble(argv[i]); }
+ else if (strcmp(argv[i],"-vol")==0) { if (++i==argc) break; else r.vol=strtodouble(argv[i]); }
+
else if (strcmp(argv[i],"-h")==0 || strcmp(argv[i],"--help")==0) { usage(); return 0; }
else printf("Unrecognized argument! '%s'\n",argv[i]);