X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=kinetic_formalism.Rnw;h=22720d9b3dc2392462df74e1f54b1c4cfb4239c6;hb=b9c7adf84db14e1d293d2aba36cbbc85f09a9e44;hp=5c6dd27719569226daa3885f5d795cc0761ff960;hpb=fc2911abf065d3aae71f7f447563af184298956b;p=ool%2Flipid_simulation_formalism.git diff --git a/kinetic_formalism.Rnw b/kinetic_formalism.Rnw index 5c6dd27..22720d9 100644 --- a/kinetic_formalism.Rnw +++ b/kinetic_formalism.Rnw @@ -62,18 +62,62 @@ <>= require(lattice) require(grid) +# R in cal / mol K +to.kcal <- function(k,temp=300) { + gasconst <- 1.985 + return(-gasconst*temp*log(k)/1000) +} @ \section{State Equation} % double check this with the bits in the paper + +Given a base forward kinetic parameter for the $i$th specie $k_{fi}$ +(which is dependent on lipid type, that is PC, PE, PS, etc.), an +adjustment parameter $k_{fi\mathrm{adj}}$ based on the vesicle and the +specific specie (length, unsaturation, etc.) (see~\fref{eq:kf_adj}), +the molar concentration of monomer of the $i$th specie +$\left[C_{i_\mathrm{monomer}}\right]$, the surface area of the vesicle +$S_\mathrm{ves}$, the base backwards kinetic parameter for the $i$th +specie $k_{bi}$ which is also dependent on lipid type, its adjustment +parameter $k_{bi\mathrm{adj}}$ (see~\fref{eq:kb_adj}), and the molar +concentration of the $i$th specie in the vesicle $C_{i_\mathrm{ves}}$, +the change in concentration of the $i$th specie in the vesicle per +change in time $\frac{d C_{i_\mathrm{ves}}}{dt}$ can be calculated: + \begin{equation} - \frac{d C^{j}_{i_\mathrm{ves}}}{dt} = k_{fi}k_{fi\mathrm{adj}}\left[C^j_{i_\mathrm{monomer}}\right] - - k_{bi}k_{bi\mathrm{adj}}C^j_{i_\mathrm{ves}} + \frac{d C_{i_\mathrm{ves}}}{dt} = k_{fi}k_{fi\mathrm{adj}}\left[C_{i_\mathrm{monomer}}\right]S_\mathrm{ves} - + k_{bi}k_{bi\mathrm{adj}}C_{i_\mathrm{ves}} \label{eq:state} \end{equation} +For $k_{fi}k_{fi\mathrm{adj}}\left[C_{i_\mathrm{monomer}}\right]$, +$k_{fi}$ has units of $\frac{\mathrm{m}}{\mathrm{s}}$, +$k_{fi\mathrm{adj}}$ and $k_{bi\mathrm{adj}}$ are unitless, +concentration is in units of $\frac{\mathrm{n}}{\mathrm{L}}$, surface +area is in units of $\mathrm{m}^2$, $k_{bi}$ has units of +$\frac{1}{\mathrm{s}}$ and $C_{i_\mathrm{ves}}$ has units of +$\mathrm{n}$, Thus, we have + +\begin{equation} + \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} - + \frac{1}{\mathrm{s}} \mathrm{n} + = + \frac{\mathrm{m^3}}{\mathrm{s}} \frac{\mathrm{n}}{\mathrm{L}} \frac{1000\mathrm{L}}{\mathrm{m}^3} - \frac{\mathrm{n}}{\mathrm{s}}= + \frac{\mathrm{n}}{\mathrm{s}} = 1000 \frac{\mathrm{n}}{\mathrm{s}} - \frac{\mathrm{n}}{\mathrm{s}} + \label{eq:state_units} +\end{equation} + +The 1000 isn't in \fref{eq:state} above, because it is unit-dependent. + \subsection{Forward adjustments ($k_{fi\mathrm{adj}}$)} +The forward rate constant adjustment, $k_{fi\mathrm{adj}}$ takes into +account unsaturation ($un_f$), charge ($ch_f$), curvature ($cu_f$), +length ($l_f$), and complex formation ($CF1_f$), each of which are +modified depending on the specific specie and the vesicle into which +the specie is entering. + \begin{equation} k_{fi\mathrm{adj}} = un_f \cdot ch_f \cdot cu_f \cdot l_f \cdot CF1_f \label{eq:kf_adj} @@ -81,46 +125,128 @@ require(grid) \newpage \subsubsection{Unsaturation Forward} + +In order for a lipid to be inserted into a membrane, a void has to be +formed for it to fill. Voids can be generated by the combination of +unsaturated and saturated lipids forming herterogeneous domains. Void +formation is increased when the unsaturation of lipids in the vesicle +is widely distributed; in other words, the insertion of lipids into +the membrane is greater when the standard deviation of the +unsaturation is larger. Assuming that an increase in width of the +distribution linearly decreases the free energy of activation, the +$un_f$ parameter must follow +$x^{\mathrm{stdev}\left(un_\mathrm{ves}\right)}$ where $x > 1$, so a +convenient starting base for $x$ is 2: + \begin{equation} un_f = 2^{\mathrm{stdev}\left(un_\mathrm{ves}\right)} \label{eq:unsaturation_forward} \end{equation} +\setkeys{Gin}{width=3.2in} <>= curve(2^x,from=0,to=sd(c(0,4)), - main="Unsaturation forward", + main="Unsaturation Forward", xlab="Standard Deviation of Unsaturation of Vesicle", ylab="Unsaturation Forward Adjustment") @ +<>= +curve(to.kcal(2^x),from=0,to=sd(c(0,4)), + main="Unsaturation forward", + xlab="Standard Deviation of Unsaturation of Vesicle", + ylab="Unsaturation Forward (kcal/mol)") +@ + \newpage \subsubsection{Charge Forward} + +A charged lipid such as PS approaching a vesicle with an average +charge of the same sign will experience repulsion, whereas those with +different signs will experience attraction, the degree of which is +dependent upon the charge of the monomer and the average charge of the +vesicle. If either the vesicle or the monomer has no charge, there +should be no effect of charge upon the rate. This leads us to the +following equation, $x^{-\left ch_m}$, where +$\left$ is the average charge of the vesicle, and $ch_m$ +is the charge of the monomer. If either $\left$ or $ch_m$ +is 0, the adjustment parameter is 1 (no change), whereas it decreases +if both are positive or negative, as the product of two real numbers +with the same sign is always positive. A convenient base for $x$ is +60, resulting in the following equation: + + \begin{equation} ch_f = 60^{-\left<{ch}_v\right> {ch}_m} \label{eq:charge_forward} \end{equation} -<>= +<>= x <- seq(-1,0,length.out=20) y <- seq(-1,0,length.out=20) grid <- expand.grid(x=x,y=y) grid$z <- as.vector(60^(-outer(x,y))) print(wireframe(z~x*y,grid,cuts=50, - drape=TRUE, - scales=list(arrows=FALSE), - xlab="Average Vesicle Charge", - ylab="Component Charge", - zlab="Charge Forward")) + drape=TRUE, + scales=list(arrows=FALSE), + main="Charge Forward", + xlab=list("Average Vesicle Charge",rot=30), + ylab=list("Component Charge",rot=-35), + zlab=list("Charge Forward",rot=93))) +rm(x,y,grid) +@ +<>= +x <- seq(-1,0,length.out=20) +y <- seq(-1,0,length.out=20) +grid <- expand.grid(x=x,y=y) +grid$z <- as.vector(to.kcal(60^(-outer(x,y)))) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + main="Charge Forward (kcal/mol)", + xlab=list("Average Vesicle Charge",rot=30), + ylab=list("Component Charge",rot=-35), + zlab=list("Charge Forward (kcal/mol)",rot=93))) rm(x,y,grid) @ + \newpage \subsubsection{Curvature Forward} + +Curvature is a measure of the intrinsic propensity of specific lipids +to form micelles (positive curvature), inverted micelles (negative +curvature), or planar sheets (zero curvature). In this formalism, +curvature is measured as the ratio of the size of the head to that of +the base, so negative curvature is bounded by $(0,1)$, zero curvature +is 1, and positive curvature is bounded by $(1,\infty)$. The curvature +can be transformed into the typical postive/negative mapping using +$\log$, which has the additional property of making the range of +positive and negative curvature equal, and distributed about 0. + +As in the case of unsaturation, void formation is increased by the +presence of lipids with mismatched curvature. Thus, a larger +distribution of curvature in the vesicle increases the rate of lipid +insertion into the vesicle. However, a species with curvature $e^-1$ +will cancel out a species with curvature $e$, so we have to log +transform (turning these into -1 and 1), then take the absolute value +(1 and 1), and finally measure the width of the distribution. Thus, by +using the log transform to make the range of the lipid curvature equal +between positive and negative, taking the absolute value to cancel out +exactly mismatched curvatures, we come to an equation with the shape +$x^{\mathrm{stdev}\left|\log cu_\mathrm{vesicle}\right|}$, and a +convenient base for $x$ is 10, yielding: + +{\color{red} Shouldn't a vesicle of -1,1,0 have the same activation + energy as a vesicle of 0,0,0? It doesn't currently.} + + \begin{equation} cu_f = 10^{\mathrm{stdev}\left|\log cu_\mathrm{vesicle}\right|} \label{eq:curvature_forward} \end{equation} + <>= curve(10^x,from=0,to=max(c(sd(abs(log(c(0.8,1.33)))), sd(abs(log(c(1,1.33)))), @@ -129,22 +255,52 @@ curve(10^x,from=0,to=max(c(sd(abs(log(c(0.8,1.33)))), xlab="Standard Deviation of Absolute value of the Log of the Curvature of Vesicle", ylab="Curvature Forward Adjustment") @ +<>= +curve(to.kcal(10^x),from=0,to=max(c(sd(abs(log(c(0.8,1.33)))), + sd(abs(log(c(1,1.33)))), + sd(abs(log(c(0.8,1)))))), + main="Curvature forward", + xlab="Standard Deviation of Absolute value of the Log of the Curvature of Vesicle", + ylab="Curvature Forward Adjustment (kcal/mol)") +@ + \newpage \subsubsection{Length Forward} + +As in the case of unsaturation, void formation is easier when vesicles +are made up of components of widely different lengths. Thus, when the +width of the distribution of lengths is larger, the forward rate +should be greater as well, leading us to an equation of the form +$x^{\mathrm{stdev} l_\mathrm{ves}}$, where $\mathrm{stdev} +l_\mathrm{ves}$ is the standard deviation of the length of the +components of the vesicle, which has a maximum possible value of 8 and +a minimum of 0 in this set of experiments. A convenient base for $x$ +is 2, leading to: + \begin{equation} - l_f = 3^{\mathrm{stdev} l_\mathrm{ves}} + l_f = 2^{\mathrm{stdev} l_\mathrm{ves}} \label{eq:length_forward} \end{equation} <>= -curve(3^x,from=0,to=sd(c(12,24)), +curve(2^x,from=0,to=sd(c(12,24)), main="Length forward", xlab="Standard Deviation of Length of Vesicle", ylab="Length Forward Adjustment") @ +<>= +curve(to.kcal(2^x),from=0,to=sd(c(12,24)), + main="Length forward", + xlab="Standard Deviation of Length of Vesicle", + ylab="Length Forward Adjustment (kcal/mol)") +@ + \subsubsection{Complex Formation} +There is no contribution of complex formation to the forward reaction +rate in the current formalism. + \begin{equation} CF1_f=1 \label{eq:complex_formation_forward} @@ -154,29 +310,42 @@ curve(3^x,from=0,to=sd(c(12,24)), \begin{equation} k_{bi\mathrm{adj}} = un_b \cdot ch_b \cdot cu_b \cdot l_b \cdot CF1_b - \label{eq:kf_adj} + \label{eq:kb_adj} \end{equation} \newpage \subsubsection{Unsaturation Backward} \begin{equation} - un_b = 10^{\left|3.5^{-\left}-3.5^{-\left}\right|} + un_b = 10^{\left|3.5^{-\left}-3.5^{-un_\mathrm{monomer}}\right|} \label{eq:unsaturation_backward} \end{equation} -<>= +<>= grid <- expand.grid(x=seq(0,4,length.out=20), y=seq(0,4,length.out=20)) grid$z <- 10^(abs(3.5^-grid$x-3.5^-grid$y)) print(wireframe(z~x*y,grid,cuts=50, drape=TRUE, scales=list(arrows=FALSE), - xlab="Average Vesicle Unsaturation", - ylab="Monomer Unsaturation", - zlab="Unsaturation Backward")) + xlab=list("Average Vesicle Unsaturation",rot=30), + ylab=list("Monomer Unsaturation",rot=-35), + zlab=list("Unsaturation Backward",rot=93))) +rm(grid) +@ +<>= +grid <- expand.grid(x=seq(0,4,length.out=20), + y=seq(0,4,length.out=20)) +grid$z <- to.kcal(10^(abs(3.5^-grid$x-3.5^-grid$y))) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + xlab=list("Average Vesicle Unsaturation",rot=30), + ylab=list("Monomer Unsaturation",rot=-35), + zlab=list("Unsaturation Backward (kcal/mol)",rot=93))) rm(grid) @ + \newpage \subsubsection{Charge Backwards} \begin{equation} @@ -184,7 +353,7 @@ rm(grid) \label{eq:charge_backwards} \end{equation} -<>= +<>= x <- seq(-1,0,length.out=20) y <- seq(-1,0,length.out=20) grid <- expand.grid(x=x,y=y) @@ -192,32 +361,58 @@ grid$z <- as.vector(20^(outer(x,y))) print(wireframe(z~x*y,grid,cuts=50, drape=TRUE, scales=list(arrows=FALSE), - xlab="Average Vesicle Charge", - ylab="Component Charge", - zlab="Charge Backwards")) + xlab=list("Average Vesicle Charge",rot=30), + ylab=list("Component Charge",rot=-35), + zlab=list("Charge Backwards",rot=93))) +rm(x,y,grid) +@ +<>= +x <- seq(-1,0,length.out=20) +y <- seq(-1,0,length.out=20) +grid <- expand.grid(x=x,y=y) +grid$z <- to.kcal(as.vector(20^(outer(x,y)))) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + xlab=list("Average Vesicle Charge",rot=30), + ylab=list("Component Charge",rot=-35), + zlab=list("Charge Backwards (kcal/mol)",rot=93))) rm(x,y,grid) @ \newpage \subsubsection{Curvature Backwards} \begin{equation} - cu_f = 7^{1-\left(20\left(\log cu_\mathrm{vesicle}-\log cu_\mathrm{monomer}\right)^2+1\right)^{-1}} + cu_f = 7^{1-\left(20\left(\log_{e} cu_\mathrm{vesicle}-\log_{e} cu_\mathrm{monomer}\right)^2+1\right)^{-1}} \label{eq:curvature_backwards} \end{equation} -<>= +<>= grid <- expand.grid(x=seq(0.8,1.33,length.out=20), y=seq(0.8,1.33,length.out=20)) grid$z <- 7^(1-1/(20*(log(grid$x)-log(grid$y))^2+1)) print(wireframe(z~x*y,grid,cuts=50, drape=TRUE, scales=list(arrows=FALSE), - xlab="Vesicle Curvature", - ylab="Monomer Curvature", - zlab="Curvature Backward")) + xlab=list("Vesicle Curvature",rot=30), + ylab=list("Monomer Curvature",rot=-35), + zlab=list("Curvature Backward",rot=93))) +rm(grid) +@ +<>= +grid <- expand.grid(x=seq(0.8,1.33,length.out=20), + y=seq(0.8,1.33,length.out=20)) +grid$z <- to.kcal(7^(1-1/(20*(log(grid$x)-log(grid$y))^2+1))) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + xlab=list("Vesicle Curvature",rot=30), + ylab=list("Monomer Curvature",rot=-35), + zlab=list("Curvature Backward (kcal/mol)",rot=93))) rm(grid) @ + \newpage \subsubsection{Length Backwards} \begin{equation} @@ -225,19 +420,32 @@ rm(grid) \label{eq:length_backward} \end{equation} -<>= +<>= grid <- expand.grid(x=seq(12,24,length.out=20), y=seq(12,24,length.out=20)) grid$z <- 3.2^(abs(grid$x-grid$y)) print(wireframe(z~x*y,grid,cuts=50, drape=TRUE, scales=list(arrows=FALSE), - xlab="Average Vesicle Length", - ylab="Monomer Length", - zlab="Length Backward")) + xlab=list("Average Vesicle Length",rot=30), + ylab=list("Monomer Length",rot=-35), + zlab=list("Length Backward",rot=93))) +rm(grid) +@ +<>= +grid <- expand.grid(x=seq(12,24,length.out=20), + y=seq(12,24,length.out=20)) +grid$z <- to.kcal(3.2^(abs(grid$x-grid$y))) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + xlab=list("Average Vesicle Length",rot=30), + ylab=list("Monomer Length",rot=-35), + zlab=list("Length Backward (kcal/mol)",rot=93))) rm(grid) @ + \newpage \subsubsection{Complex Formation Backward} \begin{equation} @@ -245,22 +453,35 @@ rm(grid) \label{eq:complex_formation_backward} \end{equation} -<>= +<>= grid <- expand.grid(x=seq(-1,3,length.out=20), y=seq(-1,3,length.out=20)) grid$z <- 3.2^(grid$x*grid$y-abs(grid$x*grid$y)) print(wireframe(z~x*y,grid,cuts=50, drape=TRUE, scales=list(arrows=FALSE), - xlab="Vesicle Complex Formation", - ylab="Monomer Complex Formation", - zlab="Complex Formation Backward")) + xlab=list("Vesicle Complex Formation",rot=30), + ylab=list("Monomer Complex Formation",rot=-35), + zlab=list("Complex Formation Backward",rot=93))) +rm(grid) +@ +<>= +grid <- expand.grid(x=seq(-1,3,length.out=20), + y=seq(-1,3,length.out=20)) +grid$z <- to.kcal(3.2^(grid$x*grid$y-abs(grid$x*grid$y))) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + xlab=list("Vesicle Complex Formation",rot=30), + ylab=list("Monomer Complex Formation",rot=-35), + zlab=list("Complex Formation Backward (kcal/mol)",rot=93))) rm(grid) @ + % \bibliographystyle{plainnat} % \bibliography{references.bib}