Skip to main content

MicroScope: ChIP-seq and RNA-seq software analysis suite for gene expression heatmaps



Heatmaps are an indispensible visualization tool for examining large-scale snapshots of genomic activity across various types of next-generation sequencing datasets. However, traditional heatmap software do not typically offer multi-scale insight across multiple layers of genomic analysis (e.g., differential expression analysis, principal component analysis, gene ontology analysis, and network analysis) or multiple types of next-generation sequencing datasets (e.g., ChIP-seq and RNA-seq). As such, it is natural to want to interact with a heatmap’s contents using an extensive set of integrated analysis tools applicable to a broad array of genomic data types.


We propose a user-friendly ChIP-seq and RNA-seq software suite for the interactive visualization and analysis of genomic data, including integrated features to support differential expression analysis, interactive heatmap production, principal component analysis, gene ontology analysis, and dynamic network analysis.


MicroScope is hosted online as an R Shiny web application based on the D3 JavaScript library: The methods are implemented in R, and are available as part of the MicroScope project at:


Most currently existing heatmap software produce static heatmaps [21, 25, 26, 29, 32, 35, 36, 44], without features that would allow the user to dynamically interact with, explore, and analyze the landscape of a heatmap via integrated tools supporting user-friendly analyses in differential expression, principal components, gene ontologies, and networks. Such features would allow the user to engage the heatmap data in a visual and analytical manner while in real-time, thereby allowing for a deeper, quicker, and more comprehensive data exploration experience.

An interactive, albeit non-reproducible heatmap tool was previously employed in the study of the transcriptome of the Xenopus tropicalis genome [41]. Likewise, manual clustering of dot plots depicting RNA expression is an integral part of the Caleydo data exploration environment [42]. Chemoinformatic-driven clustering can also be toggled in the user interface of Molecular Property Explorer [27]. Furthermore, an interactive heatmap software suite was previously developed with a focus on cancer genomics analysis and data import from external bioinformatics resources [31]. Most recently, a general-purpose heatmap software providing support for transcriptomic, proteomic and metabolomic experiments was developed using the R Shiny framework [1].

Moreover, an interactive cluster heatmap library, InCHlib, was previously proposed for cluster heatmap exploration [39], but did not provide built-in support for gene ontology, principal component, or network analysis. However, InCHlib concentrates primarily in chemoinformatic and biochemical data clustering analysis, including the visualization of microarray and protein data. On the contrary, MicroScope is designed specifically for ChIP-seq and RNA-seq data visualization and analysis in the differential expression, principal component, gene ontology, and network analysis domains. In general, prior software has concentrated primarily in hierarchical clustering, searching gene texts for substrings, and serial analysis of genomic data, with no integrated features to support the aforementioned built-in features [3, 37, 46].

As of yet, no free, open-source heatmap software has been proposed to explore heatmaps at such multiple levels of genomic analysis and interactive visualization capacity. Here we propose a user-friendly genome software suite designed to handle dynamic, on-the-fly JavaScript visualizations of gene expression heatmaps as well as their respective differential expression analysis, principal component analysis, gene ontology analysis, and network analysis of genes.


MicroScope is hosted online as an R Shiny web server application. MicroScope may also be run locally from within R Studio, as shown here: MicroScope leverages the cumulative utility of R’s d3heatmap [20], shiny [19], stats [33], htmlwidgets [43], RColorBrewer [30], dplyr [45], data.table [23], goseq [47], GO.db [4], and networkD3 [24] libraries to create an integrative web browser-based software experience requiring absolutely no programming or statistical experience from the user, or even the need to download R on a local computer.

MicroScope employs the Bioconductor package edgeR [34] to create a one-click, built-in, user-friendly differential expression analysis feature that provides differential expression analysis of gene expression data based on the quantile-adjusted conditional maximum likelihood (qCML) procedure and the Benjamini & Hochberg correction. edgeR is a count-based statistical method that expects input data in the form of a matrix of integer values. The value in the i-th row and the j-th column of the matrix tells how many reads (or fragments, for paired-end RNA-seq) have been unambiguously assigned to gene i in sample j [28]. Analogously, for other types of assays, the rows of the matrix might correspond e.g., to binding regions (with ChIP-seq), species of bacteria (with metagenomic datasets), or peptide sequences (with quantitative mass spectrometry). In general, the values in the matrix must be raw counts of sequencing reads/fragments. This is important for the statistical model to hold, as only the raw counts allow assessing the measurement precision correctly. It is important to never provide counts that were pre-normalized for sequencing depth/library size, as the statistical model is most powerful when applied to raw counts, and is designed to account for library size differences internally via a series of built-in normalization procedures.

The edgeR results supply the user with rank-based information about nominal p-value, false discovery rate, fold change, and counts per million in order to establish which specific genes in the data are differentially expressed with a high degree of statistical significance. This information, in turn, is used to investigate the top gene ontology categories of differentially expressed genes, which can then be conveniently visualized as interactive network graphics. Finally, MicroScope provides user-friendly support for principal component analysis via the generation of biplots, screeplots, and summary tables. PCA is supported for both covariance and correlation matrices via R’s prcomp() function in the stats package.

Results and discussion

Figure 1 shows the MicroScope user interface (UI) upon login. After a user inputs an RNA-seq/ChIP-seq data file containing read counts per gene per sample, the user is guided through the differential expression analysis (Fig. 2) which, in turn, leads to the heatmap visualization stage of differentially expressed genes at user-specified statistical cutoff parameters (Fig. 3). Heatmaps visualizing statistically significant genes, as determined by the differential expression analysis, can be customized in a variety of ways, through user-friendly methods such as:

  • Statistical parameters visualization cutoff widget (p-value and/or FDR)

    Fig. 1
    figure 1

    MicroScope user interface. MicroScope UI shown at login, showcasing the Instructions tab and differential expression analysis feature, as well as features such as: sample file download, input file upload, ‘Run Statistics’ widget, and ‘Download Stats Table’ widget. Additional UI features are sequentially unlocked as the user progresses through the MicroScope software suite

    Fig. 2
    figure 2

    Differential expression analysis tabulated results. Once the input data is uploaded, a quantile-adjusted conditional maximum likelihood (qCML) procedure and the Benjamini-Hochberg correction are used to supply the user with information about the nominal p-value, false discovery rate, fold change, and counts per million calculations for differentially expressed genes. The edgeR package is used

    Fig. 3
    figure 3

    Interactive heatmap visualization. MicroScope heatmap options showcasing the magnification feature as well as features such as: statistical parameter settings, l o g 2 data transformation, multiple heatmap color schemes, hierarchical clustering, row/column dendrogram branch coloring, row/column font size, and heatmap download button

  • l o g 2 data transformation widget

  • Multiple heatmap color schemes widget

  • Hierarchical clustering widget

  • Row/column dendrogram branch coloring widget

  • Row/column font size widget

  • Heatmap download widget

MicroScope allows the user to magnify any portion of a heatmap by a simple click-and-drag feature to zoom in, and a click-once feature to zoom out. MicroScope is designed with large gene expression heatmaps in mind, where individual gene labels overlap and render the text unreadable. However, MicroScope allows the user to repeatedly zoom in to any sector of the heatmap to investigate a region, cluster, or even a single gene. MicroScope also allows the user to hover the mouse pointer over any specific gene to show gene name, expression level, and column ID. It should be noted that specifying the heatmap statistical parameters impacts the contents of the heatmap visualization itself, as stringent cutoffs will naturally result in less genes displayed. However, the downstream PCA or gene ontology or network analysis is not impacted by these heatmap visualizations. In other words, all downstream analyses are performed on the entire input dataset. It should also be noted that prior to visualizing heatmaps in MicroScope, experiment-specific data normalization procedures are left to the discretion of the user [2, 22, 38, 40], depending on whether the user wants to visualize differences in magnitude among genes or see differences among samples.

One of the user-friendly features within MicroScope is that it is responsive to the demands asked of it by the user. For example, gene ontology analysis buttons are not provided in the UI until a user runs differential expression analysis, which constitutes a prerequisite step required prior to conducting a successful gene ontology analysis. In other words, MicroScope is user-responsive in the sense that it automatically unlocks new features only as they become needed when the user progresses through successive stages in the software. Furthermore, MicroScope automatically provides short and convenient written guidelines directly in the UI to guide the user to the next steps in the usage of the software. As such, complex analytical operations can be performed by the user in a friendly, step-by-step fashion, each time facilitated by the help of the MicroScope software suite, which adjusts to the needs of the user and provides written guidelines on the next steps to pursue. It should be noted that the differential expression analysis in MicroScope (qCML and Benjamini & Hochberg correction) is designed to be broadly applicable to be run on any ChIP-seq or RNA-seq data inputted by the user.

Following the successful completion of the differential expression analysis and interactive heatmap visualization, a user is automatically supplied a suite of UI widgets to perform principal component analysis. The user is given the choice to specify the matrix type (i.e., covariance or correlation matrix) in the sidebar panel marked ‘Choose PCA Option’. After the PCA is completed, the user is supplied with a biplot and screeplot to visualize the results, as well as tabulated information showing the relative importance of each principal component.

Following the successful completion of the PCA (Fig. 4), the user is prompted with more UI widgets to proceed to the gene ontology analysis. Specifying values for these features and clicking the Do Gene Ontology Analysis button returns a list of the top gene ontology (GO) categories according to these exact specifications set by the user (Fig. 5). To perform the gene enrichment analysis, MicroScope uses the Wallenius non-central hypergeometric distribution to retrieve p-values for each GO category analyzed. Specifically, the goseq package implements a default option to use the Wallenius distribution to approximate the true null distribution, without any significant loss in accuracy [47]. After a null distribution is established, each GO category is then tested for over and under-representation amongst the set of differentially expressed genes, and the null is used to calculate a p-value for over and under-representation. Supported organisms for GO category analysis include: human [5], mouse [6], rat [7], zebrafish [8], worm [9], chimpanzee [10], fly [11], yeast [12], bovine [13], canine [14], mosquito [15], rhesus monkey [16], frog [17], and chicken [18].

Fig. 4
figure 4

Principal component analysis. Tabulated summary table of importance of principal components, as well as biplot and screeplot graphics visualizations, are produced to investigate variation and patterns in gene expression

Fig. 5
figure 5

Gene ontology analysis tabulated results. Top gene ontology categories are automatically calculated and returned as a ranked list in the UI

The successful completion of this step can be followed up by running a network analysis on the top GO categories, thereby generating network graphics corresponding to the number of top gene ontology categories previously requested by the user (Fig. 6). Nodes represent either gene names or gene ontology identifiers, and links represent direct associations between the two entities. In addition to serving as a visualization tool, this network analysis automatically identifies differentially expressed genes that are present within each top gene ontology, which is a level of detail not readily available by running gene ontology analysis alone. By immediately extracting the respective gene names from each top gene ontology category, MicroScope’s network analysis features serve to aid the biologist in identifying the top differentially expressed genes in the top respective gene ontology categories. Figure 7 compares interactive network visualizations of the top two gene ontologies, thereby demonstrating the immediate responsiveness of MicroScope’s network graphics to user-specified settings (e.g., number of top gene ontologies to display widget).

Fig. 6
figure 6

Network graphics visualizations of top gene ontology categories. Differentially expressed genes belonging to the respective gene ontology categories are automatically displayed during the network analysis of the data. Top ten gene ontologies (and their respective genes) are shown here. Networks are zoomable and dynamically interactive, allowing the user to manually drag nodes across the screen to explore gene_name– gene_ontology interconnectivity and network architecture

Fig. 7
figure 7

Network analysis visualizations of first ranked gene ontology vs. top-two ranked gene ontologies. Comparison of dynamically interactive network graphics at various user-specified gene ontology settings (e.g., ‘Choose How Many Top Gene Ontologies to Display’ button in the UI). Clearly, the GO category “membrane-bounded organelle” contains two unique genes, while the rest are (perhaps unsurprisingly) shared in common with the GO category “intracellular membrane-bounded organelle”


We provide access to a user-friendly web application designed to visualize and analyze dynamically interactive heatmaps within the R programming environment, without any prerequisite programming skills required of the user. Our software tool aims to enrich the genomic data exploration experience by providing a variety of complex visualization and analysis features to investigate gene expression datasets. Coupled with a built-in analytics platform to pinpoint statistically significant differentially expressed genes, an interactive heatmap production platform to visualize them, a principal component analysis platform to investigate variation and patterns in gene expression, a gene ontology platform to categorize the top gene ontology categories, and a network analysis platform to dynamically visualize gene ontology categories at the gene-specific level, MicroScope presents a significant advance in heatmap technology over currently available software.

Availability and requirements

  • Project name: MicroScope

  • Project home page:

  • Operating system(s): Platform-independent

  • Programming language: R, Shiny

  • Other requirements: Internet connectivity

  • License: GNU General Public License version 3.0 (GPL-3.0)

  • Any restrictions to use by non-academics: No



Differential expression


False discovery rate


Gene ontology


Principal component analysis


Quantile-adjusted conditional maximum likelihood


User interface


  1. Babicki S, Arndt D, Marcu A, Liang Y, Grant JR, Maciejewski A, Wishart DS. Heatmapper: web-enabled heat mapping for all. Nucleic Acids Res. 2016; 44(W1):W147–53.

    Article  PubMed  PubMed Central  Google Scholar 

  2. Bailey T, Krajewski P, Ladunga I, Lefebvre C, Li Q, Liu T, Madrigal P, Taslim C, Zhang J. Practical Guidelines for the Comprehensive Analysis of ChIP-seq Data. PLoS Comput Biol. 2013; 9(11):e1003326.

    Article  PubMed  PubMed Central  Google Scholar 

  3. Caraux G, Pinloche S. Permutmatrix: A Graphical Environment to Arrange Gene Expression Profiles in Optimal Linear Order. Bioinformatics. 2005; 21:1280–1.

    Article  CAS  PubMed  Google Scholar 

  4. Carlson M. GO.db: A set of annotation maps describing the entire Gene Ontology. 2015. R package version 3.3.0.

  5. Carlson M. Genome wide annotation for Human. 2016. R package version 3.3.0.

  6. Carlson M. Genome wide annotation for Mouse. 2016. R package version 3.3.0.

  7. Carlson M. Genome wide annotation for Rat. 2016. R package version 3.3.0.

  8. Carlson M. Genome wide annotation for Zebrafish. 2016. R package version 3.3.0.

  9. Carlson M. Genome wide annotation for Worm. 2016. R package version 3.3.0.

  10. Carlson M. Genome wide annotation for Chimp. 2016. R package version 3.3.0.

  11. Carlson M. Genome wide annotation for Fly. 2016. R package version 3.3.0.

  12. Carlson M. org.Sc.sgd.db: Genome wide annotation for Yeast. 2016. R package version 3.3.0.

  13. Carlson M. Genome wide annotation for Bovine. 2016. R package version 3.3.0.

  14. Carlson M. Genome wide annotation for Canine. 2016. R package version 3.3.0.

  15. Carlson M. Genome wide annotation for Anopheles. 2016. R package version 3.3.0.

  16. Carlson M. Genome wide annotation for Rhesus. 2016. R package version 3.3.0.

  17. Carlson M. Genome wide annotation for Xenopus. 2016. R package version 3.3.0.

  18. Carlson M. Genome wide annotation for Chicken. 2016. R package version 3.3.0.

  19. Chang W, Cheng J, Allaire JJ, Xie Y, McPherson J, RStudio, jQuery Foundation, jQuery contributors, jQuery UI contributors, Otto M, Thornton J, Bootstrap contributors, Twitter Inc., Farkas A, Jehl S, Petre S, Rowls A, Gandy D, Reavis B, Kowal KM, es5-shim contributors, Ineshin D, Samhuri S, SpryMedia Limited, Fraser J, Gruber J, Sagalaev I, R Core Team. shiny: Web Application Framework for R. 2015. R package version 0.12.2.

  20. Cheng J, Galili T, RStudio Inc., Bostock M, Palmer J. d3heatmap: Interactive Heat Maps Using ‘htmlwidgets’ and ‘D3.js’. 2015. R package version 0.6.1.

  21. Chu VT, Gottardo R, Raftery AE, Bumgarner RE, Yeung KY. MeV+R: using MeV as a graphical user interface for Bioconductor applications in microarray analysis. Genome Biol. 2008; 9:R118.

    Article  PubMed  PubMed Central  Google Scholar 

  22. Conesa A, Madrigal P, Tarazona S, Gomez-Cabrero D, Cervera A, McPherson A, Szcześniak MW, Gaffney DJ, Elo LL, Zhang X, Mortazavi A. A survey of best practices for RNA-seq data analysis. Genome Biol. 2016; 17(13):1–19.

    Google Scholar 

  23. Dowle M, Srinivasan A, Short T, Lianoglou S, Saporta R, Antonyan E. data.table: Extension of Data.frame. 2015. R package version 1.9.6.

  24. Gandrud C, Allaire JJ, Russell K, Lewis BW, Kuo K, Sese C, Ellis P, Owen J, Rogers J. networkD3: D3 JavaScript Network Graphs from R. R package version 0.2.8.

  25. Gould J. GENE-E software hosted at the Broad Institute.

  26. Khomtchouk BB, Van Booven DJ, Wahlestedt C. HeatmapGenerator: high performance RNAseq and microarray visualization software suite to examine differential gene expression levels using an R and C++ hybrid computational pipeline. Source Code Biol Med. 2014; 9(1):1–6.

    Article  Google Scholar 

  27. Kibbey C, Calvet A. Molecular Property eXplorer: a novel approach to visualizing SAR using tree-maps and heatmaps. J Chem Inf Model. 2005; 45(2):523–32.

    Article  CAS  PubMed  Google Scholar 

  28. Love M, Anders S, Kim V, Huber W. RNA-seq workflow: gene-level exploratory analysis and differential expression. 2016.

  29. Metsalu T, Vilo J. ClustVis: a web tool for visualizing clustering of multivariate data using Principal Component Analysis and heatmap. Nucleic Acids Res. 2015; 43(W1):W566–70.

    Article  PubMed  PubMed Central  Google Scholar 

  30. Neuwirth E. RColorBrewer: ColorBrewer Palettes. 2014. R package version 1.1-2.

  31. Perez-Llamas C, Lopez-Bigas N. Gitools: analysis and visualisation of genomic data using interactive heat-maps. PLoS ONE. 2011; e19541:6.

    Google Scholar 

  32. Qlucore Omics Explorer. The D.I.Y Bioinformatics Software.

  33. R Core Team. A language and environment for statistical computing. Vienna: R Foundation for Statistical Computing; 2015.

    Google Scholar 

  34. Robinson MD, McCarthy DJ, Smyth GK. edgeR: a Bioconductor package for differential expression analysis of digital gene expression data. Bioinformatics. 2010; 26:139–40.

    Article  CAS  PubMed  Google Scholar 

  35. Reich M, Liefeld T, Gould J, Lerner J, Tamayo P, Mesirov JP. GenePattern 2.0. Nat Genet. 2006; 38(5):500–1. 10.1038/ng0506-500.

    Article  CAS  PubMed  Google Scholar 

  36. Saeed AI, Sharov V, White J, Li J, Liang W, Bhagabati N, Braisted J, Klapa M, Currier T, Thiagarajan M, Sturn A, Snuffin M, Rezantsev A, Popov D, Ryltsov A, Kostukovich E, Borisovsky I, Liu Z, Vinsavich A, Trush V, Quackenbush J. TM4: a free, open-source system for microarray data management and analysis. Biotechniques. 2003; 34(2):374–8.

    CAS  PubMed  Google Scholar 

  37. Saldanha AJ. Java Treeview – extensive visualization of microarray data. Bioinformatics. 2004; 20(17):3246–8.

    Article  CAS  PubMed  Google Scholar 

  38. Shin H, Liu T, Duan X, Zhang Y, Liu XS. Computational methodology for ChIP-seq analysis. Quant Biol. 2013; 1(1):54–70.

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  39. Škuta C, Bartu̇něk P, Svozil D. InCHlib — interactive cluster heatmap for web applications. J Cheminformatics. 2014; 6(44):1–9.

    Google Scholar 

  40. Soneson C, Delorenzi M. A comparison of methods for differential expression analysis of RNA-seq data. BMC Bioinforma. 2013; 14:91.

    Article  Google Scholar 

  41. Tan MH, Au KF, Yablonovitch AL, Wills AE, Chuang J, Baker JC, Wong WH, Li JB. RNA sequencing reveals a diverse and dynamic repertoire of the Xenopus tropicalis transcriptome over development. Genome Res. 2013; 23:201–16.

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  42. Turkay C, Lex A, Streit M, Pfister H, Hauser H. Characterizing cancer subtypes using dual analysis in Caleydo StratomeX. IEEE Comput Graph Appl. 2014; 34(2):38–47.

    Article  PubMed  PubMed Central  Google Scholar 

  43. Vaidyanathan R, Xie Y, Allaire JJ, Cheng J, Russell K. RStudio. htmlwidgets: HTML Widgets for R. 2015. R package version 0.5.

  44. Verhaak RGW, Sanders MA, Bijl MA, Delwel R, Horsman S, Moorhouse MJ, van der Spek PJ, Lowenberg B, Valk PJM. HeatMapper: powerful combined visualization of gene expression profile correlations, genotypes, phenotypes and sample characteristics. BMC Bioinforma. 2006; 7:337.

    Article  Google Scholar 

  45. Wickham H, Francois R. RStudio. dplyr: A Grammar of Data Manipulation. 2015. R package version 0.4.3.

  46. Wu HM, Tien YJ, Chen CH. GAP: A Graphical Environment for Matrix Visualization and Cluster Analysis. Comput Stat Data Anal. 2010; 54:767–78.

    Article  Google Scholar 

  47. Young MD, Wakefield MJ, Smyth GK, Oshlack A. Gene ontology analysis for RNA-seq: accounting for selection bias. Genome Biol. 2010; 11:R14.

    Article  PubMed  PubMed Central  Google Scholar 

Download references


BBK dedicates this work to the memory of his uncle, Taras Khomchuk. BBK wishes to acknowledge the financial support of the United States Department of Defense (DoD) through the National Defense Science and Engineering Graduate Fellowship (NDSEG) Program: this research was conducted with Government support under and awarded by DoD, Army Research Office (ARO), National Defense Science and Engineering Graduate (NDSEG) Fellowship, 32 CFR 168a. CW thanks Vytas Dargis-Robinson for assistance in early stages of the project.


Funding provided to BBK from the United States Department of Defense (DoD) through the National Defense Science and Engineering Graduate Fellowship (NDSEG) Program: this research was conducted with Government support under and awarded by DoD, Army Research Office (ARO), National Defense Science and Engineering Graduate (NDSEG) Fellowship, 32 CFR 168a.

Availability of data and materials

All source code has been made publicly available on Github at:

Authors’ contributions

BBK conceived the study. BBK and JRH wrote the code. CW participated in the management of the source code and its coordination. BBK wrote the paper. All authors read and approved the final manuscript.

Competing interests

The authors declare that they have no competing interests.

Consent for publication

Not applicable.

Ethics approval and consent to participate

This study does not involve humans, human data or animals.

Author information

Authors and Affiliations


Corresponding author

Correspondence to Bohdan B. Khomtchouk.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver ( applies to the data made available in this article, unless otherwise stated.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Khomtchouk, B., Hennessy, J. & Wahlestedt, C. MicroScope: ChIP-seq and RNA-seq software analysis suite for gene expression heatmaps. BMC Bioinformatics 17, 390 (2016).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: