Abstract
Background
High-throughput sequencing often provides a foundation for experimental analyses in the life sciences. For many such methods, an intermediate layer of bioinformatics data analysis is the genomic signal track constructed by short read mapping to a particular genome assembly. There are many software tools to visualize genomic tracks in a web browser or with a stand-alone graphical user interface. However, there are only few command-line applications suitable for automated usage or production of publication-ready visualizations.
Results
Here we present svist4get, a command-line tool for customizable generation of publication-quality figures based on data from genomic signal tracks. Similarly to generic genome browser software, svist4get visualizes signal tracks at a given genomic location and is able to aggregate data from several tracks on a single plot along with the transcriptome annotation. The resulting plots can be saved as the vector or high-resolution bitmap images. We demonstrate practical use cases of svist4get for Ribo-Seq and RNA-Seq data.
Conclusions
svist4get is implemented in Python 3 and runs on Linux. The command-line interface of svist4get allows for easy integration into bioinformatics pipelines in a console environment. Extra customization is possible through configuration files and Python API. For convenience, svist4get is provided as pypi package. The source code is available at https://bitbucket.org/artegorov/svist4get/
Electronic supplementary material
The online version of this article (10.1186/s12859-019-2706-8) contains supplementary material, which is available to authorized users.
Keywords: Genomic tracks, Visualization, Next-generation sequencing, High-throughput sequencing, Ribo-Seq, RNA-Seq, Python, Genome browser
Background
Next-generation sequencing gave birth to multiple high-throughput methods of the life sciences, many of which are based on mapping short sequence reads to an existing genome assembly. Visualization of mapped read densities and computationally derived genome signal tracks is one of the most routine tasks in bioinformatics sequencing data analysis. One approach is the usage of dedicated genome browsers. The most popular universal tools such as UCSC Genome Browser [1] or Zenbu [2] are web-based and allow interactive exploration of existing genome annotation along with uploaded user data. However, in some cases, it is not convenient to upload the user data to a remote server, and the data can be visualized and explored with the help of stand-alone applications with graphical user interface such as Integrated Genome Viewer [3] and Integrated Genome Browser [4], or even directly in the console environment [5]. Finally, there are hybrid approaches, for example, BioUML bioinformatics platform [6] provides genome browsing functionality in both web-based and stand-alone versions.
Web-based genome browsers are great for exploratory data analysis of processed public data, but stand-alone tools are better suited for generation of custom paper-quality graphics, and for exploring data from ongoing or private experiments. In addition, it is often convenient to have a programmatic way to generate multiple images for several genomic loci. There are several existing tools aimed specifically to solve this task via scripting or command-line interface (Table 1). Among the most advanced tools, there are Gviz [7] and ggbio [8], the Bioconductor R packages dedicated to the production of paper-quality figures of genomic tracks and annotations. Users preferring command-line utilities can use fluff [9] and ngs.plot [10]. These tools provide some advanced functions for data analysis but allow only a minimalistic approach to the visualization of genomic track segments in particular genomic windows. Here we present svist4get, the software tool allowing detailed paper-quality visualization of signal tracks along transcriptome annotation at a particular genomic location.
Table 1.
svist4get | fluff | ngs.plot | ggbio | Gviz | ASCIIGenome | |
---|---|---|---|---|---|---|
Command-line interface | yes | yes | yes | no | no | yes |
Programming language | Python | Python | R, Python | R | R | Java |
API | yes | no | no | yes | yes | no |
Output | pdf, png | png | png, tiff | pdf, png | pdf, png | console (text) |
Vector graphics output | yes | no | no | yes | yes | no |
Reference | [9] | [10] | [8] | [7] | [5] |
All the listed tools can function in Linux environment and support bed or bedGraph format for genomic signal tracks and gtf or gff for genomic annotation. Most of the tools are not focused on visualization of genomic windows and include advanced functions for data analysis or exploration.
Implementation
Svist4get is implemented in Python 3 and uses multiple pypi packages (argparse, biopython [11], configs, reportlab, pybedtools [12], wand, wheel). Pypi ‘wand’ package and ImageMagick are utilized for pdf-to-png conversion. Svist4get was developed and tested in Linux environment. The python svist4get package is available in pypi (python3 -m pip install svist4get), the source code and example data are provided in Additional file 1. Details of svist4get installation are given in Additional file 2.
As input data, svist4get supports bedGraph format for genomic signals and gtf format of the genome annotation. As the output data, svist4get can generate vector graphics in pdf and export raster graphics in png. ImageMagick is used to provide raster (png) output.
Given a particular genomic window and a set of genomic signal tracks, svist4get automatically performs moving-average smoothing of the signal tracks, if necessary, taking into account the image width and the visible length of the genomic window. However, svist4get is a pure visualization tool, thus the technical data conversion and pre-processing, such as read depth normalization, should be performed with external tools, such as deeptools [13], bedtools [14], or UCSC utilities [15].
To facilitate application of svist4get in standard scenarios and data exploration, the command line interface covers several practical use cases that arise in transcriptomic studies, without additional effort for user-side scripting. Furthermore, svist4get provides a Python API allowing additional customization and programmatic usage from within a Python program. The use cases and examples of svist4get results are described in the next section.
Results and discussion
Svist4get capabilities are demonstrated in [16], where figures were produced with svist4get Python API. Here we show several practical use cases of the command-line interface by visualizing particular genomic windows related to genes and transcripts using existing genome annotation. The command line parameters to reproduce the presented images are provided in Additional file 2.
The basic cases (Figs. 1 and 2) are illustrated by using yeast ribosome profiling (Ribo-Seq) and RNA-Seq data from [17] downloaded from GWIPs-viz [18], and yeast genome reference annotation from Ensembl [19]. For convenience, in the svist4get package, we include truncated sample data that is used for demonstration purposes. Visualization of tissue-specific expression of different transcript isoforms (Fig. 3) uses mouse Ribo-Seq data [20, 21] that was downloaded from GWIPs-viz [18, 22] and GENCODE M13 [23] mouse genome annotation.
Basic visualization of genomic windows
We employed svist4get to generate a visualization of the genomic window containing the YFL031W transcript of HAC1 gene (Fig. 1). Based on genome annotation and a transcript identifier, svist4get selects a genomic window that includes a particular transcript. Alternative scenarios include the selection of a genomic window based on gene identifier and visualization of all transcripts in a given window (Additional file 2). Svist4get renders the transcript structure (based on genome annotation) as the top track, below it places the signal tracks (based on data in bedGraph format), and the structure of open reading frames (0, + 1, + 2, based on the nucleotide sequence of the displayed window) is shown at the bottom.
Visualizing a genomic window at the single-nucleotide resolution
We also used svist4get to show a surrounding region of a translation initiation site of DFG16 yeast gene (Fig. 2), including an upstream open reading frame (ORF). The general layout of tracks in Fig. 2 is similar to that of Fig. 1. An additional track is used to show arbitrary genomic segments with user-defined labels (upstream ORF and CDS). A smaller genomic region surrounding DFG16 translation initiation site was selected based on transcript ID. A wider template (the predefined configuration file) allowed single-nucleotide resolution.
Visualizing ribosome occ2upancy in overlapping transcripts
We also show a multi-track visualization illustrating differential ribosome occupancy in mouse kidney and liver Ribo-Seq data (Fig. 3). Reconcilable parts of introns of two annotated transcripts are collapsed (red vertical marks on the transcript structure tracks) to facilitate a non-interrupted view of the translated shortened open reading frame that is specific to the liver.
Advanced features and customization
A basic bedGraph track is potentially useful to display various transcriptomic and genomic signals, such as DNase-Seq or ChIP-Seq. However, it is often necessary to visually separate signals on the primary and the reverse complementary DNA strands. To this end, svist4get provides paired bedGraph tracks, which use a single Y-axis to plot signals from a given pair of bedGraph files in the positive and negative value ranges (Fig. 4). Figure 4 also demonstrates multiple highlighting by showcasing translated segments of the MATa locus transcripts.
The visualization of svist4get is highly customizable. Some essential options, such as custom track coloring, are available directly through the command-line interface. Other parameters, such as color palette, bitmap DPI setting, font typeface, and page size are defined in configuration files (see Additional file 2 for details). The package includes default color palette and editable configuration files for generating figures to fit one- and two-column layout of an A4 page.
Conclusions
Data from high-throughput sequencing requires specialized visualization tools. Here, we present svist4get, which produces publication-quality images of signal tracks along transcript structure in arbitrary genomic windows. We believe svist4get provides a reasonable compromise between tools with advanced R APIs and user-friendly graphical interfaces and can be useful as a component of bioinformatics pipelines as well as a stand-alone tool for data exploration.
Availability and requirements
Project name: svist4get.
Project home page: https://bitbucket.org/artegorov/svist4get
Operating system(s): Linux.
Programming language: Python 3.
Other requirements: pypi packages (argparse, biopython, configs, reportlab, pybedtools, wand, wheel), ImageMagick (OS-level requirement for wand).
License: WTFPL http://www.wtfpl.net
Additional files
Acknowledgments
We thank Ilya Vorontsov and Andrey Buyan for valuable feedback and testing the software.
Funding
The work was primarily supported by a Russian Federation grant (14.W03.31.0012). NGS data analysis pipeline was supported by Russian Foundation for Basic Research (grant 18–34-20024 to IVK).
Availability of data and materials
No datasets were generated during the current study. The samples of yeast data of [17] analyzed during this study are included in this published article and its supplementary information files. The mouse data of [20, 21] are available at GWIPs-viz [18].
Authors’ contributions
AAE implemented the program and prepared the figures; EAS performed code review, refactoring and testing; ASA, SED, and VNG designed the use cases and suggested key features; IVK supervised the project and drafted the manuscript together with AAE. All the authors have participated in the manuscript preparation.
Ethics approval and consent to participate
Not applicable.
Consent for publication
Not applicable.
Competing interests
The authors declare that they have no competing interests.
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Contributor Information
Artyom A. Egorov, Email: artyom.egorov@hotmail.com
Ivan V. Kulakovskiy, Email: ivan.kulakovskiy@gmail.com
References
- 1.Fujita PA, Rhead B, Zweig AS, Hinrichs AS, Karolchik D, Cline MS, et al. The UCSC genome browser database: update 2011. Nucleic Acids Res. 2011;39 Database issue:D876–82. 10.1093/nar/gkq963. [DOI] [PMC free article] [PubMed]
- 2.Severin J, Lizio M, Harshbarger J, Kawaji H, Daub CO, Hayashizaki Y, et al. Interactive visualization and analysis of large-scale sequencing datasets using ZENBU. Nat Biotechnol. 2014;32:217–219. doi: 10.1038/nbt.2840. [DOI] [PubMed] [Google Scholar]
- 3.Thorvaldsdóttir H, Robinson JT, Mesirov JP. Integrative genomics viewer (IGV): high-performance genomics data visualization and exploration. Brief Bioinform. 2013;14:178–192. doi: 10.1093/bib/bbs017. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 4.Freese NH, Norris DC, Loraine AE. Integrated genome browser: visual analytics platform for genomics. Bioinformatics. 2016;32:2089–95. 10.1093/bioinformatics/btw069. [DOI] [PMC free article] [PubMed]
- 5.Beraldi D. ASCIIGenome: a command line genome browser for console terminals. Bioinformatics. 2017;33:1568–1569. doi: 10.1093/bioinformatics/btx007. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 6.Valeev T, Yevshin I, Kolpakov F. BioUML Genome Browser. Virtual Biol. 2013;1:e8. doi: 10.12704/vb/e8. [DOI] [Google Scholar]
- 7.Hahne F, Ivanek R. Methods in molecular biology. 2016. Visualizing genomic data using Gviz and bioconductor; pp. 335–351. [DOI] [PubMed] [Google Scholar]
- 8.Yin T, Cook D, Lawrence M. Ggbio: an R package for extending the grammar of graphics for genomic data. Genome Biol. 2012;13:R77. doi: 10.1186/gb-2012-13-8-r77. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 9.Georgiou G, van Heeringen SJ. Fluff: exploratory analysis and visualization of high-throughput sequencing data. PeerJ. 2016;4:e2209. doi: 10.7717/peerj.2209. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 10.Shen L, Shao N, Liu X, Nestler E. Ngs.Plot: quick mining and visualization of next-generation sequencing data by integrating genomic databases. BMC Genomics. 2014;15:284. doi: 10.1186/1471-2164-15-284. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 11.Cock PJA, Antao T, Chang JT, Chapman BA, Cox CJ, Dalke A, et al. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics. 2009;25:1422–1423. doi: 10.1093/bioinformatics/btp163. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 12.Dale RK, Pedersen BS, Quinlan AR. Pybedtools: a flexible Python library for manipulating genomic datasets and annotations. Bioinformatics. 2011;27:3423–3424. doi: 10.1093/bioinformatics/btr539. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 13.Ramírez F, Dündar F, Diehl S, Grüning BA, Manke T. DeepTools: a flexible platform for exploring deep-sequencing data. Nucleic Acids Res. 2014:W187–91. [DOI] [PMC free article] [PubMed]
- 14.Quinlan AR. BEDTools: the Swiss-Army tool for genome feature analysis. Curr Protoc Bioinforma. 2014;8:11.12.1–11.1234. doi: 10.1002/0471250953.bi1112s47. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 15.Meyer LR, Zweig AS, Hinrichs AS, Karolchik D, Kuhn RM, Wong M, et al. The UCSC genome browser database: extensions and updates 2013. Nucleic Acids Res. 2013;41(Database issue):D64–D69. doi: 10.1093/nar/gks1048. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 16.Makeeva DS, Lando AS, Anisimova AS, Egorov AA, Logacheva MD, Penin AA, et al. Translatome and transcriptome analysis of TMA20 (MCT-1) and TMA64 (eIF2D) knockout yeast strains: Data Br. 2019;23:103701. 10.1016/j.dib.2019.103701. [DOI] [PMC free article] [PubMed]
- 17.Albert FW, Muzzey D, Weissman JS, Kruglyak L. Genetic influences on translation in yeast. PLoS Genet. 2014;10:e1004692. doi: 10.1371/journal.pgen.1004692. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 18.Michel AM, Kiniry SJ, O’Connor PBF, Mullan JP, Baranov PV. GWIPS-viz: 2018 update. Nucleic Acids Res. 2018;46:D823–D830. doi: 10.1093/nar/gkx790. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 19.Zerbino DR, Achuthan P, Akanni W, Amode MR, Barrell D, Bhai J, et al. Ensembl 2018. Nucleic Acids Res. 2018;46:D754–D761. doi: 10.1093/nar/gkx1098. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 20.Castelo-Szekely V, Arpat AB, Janich P, Gatfield D. Translational contributions to tissue specificity in rhythmic and constitutive gene expression. Genome Biol. 2017;18:116. doi: 10.1186/s13059-017-1222-2. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 21.Janich P, Arpat AB, Castelo-Szekely V, Lopes M, Gatfield D. Ribosome profiling reveals the rhythmic liver translatome and circadian clock regulation by upstream open reading frames. Genome Res. 2015;25:1848–1859. doi: 10.1101/gr.195404.115. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 22.Michel AM, Fox G, M. Kiran A, De Bo C, O’Connor PBF, Heaphy SM, et al. GWIPS-viz: development of a ribo-seq genome browser. Nucleic Acids Res 2014;42:D859-D864. [DOI] [PMC free article] [PubMed]
- 23.Harrow J, Frankish A, Gonzalez JM, Tapanari E, Diekhans M, Kokocinski F, et al. GENCODE: the reference human genome annotation for the ENCODE project. Genome Res. 2012;22:1760–1774. doi: 10.1101/gr.135350.111. [DOI] [PMC free article] [PubMed] [Google Scholar]
Associated Data
This section collects any data citations, data availability statements, or supplementary materials included in this article.
Supplementary Materials
Data Availability Statement
No datasets were generated during the current study. The samples of yeast data of [17] analyzed during this study are included in this published article and its supplementary information files. The mouse data of [20, 21] are available at GWIPs-viz [18].