This function visualizes the expression level distribution of each phylostratum during each time point or experiment as boxplot, dot plot, or violin plot enabling users to quantify the age (PS) or divergence (DS) category specific contribution to the corresponding transcriptome.

PlotCategoryExpr(
  ExpressionSet,
  legendName,
  test.stat = TRUE,
  type = "category-centered",
  distr.type = "boxplot",
  y.ticks = 10,
  log.expr = FALSE,
  gene.set = NULL
)

Arguments

ExpressionSet

a standard PhyloExpressionSet or DivergenceExpressionSet object.

legendName

a character string specifying whether "PS" or "DS" are used to compute relative expression profiles.

test.stat

a logical value indicating whether a Benjamini-Hochberg adjusted kruskal.test should be applied to determine significant differences in age or divergence category specific expression.

type

type of age or divergence category comparison. Specifications can be type = "category-centered" or type = "stage-centered".

distr.type

format of visualizing age or divergence category specific expression distributions. Either distr.type = "boxplot", distr.type = "dotplot", or distr.type = "violin".

y.ticks

number of y-axis ticks (default y.ticks = 10).

log.expr

a logical value specifying whether or not expression levels should internally be log2-transformed before visualization.

gene.set

a character vector storing the gene ids for which gene expression levels shall be visualized.

Value

A boxplot, violin plot, or dot plot visualizing the gene expression levels of different PS or DS categories.

Furthermore, the statistical test results returned from the kruskal.test are printed to the console.

(1) '*' = P-Value <= 0.05

(2) '**' = P-Value <= 0.005

(3) '***' = P-Value <= 0.0005

(4) 'n.s.' = not significant = P-Value > 0.05

Details

This way of visualizing the gene expression distribution of each age (PS) or divergence (DS) category during all developmental stages or experiments allows users to detect specific age or divergence categories contributing significant levels of gene expression to the underlying biological process (transcriptome).

This quantification allows users to conclude that genes originating in specific PS or DS contribute significantly more to the overall transcriptome than other genes originating from different PS or DS categories. More specialized analyses such as PlotMeans, PlotRE, PlotBarRE, etc. will then allow to study the exact mean expression patterns of these age or divergence categories.

The statistical quantification of differences between expression levels of different age or divergence categories is done by performing a kruskal.test with Benjamini & Hochberg p-value adjustment for multiple comparisons.

  • type = "category-centered" Here, the kruskal.test quantifies the differences of gene expression between all combinations of age or divergence categories for each stage or experiment separately. Here, a significant p-value quantifies that there is at least one pairwise comparison for which age or divergence categories significantly differ in their gene expression distribution. This type of analysis allows users to detect stages or experiments that show high diviation between age or divergence category contributions to the overall transcriptome or no significant deviations of age or divergence categories, suggesting equal age or divergence category contributions to the overall transcriptome.

  • type = "stage-centered" Here, the kruskal.test quantifies the differences of gene expression between all stages or experiments for each age or divergence category separately. Hence, the test quantifies whether or not the gene expression distribution of a single age or divergence category significantly changes throughout development or experiments. This type of analysis allows users to detect specific age or divergence categories that significantly change their expression levels throughout development or experiments.

Argument Specifications:

Argument: type

  • type = "category-centered" This specification allows users to compare the differences between all age or divergence categories during the same stage or experiment.

  • type = "stage-centered" This specification allows users to compare the differences between all age or divergence categories between stages or experiments.

Argument: distr.type

  • distr.type = "boxplot" This specification allows users to visualize the expression distribution of all PS or DS as boxplot.

  • distr.type = "violin" This specification allows users to visualize the expression distribution of all PS or DS as violin plot.

  • distr.type = "dotplot" This specification allows users to visualize the expression distribution of all PS or DS as dot plot.

Finally, users can specify a gene.set (a subset of genes included in the input ExpressioSet) for which expression levels should be visualized as boxplot, dotplot, or violinplot.

Author

Hajk-Georg Drost

Examples


data(PhyloExpressionSetExample)
data(DivergenceExpressionSetExample)

if (FALSE) {

# category-centered visualization of PS specific expression level distributions (log-scale)
PlotCategoryExpr(ExpressionSet = PhyloExpressionSetExample,
                     legendName    = "PS",
                     test.stat     = TRUE,
                     type          = "category-centered",
                     distr.type    = "boxplot",
                     log.expr      = TRUE)
                     

# stage-centered visualization of PS specific expression level distributions (log-scale)
PlotCategoryExpr(ExpressionSet = PhyloExpressionSetExample,
                     legendName    = "PS",
                     test.stat     = TRUE,
                     distr.type    = "boxplot",
                     type          = "stage-centered",
                     log.expr      = TRUE)

                     
                                                               
# category-centered visualization of PS specific expression level distributions (log-scale)
# as violoin plot
PlotCategoryExpr(ExpressionSet = PhyloExpressionSetExample,
                     legendName    = "PS",
                     test.stat     = TRUE,
                     distr.type    = "violin",
                     type          = "stage-centered",
                     log.expr      = TRUE)




# analogous for DivergenceExpressionSets
PlotCategoryExpr(ExpressionSet = DivergenceExpressionSetExample,
                     legendName    = "DS",
                     test.stat     = TRUE,
                     type          = "category-centered",
                     distr.type    = "boxplot",
                     log.expr      = TRUE)


# visualize the expression levels of 500 example genes
set.seed(234)
example.gene.set <- PhyloExpressionSetExample[sample(1:25260,500) , 2]

PlotCategoryExpr(ExpressionSet = PhyloExpressionSetExample,
                 legendName    = "PS",
                 test.stat     = TRUE,
                 type          = "category-centered",
                 distr.type    = "boxplot",
                 log.expr      = TRUE,
                 gene.set      = example.gene.set)
                 
}