Compare differential gene expression results with those from big datasets (e.g. CMap), allowing to infer which types of perturbations may explain the observed difference in gene expression.

Optimised to run in ShinyProxy with Celery/Flower backend with argument shinyproxy = TRUE.

  commonPath = "data",
  expire = 14,
  fileSizeLimitMiB = 50,
  flowerURL = NULL,
  port = getOption("shiny.port"),
  host = getOption("", "")





Character: path where to store data common to all sessions


Character: days until a session expires (message purposes only)


Numeric: file size limit in MiB


Character: Flower REST API's URL (NULL to avoid using Celery/Flower backend)


The TCP port that the application should listen on. If the port is not specified, and the shiny.port option is set (with options(shiny.port = XX)), then that port will be used. Otherwise, use a random port between 3000:8000, excluding ports that are blocked by Google Chrome for being considered unsafe: 3659, 4045, 5060, 5061, 6000, 6566, 6665:6669 and 6697. Up to twenty random ports will be tried.


The IPv4 address that the application should listen on. Defaults to the option, if set, or "" if not. See Details.


Launches result viewer and plotter (returns NULL)


Input: To use this package, a named vector of differentially expressed gene metric is needed, where its values represent the significance and magnitude of the differentially expressed genes (e.g. t-statistic) and its names are gene symbols.

Workflow: The differentially expressed genes will be compared against selected perturbation conditions by:

  • Spearman or Pearson correlation with z-scores of differentially expressed genes after perturbations from CMap. Use function rankSimilarPerturbations with method = "spearman" or method = "pearson"

  • Gene set enrichment analysis (GSEA) using the (around) 12 000 genes from CMap. Use function rankSimilarPerturbations with method = gsea.

Available perturbation conditions for CMap include:

  • Cell line(s).

  • Perturbation type (gene knockdown, gene upregulation or drug intake).

  • Drug concentration.

  • Time points.

Values for each perturbation type can be listed with getCMapPerturbationTypes()

Output: The output includes a data frame of ranked perturbations based on the associated statistical values and respective p-values.


Maintainer: Nuno Saraiva-Agostinho


  • Bernardo P. de Almeida

  • Nuno L. Barbosa-Morais [lead]