X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=kinetic_formalism.Rnw;h=cedf6cfdd8f55a3a42eafba12c228523b85e663e;hb=f4594af429fb595ae55911dec355bc661ef2e103;hp=5c6dd27719569226daa3885f5d795cc0761ff960;hpb=fc2911abf065d3aae71f7f447563af184298956b;p=ool%2Flipid_simulation_formalism.git diff --git a/kinetic_formalism.Rnw b/kinetic_formalism.Rnw index 5c6dd27..cedf6cf 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,70 +125,209 @@ 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 +$a^{\mathrm{stdev}\left(un_\mathrm{ves}\right)}$ where $a > 1$, so a +convenient starting base for $a$ is $2$: + \begin{equation} un_f = 2^{\mathrm{stdev}\left(un_\mathrm{ves}\right)} \label{eq:unsaturation_forward} \end{equation} +The most common $\mathrm{stdev}\left(un_\mathrm{ves}\right)$ is around +$1.5$, which leads to a $\Delta \Delta G^\ddagger$ of +$\Sexpr{format(digits=3,to.kcal(2^1.5))} +\frac{\mathrm{kcal}}{\mathrm{mol}}$. + +\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, $a^{-\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 $a$ is +60, resulting in the following equation: + + \begin{equation} ch_f = 60^{-\left<{ch}_v\right> {ch}_m} \label{eq:charge_forward} \end{equation} -<>= +The most common $\left<{ch}_v\right>$ is around $-0.165$, which leads to +a range of $\Delta \Delta G^\ddagger$ from +$\Sexpr{format(digits=3,to.kcal(60^(-.165*-1)))} +\frac{\mathrm{kcal}}{\mathrm{mol}}$ to $0\frac{\mathrm{kcal}}{\mathrm{mol}}$. + +<>= 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, and taking the average to cancel out +exactly mismatched curvatures, we come to an equation with the shape +$a^{\left<\log cu_\mathrm{vesicle}\right>}$. A convenient base for $a$ +is $10$, yielding: + + \begin{equation} - cu_f = 10^{\mathrm{stdev}\left|\log cu_\mathrm{vesicle}\right|} + % cu_f = 10^{\mathrm{stdev}\left|\log cu_\mathrm{vesicle}\right|} + cu_f = 10^{\left|\left<\log cu_\mathrm{vesicle} \right>\right|\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)))), - 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") +The most common $\left|\left<\log {cu}_v\right>\right|$ is around $0.013$, which +with the most common $\mathrm{stdev} \log cu_\mathrm{vesicle}$ of +$0.213$ leads to a $\Delta \Delta G^\ddagger$ of +$\Sexpr{format(digits=3,to.kcal(10^(0.13*0.213)))} +\frac{\mathrm{kcal}}{\mathrm{mol}}$ + +% 1.5 to 0.75 3 to 0.33 +<>= +grid <- expand.grid(x=seq(0,max(c(sd(abs(log(c(1,3)))), + sd(abs(log(c(1,0.33)))),sd(abs(log(c(0.33,3)))))),length.out=20), + y=seq(0,max(c(mean(log(c(1,3)), + mean(log(c(1,0.33))), + mean(log(c(0.33,3)))))),length.out=20)) +grid$z <- 10^(grid$x*grid$y) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + xlab=list("Vesicle stdev log curvature",rot=30), + ylab=list("Vesicle average log curvature",rot=-35), + zlab=list("Vesicle Curvature Forward",rot=93))) +rm(grid) +@ +<>= +grid <- expand.grid(x=seq(0,max(c(sd(abs(log(c(1,3)))), + sd(abs(log(c(1,0.33)))),sd(abs(log(c(0.33,3)))))),length.out=20), + y=seq(0,max(c(mean(log(c(1,3)), + mean(log(c(1,0.33))), + mean(log(c(0.33,3)))))),length.out=20)) +grid$z <- to.kcal(10^(grid$x*grid$y)) +print(wireframe(z~x*y,grid,cuts=50, + drape=TRUE, + scales=list(arrows=FALSE), + xlab=list("Vesicle stdev log curvature",rot=30), + ylab=list("Vesicle average log curvature",rot=-35), + zlab=list("Vesicle Curvature Forward (kcal/mol)",rot=93))) +rm(grid) @ \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} @@ -152,39 +335,82 @@ curve(3^x,from=0,to=sd(c(12,24)), \subsection{Backward adjustments ($k_{bi\mathrm{adj}}$)} +Just as the forward rate constant adjustment $k_{fi\mathrm{adj}}$ +does, the backwards rate constant adjustment $k_{bi\mathrm{adj}}$ +takes into account unsaturation ($un_b$), charge ($ch_b$), curvature +($cu_b$), length ($l_b$), and complex formation ($CF1_b$), each of +which are modified depending on the specific specie and the vesicle +into which the specie is entering: + + \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} + +Unsaturation also influences the ability of a lipid molecule to leave +a membrane. If a molecule has an unsaturation level which is different +from the surrounding membrane, it will be more likely to leave the +membrane. The more different the unsaturation level is, the greater +the propensity for the lipid molecule to leave. However, a vesicle +with some unsaturation is more favorable for lipids with more +unsaturation than the equivalent amount of less unsatuturation, so the +difference in energy between unsaturation is not linear. Therefore, an +equation with the shape +$x^{\left|y^{-\left}-y^{-un_\mathrm{monomer}}\right|}$ +where $\left$ is the average unsaturation of +the vesicle, and $un_\mathrm{monomer}$ is the average unsaturation. In +this equation, as the average unsaturation of the vesicle is larger, + +\textcolor{red}{I don't like this equation; the explanation above + seems really contrived. Need to discuss.} + \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} +As in the case of monomers entering a vesicle, monomers leaving a +vesicle leave faster if their charge has the same sign as the average +charge vesicle. An equation of the form $ch_b = x^{\left + ch_m}$ is then appropriate, and using a base of 20 for $x$ yields: + \begin{equation} ch_b = 20^{\left<{ch}_v\right> {ch}_m} \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,75 +418,155 @@ 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} + +The less a monomer's intrinsic curvature matches the average curvature +of the vesicle in which it is in, the greater its rate of efflux. If +the difference is 0, $cu_f$ needs to be one. To map negative and +positive curvature to the same range, we also need take the logarithm. +Increasing mismatches in curvature increase the rate of efflux, but +asymptotically. \textcolor{red}{It is this property which the + unsaturation backwards equation does \emph{not} satisfy, which I + think it should.} An equation which satisfies this critera has the +form $cu_f = a^{1-\left(b\left(\left<\log cu_\mathrm{vesicle} \right> + -\log cu_\mathrm{monomer}\right)^2+1\right)^{-1}}$. An +alternative form would use the aboslute value of the difference, +however, this yields a cusp and sharp increase about the curvature +equilibrium, which is decidedly non-elegant. We have chosen bases of +$a=7$ and $b=20$. + \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(\left<\log cu_\mathrm{vesicle} \right> -\log 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} + +In a model membrane, the dissociation constant decreases by a factor +of approximately 3.2 per carbon increase in acyl chain length (Nichols +1985). Unfortunatly, the known experimental data only measures chain +length less than or equal to the bulk lipid, and does not exceed it, +and is only known for one bulk lipid species (DOPC). + + +The dissociation constant decreases by approximately 3.2 per carbon +increase in acyl chain length (Nichols 1985). We assume that this +decrease is in relationship to the average vesicle length. + \begin{equation} - l_b = 3.2^{\left|l_\mathrm{ves}-l_\mathrm{monomer}\right|} + l_b = 3.2^{\left|\left-l_\mathrm{monomer}\right|} \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} - CF1_b=1.5^{CF1_\mathrm{ves} CF1_\mathrm{monomer}-\left|CF1_\mathrm{ves} CF1_\mathrm{monomer}\right|} + CF1_b=1.5^{\left CF1_\mathrm{monomer}-\left|\left CF1_\mathrm{monomer}\right|} \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}