| fitVolDist {cellVolumeDist} | R Documentation |
Fit a model for cell volume distribution under least squares criteria.
Description
This function fits a model for cell volume distribution
under least squares criteria; free model parameters are the cell
growth rate r (\mu m^3/h), the variability in cell growth rate
sigma_r (\mu m^3/h) and a linear scaling factor A.
Usage
fitVolDist(vol, freq, r = 100, sigma_r = 44, t = 40,
sigma_t = 0.3 * t, maxiter = 100, nprint = 1,
alg="leastsq")
Arguments
vol |
a vector of numeric values representing volumes ( |
freq |
a vector of numeric values with the same length as
|
r |
a numeric value that represents the starting value for the
rate ( |
sigma_r |
a numeric value that represents the starting value for
the variability in the rate of cell growth parameter |
t |
a numeric value representing the average cell cycle time ( |
sigma_t |
a numeric value representing the variability in the
average cell cycle time |
maxiter |
numeric value representing the maximum number of iterations used by nls.lm in model fitting under least squares criteria |
nprint |
optimization output is printed every |
alg |
character string indicating the algorithm to use; the
choices are now "leastsq", so that that sum square error
|
Value
fitVolDist returns
an object of class "fitVolDist".
The generic accessor functions coefficients,
vcov, deviance, fitted and residuals extract
various useful features of the value returned by fitVolDist.
An object of class "fitVolDist" is a list containing the
following components:
t |
the value for |
sigma_t |
the value for |
fitted |
the model fit. |
fit.res |
the output object returned from nls.lm. |
summary.fit.res |
the summary of the output object returned from nls.lm. |
References
Halter M, Elliott JT, Hubbard JB, Tona A, Plant AL (2009), "Cell Volume Distributions Reveal Cell Growth Rates and Division Times", Journal of Theoretical Biology, Vol 257, pp 124 - 130, DOI: 10.1016/j.jtbi.2008.10.031.
See Also
Examples
## Not run:
#############################################################
# Fit volume distribution data for A10 vSMC cell cultures
# as described in the above referenced paper
#############################################################
## load the volume distributions in the "A10_vSMC_volume_data" dataset
data("A10_vSMC_volume_data")
labs <- c("a","b","c","d")
## the volume distributions representing 0 nM aphidicolin concentration
Aph0 <- list(Aph0_a, Aph0_b, Aph0_c, Aph0_d)
## the associated cell cycle times
tAph0 <- c(tAph0_a, tAph0_b, tAph0_c, tAph0_d)
## fit each dataset
Aph0res <- list()
Aph0tab <- matrix(ncol=2,nrow=4)
for(i in 1:length(Aph0)) {
Aph0res[[i]] <- fitVolDist(vol=volumes_A10_vSMC, freq=Aph0[[i]],
r=100,sigma_r=44, t=tAph0[i])
Aph0tab[i,] <- coef(Aph0res[[i]])
}
Aph0tab <- rbind(Aph0tab, colMeans(Aph0tab))
colnames(Aph0tab) <- c("r", "sigma_r")
rownames(Aph0tab) <- c(labs, "mean values")
## plot results
par(mfrow=c(3,2))
for(i in 1:length(Aph0)) {
pe <- signif(coef(Aph0res[[i]]),3)
plot(volumes_A10_vSMC, Aph0[[i]], type="l", main= substitute(paste(
"r: ", p1, ", ", sigma[r],": ",p2),
list(p1=pe[1], p2=pe[2])),
xlab = expression(paste("volume (",mu, m^3,")", sep="")),
sub=paste("vol. dist. Aphidicolin 0 nM", labs[i]), ylab="frequency")
lines(volumes_A10_vSMC, fitted(Aph0res[[i]]), col=2)
}
textplot("(Above) Volume distribution data
representing A10 vSMC cells
cultured with 0 nM aphidicolin
concentration (black)
and model fit (red).
(Right) Parameter estimates and
mean estimates over the four fits",fixed.width=FALSE)
textplot(signif(Aph0tab,3))
## the volume distributions representing 50 nM aphidicolin concentration
Aph50 <- list(Aph50_a, Aph50_b, Aph50_c, Aph50_d)
## the associated cell cycle times
tAph50 <- c(tAph50_a, tAph50_b, tAph50_c, tAph50_d)
## fit each dataset
Aph50res <- list()
Aph50tab <- matrix(ncol=2,nrow=4)
for(i in 1:length(Aph50)) {
Aph50res[[i]] <- fitVolDist(vol=volumes_A10_vSMC, freq=Aph50[[i]],
r=100,sigma_r=44, t=tAph50[i])
Aph50tab[i,] <- coef(Aph50res[[i]])
}
Aph50tab <- rbind(Aph50tab, colMeans(Aph50tab))
colnames(Aph50tab) <- c("r", "sigma_r")
rownames(Aph50tab) <- c(labs, "mean values")
## plot results
par(mfrow=c(3,2))
for(i in 1:length(Aph50)) {
pe <- signif(coef(Aph50res[[i]]),3)
plot(volumes_A10_vSMC, Aph50[[i]], type="l", main= substitute(paste(
"r: ", p1, ", ", sigma[r],": ",p2),
list(p1=pe[1], p2=pe[2])),
xlab = expression(paste("volume (", mu, m^3,")", sep="")),
sub=paste("vol. dist. Aphidicolin 50 nM", labs[i]), ylab="frequency")
lines(volumes_A10_vSMC, fitted(Aph50res[[i]]), col=2)
}
textplot("(Above) Volume distribution data
representing A10 vSMC cells
cultured with 50 nM aphidicolin
concentration (black)
and model fit (red).
(Right) Parameter estimates and
mean estimates over the four fits",fixed.width=FALSE)
textplot(signif(Aph50tab,3))
## the volume distributions representing 100 nM aphidicolin concentration
Aph100 <- list(Aph100_a, Aph100_b, Aph100_c, Aph100_d)
## the associated cell cycle times
tAph100 <- c(tAph100_a, tAph100_b, tAph100_c, tAph100_d)
## fit each dataset
Aph100res <- list()
Aph100tab <- matrix(ncol=2,nrow=4)
for(i in 1:length(Aph100)) {
Aph100res[[i]] <- fitVolDist(vol=volumes_A10_vSMC, freq=Aph100[[i]],
r=100,sigma_r=44, t=tAph100[i])
Aph100tab[i,] <- coef(Aph100res[[i]])
}
Aph100tab <- rbind(Aph100tab, colMeans(Aph100tab))
colnames(Aph100tab) <- c("r", "sigma_r")
rownames(Aph100tab) <- c(labs, "mean values")
## plot results
par(mfrow=c(3,2))
for(i in 1:length(Aph100)) {
pe <- signif(coef(Aph100res[[i]]),3)
plot(volumes_A10_vSMC, Aph100[[i]], type="l", main= substitute(paste(
"r: ", p1, ", ", sigma[r],": ",p2),
list(p1=pe[1], p2=pe[2])),
xlab = expression(paste("volume (",mu, m^3,")", sep="")),
sub=paste("vol. dist. Aphidicolin 100 nM", labs[i]), ylab="frequency")
lines(volumes_A10_vSMC, fitted(Aph100res[[i]]), col=2)
}
textplot("(Above) Volume distribution data
representing A10 vSMC cells
cultured with 100 nM aphidicolin
concentration (black)
and model fit (red).
(Right) Parameter estimates and
mean estimates over the four fits",fixed.width=FALSE)
textplot(signif(Aph100tab,3))
## End(Not run)
#############################################################
# Fit volume distribution data for NIH3T3 cell cultures
# as described in the above referenced paper
#############################################################
## load the volume distributions in the "NIH3T3_volume_data" dataset
data("NIH3T3_volume_data")
labs <- c("a","b","c","d")
## the volume distributions representing NIH3T3 cells
NIH3T3 <- list(NIH3T3_a, NIH3T3_b, NIH3T3_c, NIH3T3_d)
## the associated cell cycle times
tNIH3T3 <- c(tNIH3T3_a, tNIH3T3_b, tNIH3T3_c, tNIH3T3_d)
## fit each dataset
NIH3T3res <- list()
NIH3T3tab <- matrix(ncol=2,nrow=4)
for(i in 1:length(NIH3T3)) {
NIH3T3res[[i]] <- fitVolDist(vol=volumes_nih3t3, freq=NIH3T3[[i]],
r=100,sigma_r=44, t=tNIH3T3[i])
NIH3T3tab[i,] <- coef(NIH3T3res[[i]])
}
NIH3T3tab <- rbind(NIH3T3tab, colMeans(NIH3T3tab))
colnames(NIH3T3tab) <- c("r", "sigma_r")
rownames(NIH3T3tab) <- c(labs, "mean values")
## plot results
par(mfrow=c(3,2))
for(i in 1:length(NIH3T3)) {
pe <- signif(coef(NIH3T3res[[i]]),3)
plot(volumes_nih3t3, NIH3T3[[i]], type="l", main= substitute(paste(
"r: ", p1, ", ", sigma[r],": ",p2),
list(p1=pe[1], p2=pe[2])),
xlab = expression(paste("volume (",mu, m^3,")", sep="")),
sub=paste("vol. dist. NIH3T3", labs[i]), ylab="frequency")
lines(volumes_nih3t3, fitted(NIH3T3res[[i]]), col=2)
}
textplot("(Above) Volume distribution data
representing NIH3T3 cells
cultured under normal
conditions (black)
and model fit (red).
(Right) Parameter estimates and
mean estimates over the four fits",fixed.width=FALSE)
textplot(signif(NIH3T3tab,3))