]> git.donarmstrong.com Git - ool/lipid_simulation_formalism.git/blob - kinetic_formalism.Rnw
update formalisms some more
[ool/lipid_simulation_formalism.git] / kinetic_formalism.Rnw
1 \documentclass[english,12pt]{article}
2 \usepackage{fancyhdr}
3 %\usepackage[pdftex]{graphicx}
4 \usepackage{graphicx}
5 \usepackage[bf]{caption2}
6 \usepackage{rotating}
7 \usepackage{multirow}
8 \usepackage{textcomp}
9 \usepackage{mathrsfs}
10 \usepackage{amssymb}
11 \usepackage{setspace}
12 \usepackage{txfonts}
13 \usepackage[light,all]{draftcopy}
14 \usepackage{fancyref}
15 \usepackage[hyperfigures,backref,bookmarks,colorlinks]{hyperref}
16 \usepackage[sectionbib,sort&compress,square,numbers]{natbib}
17 \usepackage[margin,inline,draft]{fixme}
18 \usepackage[x11names,svgnames]{xcolor}
19 \usepackage{texshade}
20 \newenvironment{narrow}[2]{%
21   \begin{list}{}{%
22       \setlength{\topsep}{0pt}%
23       \setlength{\leftmargin}{#1}%
24       \setlength{\rightmargin}{#2}%
25       \setlength{\listparindent}{\parindent}%
26       \setlength{\itemindent}{\parindent}%
27       \setlength{\parsep}{\parskip}}%
28   \item[]}{\end{list}}
29 \newenvironment{paperquote}{%
30   \begin{quote}%
31      \it
32   }%
33   {\end{quote}}
34 \renewcommand{\textfraction}{0.15}
35 \renewcommand{\topfraction}{0.85}
36 \renewcommand{\bottomfraction}{0.65}
37 \renewcommand{\floatpagefraction}{0.60}
38 %\renewcommand{\baselinestretch}{1.8}
39 \newenvironment{enumerate*}%
40   {\begin{enumerate}%
41     \setlength{\itemsep}{0pt}%
42     \setlength{\parskip}{0pt}}%
43   {\end{enumerate}}
44 \newenvironment{itemize*}%
45   {\begin{itemize}%
46     \setlength{\itemsep}{0pt}%
47     \setlength{\parskip}{0pt}}%
48   {\end{itemize}}
49 \oddsidemargin 0.0in 
50 \textwidth 6.5in
51 \raggedbottom
52 \clubpenalty = 10000
53 \widowpenalty = 10000
54 \pagestyle{fancy}
55 \author{Don Armstrong}
56 \title{OOL Kinetic Formalisms}
57 %\date{}
58 \onehalfspacing
59 \begin{document}
60 %\maketitle
61
62 <<results=hide,echo=FALSE>>=
63 require(lattice)
64 require(grid)
65 # R in cal / mol K
66 to.kcal <- function(k,temp=300) {
67   gasconst <- 1.985
68   return(-gasconst*temp*log(k)/1000)
69 }
70
71
72 \section{State Equation}
73 % double check this with the bits in the paper
74
75 Given a base forward kinetic parameter for the $i$th specie $k_{fi}$
76 (which is dependent on lipid type, that is PC, PE, PS, etc.), an
77 adjustment parameter $k_{fi\mathrm{adj}}$ based on the vesicle and the
78 specific specie (length, unsaturation, etc.) (see~\fref{eq:kf_adj}),
79 the molar concentration of monomer of the $i$th specie
80 $\left[C_{i_\mathrm{monomer}}\right]$, the surface area of the vesicle
81 $S_\mathrm{ves}$, the base backwards kinetic parameter for the $i$th
82 specie $k_{bi}$ which is also dependent on lipid type, its adjustment
83 parameter $k_{bi\mathrm{adj}}$ (see~\fref{eq:kb_adj}), and the molar
84 concentration of the $i$th specie in the vesicle
85 $\left[C_{i_\mathrm{ves}}\right]$, the change in concentration of the
86 $i$th specie in the vesicle per change in time $\frac{d
87   C_{i_\mathrm{ves}}}{dt}$ can be calculated:
88
89 \begin{equation}
90   \frac{d C_{i_\mathrm{ves}}}{dt} = k_{fi}k_{fi\mathrm{adj}}\left[C_{i_\mathrm{monomer}}\right]S_\mathrm{ves} -
91   k_{bi}k_{bi\mathrm{adj}}C_{i_\mathrm{ves}}
92   \label{eq:state}
93 \end{equation}
94
95 For $k_{fi}k_{fi\mathrm{adj}}\left[C_{i_\mathrm{monomer}}\right]$,
96 $k_{fi}$ has units of $\frac{\mathrm{m}}{\mathrm{s}}$,
97 $k_{fi\mathrm{adj}}$ and $k_{bi\mathrm{adj}}$ are unitless,
98 concentration is in units of $\frac{\mathrm{n}}{\mathrm{L}}$, surface
99 area is in units of $\mathrm{m}^2$, $k_{bi}$ has units of
100 $\frac{1}{\mathrm{s}}$ and $C_{i_\mathrm{ves}}$ has units of
101 $\mathrm{n}$, Thus, we have
102
103 \begin{equation}
104   \frac{\mathrm{n}}{\mathrm{s}} = \frac{\mathrm{m}}{\mathrm{s}} \frac{\mathrm{n}}{\mathrm{L}} \mathrm{m}^2 \frac{1000\mathrm{L}}{\mathrm{m}^3} - 
105   \frac{1}{\mathrm{s}} \mathrm{n}
106   =
107   \frac{\mathrm{m^3}}{\mathrm{s}} \frac{\mathrm{n}}{\mathrm{L}} \frac{1000\mathrm{L}}{\mathrm{m}^3} - \frac{\mathrm{n}}{\mathrm{s}}=
108   \frac{\mathrm{n}}{\mathrm{s}} = 1000 \frac{\mathrm{n}}{\mathrm{s}} - \frac{\mathrm{n}}{\mathrm{s}}
109   \label{eq:state_units}
110 \end{equation}
111
112 The 1000 isn't in \fref{eq:state} above, because it is unit-dependent.
113
114 \subsection{Forward adjustments ($k_{fi\mathrm{adj}}$)}
115 \label{sec:forward_adj}
116
117 The forward rate constant adjustment, $k_{fi\mathrm{adj}}$ takes into
118 account unsaturation ($un_f$), charge ($ch_f$), curvature ($cu_f$),
119 length ($l_f$), and complex formation ($CF1_f$), each of which are
120 modified depending on the specific specie and the vesicle into which
121 the specie is entering.
122
123 \begin{equation}
124   k_{fi\mathrm{adj}} = un_f \cdot ch_f \cdot cu_f \cdot l_f \cdot CF1_f
125   \label{eq:kf_adj}
126 \end{equation}
127
128 \newpage
129 \subsubsection{Unsaturation Forward}
130
131 In order for a lipid to be inserted into a membrane, a void has to be
132 formed for it to fill. Voids can be generated by the combination of
133 unsaturated and saturated lipids forming herterogeneous domains. Void
134 formation is increased when the unsaturation of lipids in the vesicle
135 is widely distributed; in other words, the insertion of lipids into
136 the membrane is greater when the standard deviation of the
137 unsaturation is larger. Assuming that an increase in width of the
138 distribution linearly decreases the free energy of activation, the
139 $un_f$ parameter must follow
140 $a^{\mathrm{stdev}\left(un_\mathrm{ves}\right)}$ where $a > 1$, so a
141 convenient starting base for $a$ is $2$:
142
143 \begin{equation}
144   un_f = 2^{\mathrm{stdev}\left(un_\mathrm{ves}\right)}
145   \label{eq:unsaturation_forward}
146 \end{equation}
147
148 The most common $\mathrm{stdev}\left(un_\mathrm{ves}\right)$ is around
149 $1.5$, which leads to a $\Delta \Delta G^\ddagger$ of
150 $\Sexpr{format(digits=3,to.kcal(2^1.5))}
151 \frac{\mathrm{kcal}}{\mathrm{mol}}$.
152
153 It is not clear that the unsaturation of the inserted monomer will
154 affect the rate of the insertion positively or negatively, so we do
155 not include a term for it in this formalism.
156
157
158 \setkeys{Gin}{width=3.2in}
159 <<fig=TRUE,echo=FALSE,results=hide,width=5,height=5>>=
160 curve(2^x,from=0,to=sd(c(0,4)),
161       main="Unsaturation Forward",
162       xlab="Standard Deviation of Unsaturation of Vesicle",
163       ylab="Unsaturation Forward Adjustment")
164
165 <<fig=TRUE,echo=FALSE,results=hide,width=5,height=5>>=
166 curve(to.kcal(2^x),from=0,to=sd(c(0,4)),
167       main="Unsaturation forward",
168       xlab="Standard Deviation of Unsaturation of Vesicle",
169       ylab="Unsaturation Forward (kcal/mol)")
170
171
172
173 \newpage
174 \subsubsection{Charge Forward}
175
176 A charged lipid such as PS approaching a vesicle with an average
177 charge of the same sign will experience repulsion, whereas those with
178 different signs will experience attraction, the degree of which is
179 dependent upon the charge of the monomer and the average charge of the
180 vesicle. If either the vesicle or the monomer has no charge, there
181 should be no effect of charge upon the rate. This leads us to the
182 following equation, $a^{-\left<ch_v\right> ch_m}$, where
183 $\left<ch_v\right>$ is the average charge of the vesicle, and $ch_m$
184 is the charge of the monomer. If either $\left<ch_v\right>$ or $ch_m$
185 is 0, the adjustment parameter is 1 (no change), whereas it decreases
186 if both are positive or negative, as the product of two real numbers
187 with the same sign is always positive. A convenient base for $a$ is
188 60, resulting in the following equation:
189
190
191 \begin{equation}
192   ch_f = 60^{-\left<{ch}_v\right> {ch}_m}
193   \label{eq:charge_forward}
194 \end{equation}
195
196 The most common $\left<{ch}_v\right>$ is around $-0.165$, which leads to
197 a range of $\Delta \Delta G^\ddagger$ from
198 $\Sexpr{format(digits=3,to.kcal(60^(-.165*-1)))}
199 \frac{\mathrm{kcal}}{\mathrm{mol}}$ to $0\frac{\mathrm{kcal}}{\mathrm{mol}}$.
200
201 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
202 x <- seq(-1,0,length.out=20)
203 y <- seq(-1,0,length.out=20)
204 grid <- expand.grid(x=x,y=y)
205 grid$z <- as.vector(60^(-outer(x,y)))
206 print(wireframe(z~x*y,grid,cuts=50,
207                 drape=TRUE,
208                 scales=list(arrows=FALSE),
209                 main="Charge Forward",
210                 xlab=list("Average Vesicle Charge",rot=30),
211                 ylab=list("Component Charge",rot=-35),
212                 zlab=list("Charge Forward",rot=93)))
213 rm(x,y,grid)
214
215 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
216 x <- seq(-1,0,length.out=20)
217 y <- seq(-1,0,length.out=20)
218 grid <- expand.grid(x=x,y=y)
219 grid$z <- as.vector(to.kcal(60^(-outer(x,y))))
220 print(wireframe(z~x*y,grid,cuts=50,
221                 drape=TRUE,
222                 scales=list(arrows=FALSE),
223                 main="Charge Forward (kcal/mol)",
224                 xlab=list("Average Vesicle Charge",rot=30),
225                 ylab=list("Component Charge",rot=-35),
226                 zlab=list("Charge Forward (kcal/mol)",rot=93)))
227 rm(x,y,grid)
228
229
230
231 \newpage
232 \subsubsection{Curvature Forward}
233
234 Curvature is a measure of the intrinsic propensity of specific lipids
235 to form micelles (positive curvature), inverted micelles (negative
236 curvature), or planar sheets (zero curvature). In this formalism,
237 curvature is measured as the ratio of the size of the head to that of
238 the base, so negative curvature is bounded by $(0,1)$, zero curvature
239 is 1, and positive curvature is bounded by $(1,\infty)$. The curvature
240 can be transformed into the typical postive/negative mapping using
241 $\log$, which has the additional property of making the range of
242 positive and negative curvature equal, and distributed about 0.
243
244 As in the case of unsaturation, void formation is increased by the
245 presence of lipids with mismatched curvature. Thus, a larger
246 distribution of curvature in the vesicle increases the rate of lipid
247 insertion into the vesicle. However, a species with curvature $e^{-1}$
248 will cancel out a species with curvature $e$, so we have to log
249 transform (turning these into -1 and 1), then take the absolute value
250 (1 and 1), and finally measure the width of the distribution. Thus, by
251 using the log transform to make the range of the lipid curvature equal
252 between positive and negative, and taking the average to cancel out
253 exactly mismatched curvatures, we come to an equation with the shape
254 $a^{\left<\log cu_\mathrm{vesicle}\right>}$. A convenient base for $a$
255 is $10$, yielding:
256
257
258 \begin{equation}
259  % cu_f = 10^{\mathrm{stdev}\left|\log cu_\mathrm{vesicle}\right|}
260   cu_f = 10^{\left|\left<\log cu_\mathrm{vesicle} \right>\right|\mathrm{stdev} \left|\log cu_\mathrm{vesicle}\right|}
261   \label{eq:curvature_forward}
262 \end{equation}
263
264 The most common $\left|\left<\log {cu}_v\right>\right|$ is around
265 $0.013$, which with the most common $\mathrm{stdev} \log
266 cu_\mathrm{vesicle}$ of $0.213$ leads to a $\Delta \Delta G^\ddagger$
267 of $\Sexpr{format(digits=3,to.kcal(10^(0.13*0.213)))}
268 \frac{\mathrm{kcal}}{\mathrm{mol}}$. This is a consequence of the
269 relatively matched curvatures in our environment.
270
271 % 1.5 to 0.75 3 to 0.33
272 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
273 grid <- expand.grid(x=seq(0,max(c(sd(abs(log(c(1,3)))),
274                       sd(abs(log(c(1,0.33)))),sd(abs(log(c(0.33,3)))))),length.out=20),
275                     y=seq(0,max(c(mean(log(c(1,3)),
276                       mean(log(c(1,0.33))),
277                       mean(log(c(0.33,3)))))),length.out=20))
278 grid$z <- 10^(grid$x*grid$y)
279 print(wireframe(z~x*y,grid,cuts=50,
280           drape=TRUE,
281           scales=list(arrows=FALSE),
282           xlab=list("Vesicle stdev log curvature",rot=30),
283           ylab=list("Vesicle average log curvature",rot=-35),
284           zlab=list("Vesicle Curvature Forward",rot=93)))
285 rm(grid)
286
287 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
288 grid <- expand.grid(x=seq(0,max(c(sd(abs(log(c(1,3)))),
289                       sd(abs(log(c(1,0.33)))),sd(abs(log(c(0.33,3)))))),length.out=20),
290                     y=seq(0,max(c(mean(log(c(1,3)),
291                       mean(log(c(1,0.33))),
292                       mean(log(c(0.33,3)))))),length.out=20))
293 grid$z <- to.kcal(10^(grid$x*grid$y))
294 print(wireframe(z~x*y,grid,cuts=50,
295           drape=TRUE,
296           scales=list(arrows=FALSE),
297           xlab=list("Vesicle stdev log curvature",rot=30),
298           ylab=list("Vesicle average log curvature",rot=-35),
299           zlab=list("Vesicle Curvature Forward (kcal/mol)",rot=93)))
300 rm(grid)
301
302
303 \newpage
304 \subsubsection{Length Forward}
305
306 As in the case of unsaturation, void formation is easier when vesicles
307 are made up of components of widely different lengths. Thus, when the
308 width of the distribution of lengths is larger, the forward rate
309 should be greater as well, leading us to an equation of the form
310 $x^{\mathrm{stdev} l_\mathrm{ves}}$, where $\mathrm{stdev}
311 l_\mathrm{ves}$ is the standard deviation of the length of the
312 components of the vesicle, which has a maximum possible value of 8 and
313 a minimum of 0 in this set of experiments. A convenient base for $x$
314 is 2, leading to:
315
316 \begin{equation}
317   l_f = 2^{\mathrm{stdev} l_\mathrm{ves}}
318   \label{eq:length_forward}
319 \end{equation}
320
321 The most common $\mathrm{stdev} l_\mathrm{ves}$ is around $3.4$, which leads to
322 a range of $\Delta \Delta G^\ddagger$ of
323 $\Sexpr{format(digits=3,to.kcal(2^(3.4)))}
324 \frac{\mathrm{kcal}}{\mathrm{mol}}$.
325
326 While it could be argued that increased length of the monomer could
327 affect the rate of insertion into the membrane, it's not clear whether
328 it would increase (by decreasing the number of available hydrogen
329 bonds, for example) or decrease (by increasing the time taken to fully
330 insert the acyl chain, for example) the rate of insertion or to what
331 degree, so we do not take it into account in this formalism.
332
333
334 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=5>>=
335 curve(2^x,from=0,to=sd(c(12,24)),
336       main="Length forward",
337       xlab="Standard Deviation of Length of Vesicle",
338       ylab="Length Forward Adjustment")
339
340 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=5>>=
341 curve(to.kcal(2^x),from=0,to=sd(c(12,24)),
342       main="Length forward",
343       xlab="Standard Deviation of Length of Vesicle",
344       ylab="Length Forward Adjustment (kcal/mol)")
345
346
347
348 \subsubsection{Complex Formation}
349 There is no contribution of complex formation to the forward reaction
350 rate in the current formalism.
351
352 \begin{equation}
353   CF1_f=1
354   \label{eq:complex_formation_forward}
355 \end{equation}
356
357 \subsection{Backward adjustments ($k_{bi\mathrm{adj}}$)}
358
359 Just as the forward rate constant adjustment $k_{fi\mathrm{adj}}$
360 does, the backwards rate constant adjustment $k_{bi\mathrm{adj}}$
361 takes into account unsaturation ($un_b$), charge ($ch_b$), curvature
362 ($cu_b$), length ($l_b$), and complex formation ($CF1_b$), each of
363 which are modified depending on the specific specie and the vesicle
364 into which the specie is entering:
365
366
367 \begin{equation}
368   k_{bi\mathrm{adj}} = un_b \cdot ch_b \cdot cu_b \cdot l_b \cdot CF1_b
369   \label{eq:kb_adj}
370 \end{equation}
371
372 \subsubsection{Unsaturation Backward}
373
374 Unsaturation also influences the ability of a lipid molecule to leave
375 a membrane. If a molecule has an unsaturation level which is different
376 from the surrounding membrane, it will be more likely to leave the
377 membrane. The more different the unsaturation level is, the greater
378 the propensity for the lipid molecule to leave. However, a vesicle
379 with some unsaturation is more favorable for lipids with more
380 unsaturation than the equivalent amount of less unsatuturation, so the
381 difference in energy between unsaturation is not linear. Therefore, an
382 equation with the shape
383 $x^{\left| y^{-\left< un_\mathrm{ves}\right> }-y^{-un_\mathrm{monomer}} \right| }$
384 where $\left<un_\mathrm{ves}\right>$ is the average unsaturation of
385 the vesicle, and $un_\mathrm{monomer}$ is the average unsaturation. In
386 this equation, as the average unsaturation of the vesicle is larger,
387
388 \begin{equation}
389   un_b = 7^{1-\left(20\left(2^{-\left<un_\mathrm{vesicle} \right>} - 2^{-un_\mathrm{monomer}} \right)^2+1\right)^{-1}}
390   \label{eq:unsaturation_backward}
391 \end{equation}
392
393 The most common $\left<un_\mathrm{ves}\right>$ is around $1.7$, which leads to
394 a range of $\Delta \Delta G^\ddagger$ from
395 $\Sexpr{format(digits=3,to.kcal(7^(1-1/(5*(2^-1.7-2^-0)^2+1))))}
396 \frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with 0 unsaturation
397 to
398 $\Sexpr{format(digits=3,to.kcal(7^(1-1/(5*(2^-1.7-2^-4)^2+1))))}\frac{\mathrm{kcal}}{\mathrm{mol}}$
399 for monomers with 4 unsaturations.
400
401
402 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
403 grid <- expand.grid(x=seq(0,4,length.out=20),
404                     y=seq(0,4,length.out=20))
405 grid$z <- (7^(1-1/(5*(2^-grid$x-2^-grid$y)^2+1)))
406 print(wireframe(z~x*y,grid,cuts=50,
407           drape=TRUE,
408           scales=list(arrows=FALSE),
409           xlab=list("Average Vesicle Unsaturation",rot=30),
410           ylab=list("Monomer Unsaturation",rot=-35),
411           zlab=list("Unsaturation Backward",rot=93)))
412 rm(grid)
413
414 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
415 grid <- expand.grid(x=seq(0,4,length.out=20),
416                     y=seq(0,4,length.out=20))
417 grid$z <- to.kcal((7^(1-1/(5*(2^-grid$x-2^-grid$y)^2+1))))
418 print(wireframe(z~x*y,grid,cuts=50,
419           drape=TRUE,
420           scales=list(arrows=FALSE),
421           xlab=list("Average Vesicle Unsaturation",rot=30),
422           ylab=list("Monomer Unsaturation",rot=-35),
423           zlab=list("Unsaturation Backward (kcal/mol)",rot=93)))
424 rm(grid)
425
426
427
428
429 \newpage
430 \subsubsection{Charge Backwards}
431 As in the case of monomers entering a vesicle, monomers leaving a
432 vesicle leave faster if their charge has the same sign as the average
433 charge vesicle. An equation of the form $ch_b = a^{\left<ch_v\right>
434   ch_m}$ is then appropriate, and using a base of $a=20$ yields:
435
436 \begin{equation}
437   ch_b = 20^{\left<{ch}_v\right> {ch}_m}
438   \label{eq:charge_backwards}
439 \end{equation}
440
441 The most common $\left<ch_v\right>$ is around $-0.164$, which leads to
442 a range of $\Delta \Delta G^\ddagger$ from
443 $\Sexpr{format(digits=3,to.kcal(20^(-.164*-1)))}
444 \frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with charge $-1$ to
445 $0\frac{\mathrm{kcal}}{\mathrm{mol}}$
446 for monomers with charge $0$.
447
448
449 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
450 x <- seq(-1,0,length.out=20)
451 y <- seq(-1,0,length.out=20)
452 grid <- expand.grid(x=x,y=y)
453 grid$z <- as.vector(20^(outer(x,y)))
454 print(wireframe(z~x*y,grid,cuts=50,
455           drape=TRUE,
456           scales=list(arrows=FALSE),
457           xlab=list("Average Vesicle Charge",rot=30),
458           ylab=list("Component Charge",rot=-35),
459           zlab=list("Charge Backwards",rot=93)))
460 rm(x,y,grid)
461
462 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
463 x <- seq(-1,0,length.out=20)
464 y <- seq(-1,0,length.out=20)
465 grid <- expand.grid(x=x,y=y)
466 grid$z <- to.kcal(as.vector(20^(outer(x,y))))
467 print(wireframe(z~x*y,grid,cuts=50,
468           drape=TRUE,
469           scales=list(arrows=FALSE),
470           xlab=list("Average Vesicle Charge",rot=30),
471           ylab=list("Component Charge",rot=-35),
472           zlab=list("Charge Backwards (kcal/mol)",rot=93)))
473 rm(x,y,grid)
474
475
476 \newpage
477 \subsubsection{Curvature Backwards}
478
479 The less a monomer's intrinsic curvature matches the average curvature
480 of the vesicle in which it is in, the greater its rate of efflux. If
481 the difference is 0, $cu_f$ needs to be one. To map negative and
482 positive curvature to the same range, we also need take the logarithm.
483 Increasing mismatches in curvature increase the rate of efflux, but
484 asymptotically.  An equation which satisfies this critera has the
485 form $cu_f = a^{1-\left(b\left( \left< \log cu_\mathrm{vesicle} \right>
486       -\log cu_\mathrm{monomer}\right)^2+1\right)^{-1}}$. An
487 alternative form would use the aboslute value of the difference,
488 however, this yields a cusp and sharp increase about the curvature
489 equilibrium, which is decidedly non-elegant. We have chosen bases of
490 $a=7$ and $b=20$.
491
492 \begin{equation}
493   cu_b = 7^{1-\left(20\left(\left< \log cu_\mathrm{vesicle} \right> -\log cu_\mathrm{monomer} \right)^2+1\right)^{-1}}
494   \label{eq:curvature_backwards}
495 \end{equation}
496
497 The most common $\left<\log cu_\mathrm{ves}\right>$ is around $-0.013$, which leads to
498 a range of $\Delta \Delta G^\ddagger$ from
499 $\Sexpr{format(digits=3,to.kcal(7^(1-1/(20*(-0.013-log(0.8))^2+1))))}
500 \frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with curvature 0.8
501 to
502 $\Sexpr{format(digits=3,to.kcal(7^(1-1/(20*(-0.013-log(1.3))^2+1))))}\frac{\mathrm{kcal}}{\mathrm{mol}}$
503 for monomers with curvature 1.3 to $0\frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with curvature near 1.
504
505
506 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
507 grid <- expand.grid(x=seq(0.8,1.33,length.out=20),
508                     y=seq(0.8,1.33,length.out=20))
509 grid$z <- 7^(1-1/(20*(log(grid$x)-log(grid$y))^2+1))
510 print(wireframe(z~x*y,grid,cuts=50,
511           drape=TRUE,
512           scales=list(arrows=FALSE),
513           xlab=list("Vesicle Curvature",rot=30),
514           ylab=list("Monomer Curvature",rot=-35),
515           zlab=list("Curvature Backward",rot=93)))
516 rm(grid)
517
518 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
519 grid <- expand.grid(x=seq(0.8,1.33,length.out=20),
520                     y=seq(0.8,1.33,length.out=20))
521 grid$z <- to.kcal(7^(1-1/(20*(log(grid$x)-log(grid$y))^2+1)))
522 print(wireframe(z~x*y,grid,cuts=50,
523           drape=TRUE,
524           scales=list(arrows=FALSE),
525           xlab=list("Vesicle Curvature",rot=30),
526           ylab=list("Monomer Curvature",rot=-35),
527           zlab=list("Curvature Backward (kcal/mol)",rot=93)))
528 rm(grid)
529
530
531 \newpage
532 \subsubsection{Length Backwards}
533
534 In a model membrane, the dissociation constant increases by a factor
535 of approximately 3.2 per carbon decrease in acyl chain length (Nichols
536 1985). Unfortunatly, the experimental data known to us only measures
537 chain length less than or equal to the bulk lipid, and does not exceed
538 it, and is only known for one bulk lipid species (DOPC). We assume
539 then, that the increase is in relationship to the average vesicle, and
540 that lipids with larger acyl chain length will also show an increase
541 in their dissociation constant.
542
543 \begin{equation}
544   l_b = 3.2^{\left|\left<l_\mathrm{ves}\right>-l_\mathrm{monomer}\right|}
545   \label{eq:length_backward}
546 \end{equation}
547
548 The most common $\left<\log l_\mathrm{ves}\right>$ is around $17.75$, which leads to
549 a range of $\Delta \Delta G^\ddagger$ from
550 $\Sexpr{format(digits=3,to.kcal(3.2^abs(12-17.75)))}
551 \frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with length 12
552 to
553 $\Sexpr{format(digits=3,to.kcal(3.2^abs(24-17.75)))}\frac{\mathrm{kcal}}{\mathrm{mol}}$
554 for monomers with length 24 to $0\frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with curvature near 18.
555
556
557 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
558 grid <- expand.grid(x=seq(12,24,length.out=20),
559                     y=seq(12,24,length.out=20))
560 grid$z <- 3.2^(abs(grid$x-grid$y))
561 print(wireframe(z~x*y,grid,cuts=50,
562           drape=TRUE,
563           scales=list(arrows=FALSE),
564           xlab=list("Average Vesicle Length",rot=30),
565           ylab=list("Monomer Length",rot=-35),
566           zlab=list("Length Backward",rot=93)))
567 rm(grid)
568
569 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
570 grid <- expand.grid(x=seq(12,24,length.out=20),
571                     y=seq(12,24,length.out=20))
572 grid$z <- to.kcal(3.2^(abs(grid$x-grid$y)))
573 print(wireframe(z~x*y,grid,cuts=50,
574           drape=TRUE,
575           scales=list(arrows=FALSE),
576           xlab=list("Average Vesicle Length",rot=30),
577           ylab=list("Monomer Length",rot=-35),
578           zlab=list("Length Backward (kcal/mol)",rot=93)))
579 rm(grid)
580
581
582
583 \newpage
584 \subsubsection{Complex Formation Backward}
585
586 Complex formation describes the interaction between CHOL and PC or SM,
587 where PC or SM protects the hydroxyl group of CHOL from interactions
588 with water, the ``Umbrella Model''. PC ($CF1=2$) can interact with two
589 CHOL, and SM ($CF1=3$) with three CHOL ($CF1=-1$). If the average of
590 $CF1$ is positive (excess of SM and PC with regards to complex
591 formation), species with negative $CF1$ (CHOL) will be retained. If
592 average $CF1$ is negative, species with positive $CF1$ are retained.
593 An equation which has this property is
594 $CF1_b=a^{\left<CF1_\mathrm{ves}\right>
595   CF1_\mathrm{monomer}-\left|\left<CF1_\mathrm{ves}\right>
596     CF1_\mathrm{monomer}\right|}$, where difference of the exponent is
597 zero if the average $CF1$ and the $CF1$ of the specie have the same
598 sign, or double the product if the signs are different. A convenient
599 base for $a$ is $1.5$.
600
601
602 \begin{equation}
603   CF1_b=1.5^{\left<CF1_\mathrm{ves}\right> CF1_\mathrm{monomer}-\left|\left<CF1_\mathrm{ves}\right> CF1_\mathrm{monomer}\right|}
604   \label{eq:complex_formation_backward}
605 \end{equation}
606
607 The most common $\left<CF1_\mathrm{ves}\right>$ is around $0.925$,
608 which leads to a range of $\Delta \Delta G^\ddagger$ from
609 $\Sexpr{format(digits=3,to.kcal(1.5^(0.925*-1-abs(0.925*-1))))}
610 \frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with complex
611 formation $-1$ to
612 $\Sexpr{format(digits=3,to.kcal(1.5^(0.925*2-abs(0.925*2))))}\frac{\mathrm{kcal}}{\mathrm{mol}}$
613 for monomers with complex formation $2$ to
614 $0\frac{\mathrm{kcal}}{\mathrm{mol}}$ for monomers with complex
615 formation $0$.
616
617
618 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
619 grid <- expand.grid(x=seq(-1,3,length.out=20),
620                     y=seq(-1,3,length.out=20))
621 grid$z <- 1.5^(grid$x*grid$y-abs(grid$x*grid$y))
622 print(wireframe(z~x*y,grid,cuts=50,
623           drape=TRUE,
624           scales=list(arrows=FALSE),
625           xlab=list("Vesicle Complex Formation",rot=30),
626           ylab=list("Monomer Complex Formation",rot=-35),
627           zlab=list("Complex Formation Backward",rot=93)))
628 rm(grid)
629
630 <<fig=TRUE,echo=FALSE,results=hide,width=7,height=7>>=
631 grid <- expand.grid(x=seq(-1,3,length.out=20),
632                     y=seq(-1,3,length.out=20))
633 grid$z <- to.kcal(1.5^(grid$x*grid$y-abs(grid$x*grid$y)))
634 print(wireframe(z~x*y,grid,cuts=50,
635           drape=TRUE,
636           scales=list(arrows=FALSE),
637           xlab=list("Vesicle Complex Formation",rot=30),
638           ylab=list("Monomer Complex Formation",rot=-35),
639           zlab=list("Complex Formation Backward (kcal/mol)",rot=93)))
640 rm(grid)
641
642
643
644 \section{Simulation Methodology}
645
646 \subsection{Overall Architecture}
647
648 The simulation is currently run by single program written in perl
649 using various different modules to handle the subsidiary parts. It
650 produces output for each generation, including the step immediately
651 preceeding and immediately following a vesicle split (and optionally,
652 each step) that is written to a state file which contains the state of
653 the vesicle, environment, kinetic parameters, program invocation
654 options, time, and various other parameters necessary to recreate the
655 state vector at a given time. This output file is then read by a
656 separate program in perl to produce different output which is
657 generated out-of-band; output which includes graphs and statistical
658 analysis is performed using R (and various grid graphics modules)
659 called from the perl program.
660
661 The separation of simulation and output generation allows refining
662 output, and simulations performed on different versions of the
663 underlying code to be compared using the same analysis methods and
664 code. It also allows later simulations to be restarted from a specific
665 generation, utilizing the same environment.
666
667 Random variables of different distributions are calculated using
668 Math::Random, which is seeded for each run using entropy from the
669 linux kernel's urandom device.
670
671 \subsection{Environment Creation}
672
673 \subsubsection{Components}
674 The environment contains different concentrations of different
675 components. In the current set of simulations, there are
676 \Sexpr{1+4*5*7} different components, consisting of PC, PE, PS, SM,
677 and CHOL, with all lipids except for CHOL having 5 possible
678 unsaturations rangiong from 0 to 4, and 7 lengths from $12,14,...,22$
679 ($7\cdot 5\cdot4+1=\Sexpr{1+4*5*7}$). In cases where the environment
680 has less than the maximum number of components, the components are
681 selected in order without replacement from a randomly shuffled deck of
682 component (with the exception of CHOL) represented once until the
683 desired number of unique components are obtained. CHOL is over
684 representated $\Sexpr{5*7}$ times to be at the level of other lipid
685 types, ensures that the probability of CHOL being asbent in the
686 environment is the same as the probability of one of the other lipid
687 types (PS, PE, etc.) being entirely absent. This reduces the number of
688 simulations with a small number of components which are entirely
689 devoid of CHOL.
690
691 \subsubsection{Concentration}
692 Once the components of the environment have been selected, the
693 concentration of thoes components is determined. In experiments where
694 the environmental concentration is the same across all lipid
695 components, the concentration is set to $10^{-10}\mathrm{M}$. In other
696 cases, the environmental concentration is set to a random number from
697 a gamma distribution with shape parameter 2 and an average of
698 $10^{-10}\mathrm{M}$. The base concentration ($10^{-10}\mathrm{M}$)
699 can also be altered in the initialization of the experiment to
700 specific values for specific lipid types or components.
701
702 \subsection{Initial Vesicle Creation}
703
704 Initial vesicles are seeded by selecting lipid molecules from the
705 environment until the vesicle reaches a specific starting size. The
706 vesicle starting size has gamma distribution with shape parameter 2
707 and a mean of the experimentally specified starting size, with a
708 minimum of 5 lipid molecules. Lipid molecules are then selected to be
709 added to the lipid membrane according to four different methods. In
710 the constant method, molecules are added in direct proportion to their
711 concentration in the environment. The uniform method adds molecules in
712 proportion to their concentration in the environment scaled by a
713 uniform random value, whereas the random method adds molecules in
714 proportion to a uniform random value. The final method is a binomial
715 method, which adjust the porbability of adding a molecule of a
716 specific component by the concentration of that component, and then
717 adds the molecules one by one to the membrane. This final method is
718 also used in the first three methods to add any missing molecules to
719 the starting vesicle which were unallocated due to the requirement to
720 add integer numbers of molecules.
721
722 \subsection{Simulation Step}
723
724 Once the environment has been created and the initial vesicle has been
725 formed, molecules join and leave the vesicle based on the kinetic
726 parameters and state equation discussed until the vesicle splits
727 forming two daughter vesicles, one of which the program continues to
728 follow.
729
730 \subsubsection{Calculation of Vesicle Properties}
731
732 \label{sec:ves_prop}
733 $S_\mathrm{ves}$ is the surface area of the vesicle, and is the sum of
734 the surface area of all of the individual lipid components; each lipid
735 type has a different surface area; we na\"ively assume that the lipid
736 packing is optimal, and there is no empty space.
737
738 \subsubsection{Joining and Leaving of Lipid Molecules}
739
740 Determining the number of molecules to add to the lipid membrane
741 ($n_i$) requires knowing $k_{fi\mathrm{adj}}$, the surface area of the
742 vesicle $S_\mathrm{ves}$ (see~\fref{sec:ves_prop}), the time interval
743 $dt$ during which lipids are added, the base $k_{fi}$, and the
744 concentration of the monomer in the environment
745 $\left[C_{i\mathrm{ves}}\right]$ (see~\fref{eq:state}).
746 $k_{fi\mathrm{adj}}$ is calculated (see~\fref{eq:kf_adj}) based on the
747 vesicle properties and their hypothesized effect on the rate (in as
748 many cases as possible, experimentally based)
749 (see~\fref{sec:forward_adj} for details). $dt$ can be varied
750 (see~\fref{sec:step_duration}), but for a given step is constant. This
751 leads to the following:
752
753 $n_i = k_{fi}k_{fi\mathrm{adj}}\left[C_{i_\mathrm{monomer}}\right]S_\mathrm{ves}\mathrm{N_A}dt$
754
755 In the cases where $n_i > 1$, the integer number of molecules is
756 added. Fractional $n_i$ or the fractional remainder after the addition
757 of the integer molecules are the probability of adding a specific
758 molecule, and are compared to a uniformly distributed random value
759 between 0 and 1. If the random value is less than or equal to the
760 fractional part of $n_i$, an additional molecule is added.
761
762 Molecules leaving the vesicle are handled in a similar manner, with 
763
764 $n_i = k_{bi}k_{bi\mathrm{adj}}C_{i_\mathrm{ves}}\mathrm{N_A}dt$.
765
766 While programatically, the molecule removal happens after the
767 addition, the properties that each operates on are the same, so they
768 can be considered to have been added and removed at the same instant.
769 [This also avoids cases where a removal would have resulted in
770 negative molecules for a particular type, which is obviously
771 disallowed.]
772
773 \subsubsection{Step duration}
774 \label{sec:step_duration}
775
776 $dt$ is the time taken for each step of joining, leaving, and checking
777 split. In the current implementation, it starts with a value of
778 $10^{-6}\mathrm{s}$ but this is modified in between each step if the
779 number of molecules joining or leaving is too large or small. If more
780 than half of the starting vesicle size molecules join or leave in a
781 single step, $dt$ is reduced by half. If less than the starting
782 vesicle size molecules join or leave in 100 steps, $dt$ is doubled.
783 This is necessary to curtail run times and to automatically adjust to
784 different experimental runs.
785
786 (In every run seen so far, the initial $dt$ was too small, and was
787 increased before the first generation occured; at no time was $dt$ too
788 large.)
789
790 \subsubsection{Vesicle splitting}
791
792 If a vesicle has grown to a size which is more than double the
793 starting vesicle size, the vesicle splits. More elaborate mechanisms
794 for determining whether a vesicle should split are of course possible,
795 but not currently implemented. Molecules are assigned to the daughter
796 vesicles at random, with each daughter vesicle having an equal chance
797 of getting a single molecule. The number of molecules to assign to the
798 first vesicle has binomial distribution with a probability of an event
799 in each trial of 0.5 and a number of trials equal to the number of
800 molecules.
801
802 \subsection{Output}
803
804 The environment, initial vesicle, and the state of the vesicle
805 immediately before and immediately after splitting are stored to disk
806 to produce later output.
807
808 \section{Analyzing output}
809
810 Analyzing of output is handled by a separate perl program which shares
811 many common modules with the simulation program. Current output
812 includes simulation progress, summary tables, summary statistics, and
813 various graphs.
814
815 \subsection{PCA plots}
816
817 Vesicles have many different axes which contribute to their variation
818 between subsequent generations; two major groups of axes are the
819 components and properties of vesicles. Each component in a vesicle is
820 an axis on its own; it can be measured either as an absolute number of
821 molecules in each component, or the fraction of molecules of that
822 component over the total number of molecules; the second approach is
823 often more convenient, as it allows vesicles of different number of
824 molecules to be more directly compared (though it hides any affect of
825 vesicle size).
826
827 In order to visualize the transition of subsequent generations of
828 vesicles from their initial state in the simulation, to their final
829 state at the termination of 
830
831 \subsection{Carpet plots}
832
833
834
835 % \bibliographystyle{plainnat}
836 % \bibliography{references.bib}
837
838
839 \end{document}