Learn R Programming

pcr

Overview

Quantitative real-time PCR is an important technique in medical and biomedical applications. The pcr package provides a unified interface for quality assessing, analyzing and testing qPCR data for statistical significance. The aim of this document is to describe the different methods and modes used to relatively quantify gene expression of qPCR and their implementation in the pcr package.

Getting started

The pcr is available on CRAN. To install it, use:

# install package CRAN
install.packages('pcr')

The development version of the package can be obtained through:

# install package from github (under development)
devtools::install_github('MahShaaban/pcr')
# load required libraries
library(pcr)

The following chunk of code locates a dataset of CT values of two genes from 12 different samples and performs a quick analysis to obtain the expression of a target gene c-myc normalized by a control GAPDH in the Kidney samples relative to the brain samples. pcr_analyze provides different methods, the default one that is used here is 'delta_delta_ct' applies the popular Double Delta CT method.

# default mode delta_delta_ct
## locate and read raw ct data
fl <- system.file('extdata', 'ct1.csv', package = 'pcr')
ct1 <- readr::read_csv(fl)

## add grouping variable
group_var <- rep(c('brain', 'kidney'), each = 6)

# calculate all values and errors in one step
## mode == 'separate_tube' default
res <- pcr_analyze(ct1,
                   group_var = group_var,
                   reference_gene = 'GAPDH',
                   reference_group = 'brain')
  
res

The output of pcr_analyze is explained in the documentation of the function ?pcr_analyze and the method it calls ?pcr_ddct. Briefly, the input includes the CT value of c-myc normalized to the control GAPDH, The calibrated value of c-myc in the kidney relative to the brain samples and the final relative_expression of c-myc. In addition, an error term and a lower and upper intervals are provided.

The previous analysis makes a few assumptions. One of which is a perfect amplification efficiency of the PCR reaction. To assess the validity of this assumption, pcr_assess provides a method called efficiency. The input data.frame is the CT values of c-myc and GAPDH at different input amounts/dilutions.

## locate and read data
fl <- system.file('extdata', 'ct3.csv', package = 'pcr')
ct3 <- readr::read_csv(fl)

## make a vector of RNA amounts
amount <- rep(c(1, .5, .2, .1, .05, .02, .01), each = 3)

## calculate amplification efficiency
res <- pcr_assess(ct3,
                  amount = amount,
                  reference_gene = 'GAPDH',
                  method = 'efficiency')
res

In the case of using the Double Delta C_T, the assumption of the amplification efficiency is critical for the reliability of the model. In particular, the slope and the R^2 of the line between the log input amount and Delta C_T or difference between the CT value of the target c-myc and GAPDH. Typically, The slope should be very small (less than 0.01). The slope here is appropriate, so the assumption holds true.

Other analysis methods ?pcr_analyze

  • Delta CT method
  • Relative standard curve method

Testing statistical significance ?pcr_test

  • Two group testing t-test and wilcoxon test
  • Linear regression testing

Documnetation

browseVignettes("pcr")

Alternatively, the vignette can be found online, here.

Citation

citation("pcr")

PeerJ Article

For details about the methods and more examples, check out our PeerJ article.

Copy Link

Version

Install

install.packages('pcr')

Monthly Downloads

348

Version

1.2.2

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

April 1st, 2020

Functions in pcr (1.2.2)

.pcr_plot_analyze

Plotting function
pcr_assess

Assess qPCR data quality
.pcr_error

Propage two vectors
pcr_ddct

Calculate the delta_delta_ct model
pcr

pcr package
pcr_dct

Calculate the delta_ct model
.pcr_slope

Calculate the slope of a line
pcr_lm

Linear regression qPCR data
pcr_curve

Calculate the standard curve model
pcr_efficiency

Calculate amplification efficiency
.pcr_relative

Raise two to a vector power
pcr_standard

Calculate the standard curve
pcr_analyze

Apply qPCR analysis methods
pcr_ttest

t-test qPCR data
.pcr_rsquared

Calculate R squared
pcr_wilcox

Wilcoxon test qPCR data
pcr_test

Statistical testing of PCR data
.pcr_plot_assess

Plot quality assessment graphs
.pcr_sd

Get vector standard deviation by a variable
.pcr_intercept

Calculate the intercept of a line
.pcr_normalize

Normalize vector by another
ct3

\(C_T\) values from qPCR (Serial dilutions)
ct4

\(C_T\) values from qPCR (Serial dilutions)
.pcr_amount

Calculate the amounts
ct1

\(C_T\) values from qPCR (separate tubes)
ct2

\(C_T\) values from qPCR (same tubes)
.pcr_average

Get vector average by a variable
.pcr_cv

Get vector coefficient of variance by a variable