Package 'CFAcoop'

Title: Colony Formation Assay: Taking into Account Cellular Cooperation
Description: Cellular cooperation compromises the plating efficiency-based analysis of clonogenic survival data. This tool provides functions that enable a robust analysis of colony formation assay (CFA) data in presence or absence of cellular cooperation. The implemented method has been described in Brix et al. (2020). (Brix, N., Samaga, D., Hennel, R. et al. "The clonogenic assay: robustness of plating efficiency-based analysis is strongly compromised by cellular cooperation." Radiat Oncol 15, 248 (2020). <doi:10.1186/s13014-020-01697-y>) Power regression for parameter estimation, calculation of survival fractions, uncertainty analysis and plotting functions are provided.
Authors: Daniel Samaga [cre, aut], Nikko Brix [aut], Kirsten Lauber [aut], Horst Zitzelsberger [aut]
Maintainer: Daniel Samaga <[email protected]>
License: GPL-3
Version: 1.0.0
Built: 2024-11-09 03:52:58 UTC
Source: https://github.com/zytohmgu/cfacoop

Help Index


analyze_survival

Description

wrapper function for robust analysis of clonogenic survival data from the colony formation assay according to Brix et al. (2020), Radiation Oncology. Mean values are calculated and used for power regression. Resulting coefficients are used for calculation of survival fractions and corresponding uncertainty analysis.

Usage

analyze_survival(RD, name = "no name", xtreat = NULL, C = 20)

Arguments

RD

data.frame or matrix containing a table of experiment data

name

optional: experiment name (e.g. name of cell line)

xtreat

optional: treatment dose of the colonies counted in the corresponding columns of RD

C

number of colonies counted for which the survival fraction is to be calculated (default = 20))

Value

list object containing several experiments and treatments organized for convenient plotting with plot_sf

Examples

seeded <- rep(10^(seq(1,5,0.5)),each = 3)
df.1 <- data.frame(
  "seeded" = seeded,
  "counted1" = 0.4 * seeded^1.1 * rnorm(n = length(seeded),1,0.05),
  "counted2" = 0.2 * seeded^1.125 * rnorm(n = length(seeded),1,0.05),
  "counted3" = 0.05 * seeded^1.25 * rnorm(n = length(seeded),1,0.05))
df.2 <- data.frame("seeded" = seeded,
  "counted1" = 0.5 * seeded^1.01 * rnorm(n = length(seeded),1,0.05),
  "counted2" = 0.4 * seeded^1.0125 * rnorm(n = length(seeded),1,0.05),
  "counted3" = 0.2 * seeded^1.025 * rnorm(n = length(seeded),1,0.05))
SF <- vector("list",2)
SF[[1]] <- analyze_survival(RD = df.1,
                            name = "cell line a",
                            xtreat = c(0,1,4),
                            C = 20)
SF[[2]] <- analyze_survival(RD = df.2,
                            name = "cell line b",
                            xtreat = c(0,1,4))

calculate_sf

Description

calculates the survival fraction according to the procedure presented in Brix et al. (2020), which is robust against cellular cooperation.

Usage

calculate_sf(par_ref, par_treat, C = 20)

Arguments

par_ref

summary.lm object or 2-column matrix for the treatment-free reference survival

par_treat

summary.lm object or 2-column matrix for the clonogenic survival after treatment

C

colony number for which the survival fraction is calculated (default = 20)

Value

survival fractions. If par_ref and par_treat are summary.lm objects, a scalar is returned. If par_ref and par_treat are matrices, a vector of the same length as nrow(par_treat) is returned

Examples

seeded <- 10^(seq(1, 5, 0.5))
counted.ref <- 0.4 * 10^(seq(1, 5, 0.5) + rnorm(n = 9, 0, 0.1))^1.1
counted.treat <- 0.01 * 10^(seq(1, 5, 0.5) + rnorm(n = 9, 0, 0.1))^1.2
fit_ref <- pwr_reg(seeded = seeded, counted = counted.ref)
fit_treat <- pwr_reg(seeded = seeded, counted = counted.treat)
calculate_sf(par_ref = fit_ref, par_treat = fit_treat)
data("CFAdata")
D <- subset.data.frame(
  x = CFAdata,
  subset = cell.line == levels(CFAdata$cell.line)[1]
)
fit_ref <- pwr_reg(seeded = D$`Cells seeded`, counted = D$`0 Gy`)
fit_treat <- pwr_reg(seeded = D$`Cells seeded`, counted = D$`4 Gy`)
calculate_sf(par_ref = fit_ref, par_treat = fit_treat)

Colony Formation Assay data on cellular cooperation

Description

Clonogenic survival data from seven cell lines T47D, MDA-MB231, A549, HCC1806, SKBR3, SKLU1 and BT20 as presented in Figure 2 in Brix et al. (2020).

Usage

data(CFAdata)

Format

data.frame

References

Brix, N., Samaga, D., Hennel, R. et al. "The clonogenic assay: robustness of plating efficiency-based analysis is strongly compromised by cellular cooperation." Radiat Oncol 15, 248 (2020). <doi:10.1186/s13014-020-01697-y>

Examples

data(CFAdata)
head(CFAdata)
cll <- levels(CFAdata$cell.line)

export_sf

Description

export table with results of clonogenic survival analysis from the colony formation assay considering cellular cooperation

Usage

export_sf(SF)

Arguments

SF

list build of objects returned by analyze_survival

Value

data.frame containing all estimated coefficients and effects from all experiments contained in SF

Examples

seeded <- rep(10^(seq(1, 5, 0.5)), each = 3)
df.1 <- data.frame(
  "seeded" = seeded,
  "counted1" = 0.4 * seeded^1.1 * rnorm(n = length(seeded), 1, 0.05),
  "counted2" = 0.2 * seeded^1.125 * rnorm(n = length(seeded), 1, 0.05),
  "counted3" = 0.05 * seeded^1.25 * rnorm(n = length(seeded), 1, 0.05)
)
df.2 <- data.frame(
  "seeded" = seeded,
  "counted1" = 0.5 * seeded^1.01 * rnorm(n = length(seeded), 1, 0.05),
  "counted2" = 0.4 * seeded^1.0125 * rnorm(n = length(seeded), 1, 0.05),
  "counted3" = 0.2 * seeded^1.025 * rnorm(n = length(seeded), 1, 0.05)
)
SF <- vector("list", 2)
SF[[1]] <- analyze_survival(
  RD = df.1, name = "cell line a",
  xtreat = c(0, 1, 4)
)
SF[[2]] <- analyze_survival(
  RD = df.2, name = "cell line b",
  xtreat = c(0, 1, 4)
)
export_sf(SF)

data("CFAdata")
SF <- vector("list", 4)
ll <- levels(CFAdata$cell.line)[c(1, 3, 5, 7)]
for (i in seq_along(ll)) {
  cdat <- subset.data.frame(
    x = CFAdata,
    subset = CFAdata$cell.line == ll[i]
  )
  SF[[i]] <- analyze_survival(
    RD = cdat[, -1],
    name = ll[i],
    xtreat = c(0, 1, 2, 4, 6, 8)
  )
}
export_sf(SF)

plot_sf

Description

plot cellular cooperativity and clonogenic survival for colony formation assay data

Usage

plot_sf(SF, showUncertainty = TRUE)

Arguments

SF

list build of objects returned by analyze_survival

showUncertainty

logical, switches on/off uncertainty bands for sf-values.

Value

none

Examples

seeded <- rep(10^(seq(1, 5, 0.5)), each = 3)
df.1 <- data.frame(
  "seeded" = seeded,
  "counted1" = 0.4 * seeded^1.1 * rnorm(n = length(seeded), 1, 0.05),
  "counted2" = 0.2 * seeded^1.125 * rnorm(n = length(seeded), 1, 0.05),
  "counted3" = 0.05 * seeded^1.25 * rnorm(n = length(seeded), 1, 0.05)
)
df.2 <- data.frame(
  "seeded" = seeded,
  "counted1" = 0.5 * seeded^1.01 * rnorm(n = length(seeded), 1, 0.05),
  "counted2" = 0.4 * seeded^1.0125 * rnorm(n = length(seeded), 1, 0.05),
  "counted3" = 0.2 * seeded^1.025 * rnorm(n = length(seeded), 1, 0.05)
)
SF <- vector("list", 2)
SF[[1]] <- analyze_survival(
  RD = df.1, name = "cell line a",
  xtreat = c(0, 1, 4)
)
SF[[2]] <- analyze_survival(
  RD = df.2, name = "cell line b",
  xtreat = c(0, 1, 4)
)
plot_sf(SF)

data("CFAdata")
SF <- vector("list", 4)
ll <- levels(CFAdata$cell.line)[c(1, 3, 5, 7)]
for (i in seq_along(ll)) {
  cdat <- subset.data.frame(
    x = CFAdata,
    subset = CFAdata$cell.line == ll[i]
  )
  SF[[i]] <- analyze_survival(
    RD = cdat[, -1],
    name = ll[i],
    xtreat = c(0, 1, 2, 4, 6, 8)
  )
}
plot_sf(SF)

pwr_reg

Description

pwr_reg performs a power regression (log(C) = log(a) + b * log(S) + e)) for clonogenic assay data of experiments examining the cellular cooperation.

Usage

pwr_reg(seeded, counted)

Arguments

seeded

numeric vector with number of cells seeded (S)

counted

numeric vector with number of colonies counted (C, same length as seeded)

Value

summary.lm object as returned by summary

Examples

pwr_reg(
  seeded = 10^(seq(1, 5, 0.5)),
  counted = 0.4 * (10^seq(1, 5, 0.5))^1.25 * rnorm(n = 9, 1, 0.05)
)
data(CFAdata)
D <- subset.data.frame(
  x = CFAdata,
  subset = cell.line == levels(CFAdata$cell.line)[1]
)
pwr_reg(seeded = D$`Cells seeded`, counted = D$`0 Gy`)