Description Details Author(s) References See Also Examples
This package estimate the proliferation of a cell population in cell-tracking dye studies.
In cells proliferation tracking experiments, cells are stained with a tracking dye before culture. During cell division, the tracking dye is partitioned between daughter cells, so that each division brings about a halving of fluorescence intensity; the intensity of a cell, by comparison with the intensity of resting cells, provides an indication of how many divisions the cell has undergone since stimulation
This package uses an R implementation of the Levenberg-Marquardt algorithm (nls.lm
) to fit a set of peaks (corresponding to different generations of cells) over the proliferation-tracking dye distribution in a FACS experiment.
The package define two data structure (S4 classes): proliferationFittingData
, parentFittingData
and their methods and accessors.
The package is integrated with other www.bioconductor.org libraries for analysis of flow cytometry data: flowCore
and flowViz
.
Package: | flowFit |
Type: | Package |
Version: | 0.2 |
Date: | 2012-11-29 |
License: | Artistic-2.0 |
Maintainer: Davide Rambaldi <davide.rambaldi@gmail.com> Author: Davide Rambaldi
Timur V. Elzhov, Katharine M. Mullen and Ben Bolker (2012). minpack.lm: R interface to the Levenberg-Marquardt nonlinear least-squares algorithm found in MINPACK.
Tracking antigen-driven responses by flow cytometry: Monitoring proliferation by dye dilution. Paul K Wallace, Joseph D Tario, Jan L Fisher, Stephen S Wallace, Marc S Ernstoff, Katharine A Muirhead. Cytometry (2008) vol. 73A (11) pp. 1019-1034
MEASURING MOLECULES OF EQUIVALENT FLUOROCHROME (MEF) USING SPHEROTM RAINBOW AND ULTRA RAINBOW CALIBRATION PARTICLES, Spherotech, http://www.spherotech.com/tech_SpheroTech_Note_9.html
Benjamin J.C. Quah, Christopher R. Parish, New and improved methods for measuring lymphocyte proliferation in vitro and in vivo using CFSE-like fluorescent dyes, Journal of Immunological Methods, Volume 379, Issues 1-2, 31 May 2012, Pages 1-14, ISSN 0022-1759, 10.1016/j.jim.2012.02.012.
proliferationFitting
generations fitting function.
parentFitting
parent population fitting function.
proliferationIndex
proliferation index calculator.
getGenerations
get percentage of cells for generation.
logTicks
draw a log scale on your FACS plots.
generationsDistance
calculate the distance between 2 generations of cells on the FACS scale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | if(require(flowFitExampleData)){
data(QuahAndParish)
parent.fitting.cfse <- parentFitting(QuahAndParish[[1]], "<FITC-A>")
fitting.cfse <- proliferationFitting(QuahAndParish[[2]], "<FITC-A>",
parent.fitting.cfse@parentPeakPosition,
parent.fitting.cfse@parentPeakSize)
summary(fitting.cfse)
confint(fitting.cfse)
coef(fitting.cfse)
Data(fitting.cfse)
plot(parent.fitting.cfse)
plot(fitting.cfse)
# for this sample we use a Fixed Model: we keep fixed in the model the Parent Peak Position
parent.fitting.cpd <- parentFitting(QuahAndParish[[1]], "<APC-A>")
fitting.cpd <- proliferationFitting(QuahAndParish[[3]], "<APC-A>",
parent.fitting.cpd@parentPeakPosition,
parent.fitting.cpd@parentPeakSize,
fixedModel=TRUE,
fixedPars=list(M=parent.fitting.cpd@parentPeakPosition))
parent.fitting.ctv <- parentFitting(QuahAndParish[[1]], "<Alexa Fluor 405-A>")
fitting.ctv <- proliferationFitting(QuahAndParish[[4]], "<Alexa Fluor 405-A>",
parent.fitting.ctv@parentPeakPosition,
parent.fitting.ctv@parentPeakSize)
# let's compare the generations across the 3 samples:
par(mfrow=c(3,4))
plot(parent.fitting.cfse, main="CFSE Non Stimulated")
plot(fitting.cfse, which=3, main="CFSE")
plot(fitting.cfse, which=4, main="CFSE")
plot(fitting.cfse, which=5, main="CFSE")
plot(parent.fitting.cpd, main="CPD Non Stimulated")
plot(fitting.cpd, which=3, main="CPD")
plot(fitting.cpd, which=4, main="CPD")
plot(fitting.cpd, which=5, main="CPD")
plot(parent.fitting.ctv, main="CTV Non Stimulated")
plot(fitting.ctv, which=3, main="CTV")
plot(fitting.ctv, which=4, main="CTV")
plot(fitting.ctv, which=5, main="CTV")
# ESTIMATE GOODNESS of FITTING with KS TEST
perc.cfse <- fitting.cfse@generations
perc.cpd <- fitting.cpd@generations
perc.ctv <- fitting.ctv@generations
perc.cfse <- c(perc.cfse, rep(0,6))
# EXPLORATIVE PLOT
par(mfrow=c(1,1), ask=FALSE)
plot(perc.cfse, type="b", axes=FALSE, ylim=c(0,50),
xlab="generations", ylab="Percentage of cells", main="")
lines(perc.cpd, type="b", col="red")
lines(perc.ctv, type="b", col="blue")
legend("topleft", c("CFSE","CPD","CTV"), pch=1,
col=c("black","red","blue"), bg = 'gray90',text.col = "green4")
axis(2, at=seq(0,50,10), labels=paste(seq(0,50,10),"%"))
axis(1, at=1:16,labels=1:16)
# Pearson's Chi-squared Test for Count Data
M <- rbind(perc.cfse, perc.cpd, perc.ctv)
colnames(M) <- 1:16
(Xsq <- chisq.test(M, B=100000, simulate.p.value=TRUE))
text(8,40,paste("Chi-squared Test p=", round(Xsq$p.value, digits=4), sep=""))
# PKH26
# load data
data(PKH26data)
parent.fitting <- parentFitting(PKH26data[[1]], "FL2-Height LOG")
my.fit <- proliferationFitting(PKH26data[[2]], "FL2-Height LOG",
parent.fitting@parentPeakPosition,
parent.fitting@parentPeakSize)
my.fit
summary(my.fit)
confint(my.fit)
coef(my.fit)
Data(my.fit)
# plot results
plot(my.fit)
# modeling with locked Peak Size
my.fitb <- proliferationFitting(PKH26data[[2]], "FL2-Height LOG",
parent.fitting@parentPeakPosition,
parent.fitting@parentPeakSize,
fixedModel=TRUE,
fixedPars=list(S=16))
plot(my.fitb)
# modeling with locked Peak Size and Position
my.fitc <- proliferationFitting(PKH26data[[2]],
"FL2-Height LOG",
parent.fitting@parentPeakPosition,
parent.fitting@parentPeakSize,
fixedModel=TRUE,
fixedPars=list(S=16, M=810))
plot(my.fitc)
# modeling with locked Peak Size, Position and Distance
my.fitd <- proliferationFitting(PKH26data[[2]], "FL2-Height LOG",
parent.fitting@parentPeakPosition,
parent.fitting@parentPeakSize,
fixedModel=TRUE,
fixedPars=list(S=16, M=810, D=76))
plot(my.fitd)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.