splineDiffExprs: Differential expression analysis based on natural cubic...

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/splineDiffExprs.R


The function compares time dependent behaviour of genes in two different groups. Applying empirical Bayes moderate F-statistic on differences in coefficients of fitted natural cubic spline regression models, differentially expressed in time genes are determined. The function is a wrapper of other R-functions to simplify differential expression analysis of time-course data.


splineDiffExprs(eSetObject, df, cutoff.adj.pVal=1, reference, intercept=TRUE)



ExpressionSet object of class ExpressionSet containing log-ratios or log-values of expression for a series of microarrays


number of degrees of freedom


Benjamini-Hochberg adjusted p-value cut-off


character defining which treatment group should be considered as reference


if TRUE, F-test includes all parameters; if FALSE, F-test includes shape parameters only; default is TRUE


The function fits a temporal trend using a natural cubic spline regression to simulate nonlinear behaviour of genes over time.

The input eSetObject must be provided as an object of class ExpressionSet which contains SampleName, Time, Treatment and if applicable Replicates variables (columns) included in the phenotypic data of the eSetObject (pData(eSetObject)). Two types of Treatment defining two groups to compare have to be definied.

Replicates are not required. The time points for compared treatment groups should be identical.

User has to define number of degrees of freedom (df) for the spline regression model. Choosing effective degrees of freedom in range 3-5 is reasonable.

Time dependent differential expression of a gene is determined by the application of empirical Bayes moderate F-statistics on the differences of coefficient values of the fitted natural cubic spline regression models for the same gene in the two compared treatment groups. In other words, comparing the coefficient values of the fitted splines in both groups allows the detection of differences in the shape of the curves, which represent the gene expressions changes over time. Ouptut table containing Benjamini-Hochberg adjusted p-value (adj.P.Value) is used to define differentially expressed genes. The default value for cutoff.adj.pVal is set to 1, which means that all genes are included in output table.


A data.frame with rows defining names/IDs of differentially expressed genes and additional columns described below.

The first columns contain all feature data of the eSetObject (fData(eSetObject)), if any feature data were defined. Otherwise, only one column row_IDs, containing the row names is created. The b_0, b_1,..., b_m coefficients correspond to the reference model parameters. The d_0, d_1,..., d_m coefficients represent the differences between the reference model parameters and the model parameters in the compared group. AveExprs refers to the average log2-expression for a probe (representing a gene) over all arrays. The F column contains moderate F-statistics, P.Value raw p-value and adj.P.Value Benjamini-Hochberg adjusted p-value.


Agata Michna

See Also



## load "eSetObject" containing simulated time-course data

## define function parameters 
df <- 3
cutoff.adj.pVal <- 0.01
reference <- "T1"
intercept <- TRUE

diffExprs <- splineDiffExprs(eSetObject = TCsimData, df, cutoff.adj.pVal, reference, intercept)

Example output

Loading required package: Biobase
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, sd, var, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, basename, cbind, colMeans, colSums, colnames,
    dirname, do.call, duplicated, eval, evalq, get, grep, grepl,
    intersect, is.unsorted, lapply, lengths, mapply, match, mget,
    order, paste, pmax, pmax.int, pmin, pmin.int, rank, rbind,
    rowMeans, rowSums, rownames, sapply, setdiff, sort, table, tapply,
    union, unique, unsplit, which, which.max, which.min

Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: igraph

Attaching package: 'igraph'

The following objects are masked from 'package:BiocGenerics':

    normalize, path, union

The following objects are masked from 'package:stats':

    decompose, spectrum

The following object is masked from 'package:base':


Loading required package: limma

Attaching package: 'limma'

The following object is masked from 'package:BiocGenerics':


Loading required package: GSEABase
Loading required package: annotate
Loading required package: AnnotationDbi
Loading required package: stats4
Loading required package: IRanges
Loading required package: S4Vectors

Attaching package: 'S4Vectors'

The following object is masked from 'package:base':


Loading required package: XML
Loading required package: graph

Attaching package: 'graph'

The following object is masked from 'package:XML':


The following objects are masked from 'package:igraph':

    degree, edges, intersection

Loading required package: gtools

Attaching package: 'gtools'

The following object is masked from 'package:igraph':


Loading required package: splines
Loading required package: GeneNet
Loading required package: corpcor
Loading required package: longitudinal
Loading required package: fdrtool
Loading required package: FIs
   SampleName Time Treatment Replicate
1      T1_1_A    1        T1         A
2      T1_4_A    4        T1         A
3      T1_8_A    8        T1         A
4     T1_16_A   16        T1         A
5     T1_24_A   24        T1         A
6     T1_32_A   32        T1         A
7     T1_40_A   40        T1         A
8     T1_48_A   48        T1         A
9      T1_1_B    1        T1         B
10     T1_4_B    4        T1         B
11     T1_8_B    8        T1         B
12    T1_16_B   16        T1         B
13    T1_24_B   24        T1         B
14    T1_32_B   32        T1         B
15    T1_40_B   40        T1         B
16    T1_48_B   48        T1         B
17     T2_1_A    1        T2         A
18     T2_4_A    4        T2         A
19     T2_8_A    8        T2         A
20    T2_16_A   16        T2         A
21    T2_24_A   24        T2         A
22    T2_32_A   32        T2         A
23    T2_40_A   40        T2         A
24    T2_48_A   48        T2         A
25     T2_1_B    1        T2         B
26     T2_4_B    4        T2         B
27     T2_8_B    8        T2         B
28    T2_16_B   16        T2         B
29    T2_24_B   24        T2         B
30    T2_32_B   32        T2         B
31    T2_40_B   40        T2         B
32    T2_48_B   48        T2         B
Differential analysis done for df = 3 and adj.P.Val <= 0.01 
Number of differentially expressed genes:  952 
      row_IDs       b_0         b_1         b_2         b_3        d_0
BRAF     BRAF 0.2248186 -0.06672491 -0.11466685 -0.01113329 0.04537218
EEF2     EEF2 0.1662325  0.03093095  0.02415684  0.05805703 0.04218390
OR5W2   OR5W2 0.5600514 -0.11141556 -0.26764248  0.13582290 0.10798569
             d_1        d_2        d_3   AveExpr         F      P.Value
BRAF  0.09884069 0.32667028  0.1362235 0.2616200 100.47655 8.552316e-19
EEF2  0.03907564 0.36776057  0.1663112 0.2632523  75.34076 8.442937e-17
OR5W2 0.29355341 0.08948516 -0.1577280 0.5454758  71.98754 1.723753e-16
BRAF  1.710463e-15
EEF2  8.442937e-14
OR5W2 1.149169e-13

splineTimeR documentation built on Nov. 8, 2020, 6:52 p.m.