“GR metrics”[1][2] were recently developed to address the problem that traditional drug sensitivity/resistance metrics (such as IC50 and Emax) can be confounded with the number of cell divisions taking place during the response assay. GR metrics use an improved methodology that measures the effect of a perturbation on the growth rate of a cell population rather than on the percent viability. This method creates a transformed “dose-response” curve with new summary metrics (GR50, GRmax, etc.). These new curves and metrics can be used to measure growth rate effects due to drug treatment as well as other perturbations, for example genetic manipulation or changes in seeding density of cells.

The GR calculator[3] allows a user to calculate “GR curves” and summary metrics (GR50, GRmax, etc.) from his or her own data. Percent viability curves and traditional metrics (IC50, Emax, etc.) are calculated as well, allowing for comparison between the two. Click the start button to begin.
Example input file (Live cell counts)
Example input file (Live and dead cell counts for new “static” and “toxic” GR curves)

For offline computation, analysis, and visualization, see the Bioconductor R package GRmetrics.

Instructions

Formatting input files

Case A (Recommended) - multiple cell counts per row

File types (.csv or .tsv)

Input files may be either comma- or tab-separated text files (.csv or .tsv).

Necessary columns

The first line in the input file needs to contain column names that exactly match those in our example files.

Metadata columns: 1) cell_line   2) treatment   3) concentration

The columns "cell_line", "treatment", and "concentration" are always required, but you may also have other metadata columns. For example, this dataset from Heiser et al.[3] contains column for clinical subtype (HR+, Her2amp, etc.) and molecular subtypes (Luminal, Basal, etc.).

Cell count columns: 1) cell_count   2) cell_count__ctrl   3) cell_count__time0

In the simplest case, the GR metrics method requires only live cell counts, or some surrogate of cell count such as cell-titer glo. We require end-of-assay counts for cells at each treated concentration ("cell_count") as well as end-of-assay counts of corresponding un-treated cells ("cell_count__ctrl") and beginning-of-assay counts ("cell_count__time0"). The control and beginning-of-assay counts may be repeated as necessary.

Note that "cell_count__ctrl" and "cell_count__time0" have one underscore between "cell" and "count", and two underscores after "count".

You may find an example dataset here.

Case B (Alternative format, experimental) - one cell-count per line

The formatting above is recommended, but if you prefer, you may format your input data with only one column per line for cell counts (Case B). In this case, only the "cell_count" column should be included (no "cell_count__ctrl" or "cell_count__time0" columns). Un-treated measurements should be indicated by a dash "-" in the "treatment" column and a "0" in the "concentration" column. A "treatment_duration__hrs" column must be included (two underscores after "duration"), with "0" indicating measurements at the beginning of the assay and a number of hours (e.g. "72" for a 3-day assay) for measurements at the end of the assay.

You may find example datasets with this formatting for the case where one has initial cell counts or where one instead has estimates of cell division time.

Using un-treated cell division time instead of initial cell count

The purpose of measuring cell count at the beginning of the assay is to allow for estimation of growth-rates of treated and un-treated cells. In place of this measurement you may separately measure the growth-rate of each (un-treated) cell line.

In this case, you may swap the "cell_count__time0" column with two columns: "treatment_duration__hrs" – the length of the assay (in hours), and "division_time" - the number of hours it takes cells from each (untreated) cell line to double in population.

Note that "cell_count__ctrl" and "cell_count__time0" have one underscore between "cell" and "count", and two underscores after "count".

You may find an example dataset here.

GR method

Definitions:

  • x(c,t) = the amount of viable cells at time t at drug concentration c   (column: cell_count)
  • x0 = x(0,0) = starting amount of viable cells   (column: cell_count__time0)
  • xctrl = x(0,t) = amount of un-treated viable cells at time t   (column: cell_count__ctrl)
  • k(0) = the average growth-rate of un-treated cells throughout the experiment
  • k(c) = the average growth-rate of treated cells throughout the experiment
  • GR(c) = 2^[ k(c)/k(0) ] - 1 = the growth-rate inhibition value (GR value) of a given treatment at concentration c

For a full overview of the original GR method, see our tutorial section or the original manuscript. Briefly, the growth-rate inhibition is given by the ratio of the growth-rate of the treated cells k(c) to that of the untreated cells k(0). We normalize this ratio by exponentiating it and subtracting one so that it falls between -1 and 1 for growth-inhibiting and cytotoxic treatments.

Because it is difficult to measure the growth-rate at any one time, we use the starting population and endpoint measures to estimate the average growth-rate throughout the experiment. Using the definitions above, we can calculate the growth-rate of the un-treated control as

k(0) = (1/t)log2(xctrl/x0)

and the growth-rate of the treated cells as

k(c) = (1/t)log2(x(c)/x0)

giving the formula for the GR value

GR(c) = 2^[ k(c)/k(0) ] - 1 = 2^[ log2(x(c)/x0) / log2(xctrl/x0) ] - 1

The GR value relates naturally to a treatment's effects on cell population growth. For partially cytostatic treatments (where growth is slowed, but not completely halted) GR values fall between 1 and 0. A GR value of zero represents cytostasis, or completely halted population growth. Cytotoxic treatments (where cell population declines) produce GR values between 0 and -1. Finally, a GR value of greater than one signifies a treatment that promotes growth.

GR values are used to fit a logistic dose-response curve where the x-axis is the log treatment concentration. We constrain the upper asymptote of the curve to a value of 1 because we would expect no change in growth rate for extremely low concentrations. GR values greater than one are allowed, but we constrain the fitted curve to less than one since we focus on growth-inhibiting and cytotoxic treatments. For treatments that promote growth, and for treatments that poorly fit a logistic curve, we fit a flat horizontal line.

Just like percent viability curves, GR curves can be summarized by a number of metrics. In place of IC50, the measure of concentration that gives 50% relative viability, we report GR50, the concentration at which growth is reduced by 50% (where the GR curve intersects 0.5). In place of Einf, the lower asymptote of the relative viability curve (the maximal theoretical drug effect), we report GRinf, the lower asymptote of the GR curve. And so on.

Traditional summary statistics of the relative viability curve include

IC50, Einf, Emax,EC50, h (the Hill coefficient), and AUC (area under the curve).

We report analagous statistics for each GR curve

GR50, GRinf, GRmax, GEC50, hGR, and GRAOC (area over the GR curve).

You may find more information about each of these metrics in the tutorial section.

Static/Toxic GR
New

The original GR method detailed in Hafner et al. (2016) only takes into account living cells. However, when toxicity and cell death occurs, it may be informative to model this as well. To take this into account, we have extended our method for situations in which one has estimates of the number of dead cells as well as living cells. We separate the "GR" into two components: a static component GRstatic, which measures the how much viable cell growth rate is slowed compared to control, and a toxic component GRtoxic, which measures how much cell death rate is increased compared to control.

Definitions:

  • x(c,t) = the amount of viable cells at time t at drug concentration c   (column: cell_count)
  • d(c,t) = the amount of dead cells at time t at drug concentration c   (column: dead_cell_count)
  • x0 = x(0,0) = starting amount of viable cells   (column: cell_count__time0)
  • d0 = d(0,0) = starting amount of dead cells   (column: dead_cell_count__time0)
  • xctrl = x(0,t) = amount of un-treated viable cells at time t   (column: cell_count__ctrl)
  • dctrl = d(0,t) amount of dead un-treated cells at time t   (column: dead_cell_count__ctrl)
  • ks(c,t) = the "cytostatic" growth-rate of the cell population, i.e. the rate of change of viable cells, for treatment concentration c at time t
  • kd(c,t) = the "cytotoxic" growth-rate of the cell population, i.e. the rate of change of dead cells, for treatment concentration c at time t
  • k(c,t) = ks(c,t) + kd(c,t) = the overall growth-rate of the cell population for treatment concentration c at time t
  • t = the duration of the assay in hours

In order to differentiate between the effects of slowed growth and toxicity, we introduce the static and toxic GR. We start by modifying our model of cell population growth to separate total population growth into two parts, a growth rate ks and a death rate kd.

To derive these, we describe the rates of change with a system of ordinary differential equations (ODEs):

Using the initial conditions for the population of live cells x0 = x(0,0) and dead cells d0 = d(0,0), we solve this system for ks and kd.

For GRstatic, the cytostatic part of growth-rate inhibition, we consider the ratio of the treated growth-rate among viable cells to the un-treated growth rate ks(c)/ks(0). Again, we exponentiate it and subtract 1 to bound our values for the curve. Since GRstatic only characterizes slowed population growth and not cell death, it is bounded between 1 and 0.

For GRtoxic, we expect the un-treated death rate kd(0) to be close to zero, so to make a more robust measure we use the difference of the death rates kd(c) - kd(0) rather than their ratio. As with GRstatic, we exponentiate and subtract 1. This makes it so that GRtoxic is bounded between 0 and -1.

As with the original GR method, we fit logistic curves to model the GRstatic and GRtoxic values as a function of the log treatment concentration.

As with the original GR curves, we extract summary metrics from the GRstatic and GRtoxic curves such as GR50, GRinf, GRAOC, etc. These metrics summarize the growth response of the viable and dead cell populations, respectively.

All of these parameters are defined in the same was as for the original GR curves, with a few small changes. Since the GRtoxic curve is bounded between 0 and -1, its GR50 is defined as the concentration at which it crosses the y = -0.5 line. Similarly, it's GRAOC value is defined as the area above the curve, but below zero.

Biphasic dose-response curves
New

In the original growth-response inhibition (GR) model, GR values are fitted to a 3-parameter sigmoidal curve. This models a situation in which the dose-response effect of a perturbagen starts as exponential at lower concentrations and, as concentration increases, reduces to linear and then finally levels off as the effect saturates at higher concentrations.

The GR curve has a lower asymptote, GRinf, which models the maximum effect, GEC50, the concentration of the curve's inflection point, and hGR, the steepness of the curve.

However, in some cases cell response may be better modeled by two "phases" of growth inhibition, in which a perturbagen has two separate effects at lower and higher concentrations. In this update, we have added the option to fit a "biphasic" curve, which models growth-response separately at lower and higher concentrations.

For this curve, we fit six parameters. The part of the curve at lower concentrations has one set of parameters (GRinf, GEC50, and hGR), while the part of the curve at higher concentrations has another.

Load example:
Load example data
Import your own data
Load example:
Live cell data only (GR curves)
Live and dead cell data (static and toxic GR curves)

Do you have live and dead cell counts?

No, I only have live cell counts
Yes, I have both

Do you have initial (time 0) cell counts?

Yes, I do
No, but I have untreated cell division times

Choose input file format

Case A (multiple cell counts per row)
Case B (one cell count per row)

Select file type

comma-separated (.csv)
tab-separated (.tsv)

Upload data file

From your computer:
Choose file
Fetch Data
Download example data for static vs. toxic curves
Static vs. toxic case example
Static vs. toxic case column descriptions

GR static vs. toxic curves

Necessary columns:

  • cell_line = name of the cell line used in the experiment
  • treatment = name of the treatment used in the experiment
  • treatment_duration__hrs = the number of hours elapsed between the time of treatment (time0) and the end of the assay
  • concentration = concentration value (not log-transformed) of the treatment (all concentrations must be positive numbers)
  • cell_count = treated live cell count (end of assay) - measure of cell number in the treated well at the end of the assay
  • dead_count = treated dead cell count (end of assay) - measure of cell number in the treated well at the end of the assay
  • cell_count__ctrl - control live cell count (end of assay) - measure of live cell number in the control well (e.g. untreated or DMSO-treated) from the same plate at the end of the assay
  • dead_count__ctrl - control live cell count (end of assay) - measure of dead cell number in the control well (e.g. untreated or DMSO-treated) from the same plate at the end of the assay
  • cell_count__time0 - initial cell count (time of treatment) - measure of cell number at the beginning of the assay. (measure of cells in an untreated well grown in parallel until the time of treatment)
  • dead_count__time0 - initial dead cell count (time of treatment) - measure of dead cell number at the beginning of the assay. (measure of cells in an untreated well grown in parallel until the time of treatment)

You may use a surrogate of cell number (such as CellTiter-Glo staining) for the 'cell counts'.

You may include additional columns to be used for grouping the dose-response experiments.

Download example data for case A
Case A Example
Case A column descriptions

Case A: Multiple measurements per row

Necessary columns:

  • cell_line = name of the cell line used in the experiment
  • treatment = name of the treatment used in the experiment
  • concentration = concentration value (not log-transformed) of the treatment (all concentrations must be positive numbers)
  • cell_count = treated cell count (end of assay) - measure of cell number in the treated well at the end of the assay
  • cell_count__ctrl - control cell count (end of assay) - measure of cell number in the control well (e.g. untreated or DMSO-treated) from the same plate at the end of the assay
  • treatment_duration__hrs = the time in hours between the time of treatment and the end of the assay, when cell number is measured. Use 0 for measurements at the beginning of the assay and the duration of the assay after treatment for measurements at the end of the assay, e.g. “72” for a typical 3-day (72 hour) assay. (Note: time-course calculations have not been implemented yet, all measurements must be at the time of treatment or at the end of the assay.)
  • division_time - the time in hours that it takes cells from each (untreated) cell line to double in population number.

You may use a surrogate of cell number (such as CellTiter-Glo staining) for the 'cell counts'.

You may include additional columns to be used for grouping the dose-response experiments.

When your file is uploaded, another popup will open in which you can type the division times for the cell lines used as well as the assay duration.

Download example data for case A
Case A Example
Case A column descriptions

Case A: Multiple measurements per row

Necessary columns:

  • cell_line = name of the cell line used in the experiment
  • treatment = name of the treatment used in the experiment
  • concentration = concentration value (not log-transformed) of the treatment (all concentrations must be positive numbers)
  • cell_count = treated cell count (end of assay) - measure of cell number in the treated well at the end of the assay
  • cell_count__ctrl - control cell count (end of assay) - measure of cell number in the control well (e.g. untreated or DMSO-treated) from the same plate at the end of the assay
  • cell_count__time0 - initial cell count (time of treatment) - measure of cell number at the beginning of the assay. (measure of cells in an untreated well grown in parallel until the time of treatment)

You may use a surrogate of cell number (such as CellTiter-Glo staining) for the 'cell counts'.

You may include additional columns to be used for grouping the dose-response experiments.

Download example data for case B
Case B Example
Case B column descriptions

Case B: One measurement per row

Necessary columns:

  • cell_line = name of the cell line used in the experiment
  • treatment = name of the treatment used in the experiment (use a dash “-” for untreated measurements)
  • concentration = concentration value (not log-transformed) of the treatment - use 0 for untreated measurements - concentrations for other measurements must be positive numbers
  • cell_count = measure of cell number
  • treatment_duration__hrs = the time in hours between the time of treatment and the end of the assay, when cell number is measured. Use 0 for measurements at the beginning of the assay and the duration of the assay after treatment for measurements at the end of the assay, e.g. “72” for a typical 3-day (72 hour) assay. (Note: time-course calculations have not been implemented yet, all measurements must be at the time of treatment or at the end of the assay.)

You may use a surrogate of cell number (such as CellTiter-Glo staining) for the 'cell counts'.

You may include additional columns to be used for grouping the dose-response experiments.

Download example data for case B
Case B Example
Case B column descriptions

Case B: One measurement per row

Necessary columns:

  • cell_line = name of the cell line used in the experiment
  • treatment = name of the treatment used in the experiment (use a dash “-” for untreated measurements)
  • concentration = concentration value (not log-transformed) of the treatment - use 0 for untreated measurements - concentrations for other measurements must be positive numbers
  • cell_count = measure of cell number
  • treatment_duration__hrs = the time in hours between the time of treatment and the end of the assay, when cell number is measured. Use 0 for measurements at the beginning of the assay and the duration of the assay after treatment for measurements at the end of the assay, e.g. “72” for a typical 3-day (72 hour) assay. (Note: time-course calculations have not been implemented yet, all measurements must be at the time of treatment or at the end of the assay.)
  • division_time - the time in hours that it takes cells from each (untreated) cell line to double in population number.

You may use a surrogate of cell number (such as CellTiter-Glo staining) for the 'cell counts'.

You may include additional columns to be used for grouping the dose-response experiments.

When your file is uploaded, another popup will open in which you can type the division times for the cell lines used as well as the assay duration.

Select variable to group dose-response curves
Analyze
Analyze
Advanced options


Loading...

Download GR data

Loading...
Loading...

Show/hide curves
Boxplot
Scatterplot
Compare boxplots