Base modifications
We have developed a plugin to visualize the quantity of 4mC, 5mC, 5hmC, and 6 mA at single base-pair resolution. When studying 5mC, the modification is split into two (CG and CH; where H is any nucleotide expect G) sequence contexts for animals or three (CG, CHG, and CHH) sequence contexts for plants, as each context is established and/or maintained by different pathways with different functional roles [22]. Our plugin visualizes the quantity of methylation at each cytosine or adenine using a bar plot (Fig. 1), where values are positive or negative to signify the DNA strand. In most genome browsers, each sequence context must be shown as a different track (Fig. 1a). This is cumbersome when viewing multiple samples and makes it more difficult to determine overlap between context or samples. Our plugin is advantageous because, we color-code 4mC, 5mC, 5hmC, and 6 mA sequence contexts and display them on a single track (Fig. 1b, Additional file 1: Figure S1). However, focusing on a single context or modification can be important, thus our plugin offers several filtering options including by sequence context and base modification.
Small RNAs
Currently, JBrowse represents each sequenced RNA as a single read and is colored by sequenced strand (Fig. 2a). When analyzing smRNAs, strand alone does not always provide sufficient information; the size (nucleotides [nt]) of smRNA and strandedness indicate potential function [21]. For example, in plants, 21 nt microRNAs can be aligned to single strand and 24 nt small interfering RNAs can be aligned to both strands [27]. Products of RNA degradation, however, have varying sizes and align to one strand. To improve smRNA visualization, we color-code reads by smRNA size and retain strand information by placement of smRNAs within the track relative to the y-axis (Fig. 2b). This plugin also includes the ability to filter the reads in a track or multiple tracks by size, strand, and read quality.
Stranded read coverage
Quantitative coverage tracks are necessary for any worthwhile genome browser. It is important for visualizing DNA-protein interactions via ChIP-seq and chromatin accessibility via ATAC-seq where coverage is computed in a strand-independent manner. However, for strand-dependent data types, such as 5mC, small RNAs, and mRNAs, read coverage can greatly vary for opposite strands. The default coverage tracks are unable to handle this, thus we developed a plugin which shows stranded read coverage. For example, WGBS can have uneven coverage on both strands which can make only one strand seem methylated (Fig. 3a).
Motif density
Sequence motifs not only have important roles for protein binding, i.e. binding motifs, but can also impact chromatin formation [28] and recombination hotspots [29]. When correlating the frequency of a sequence motif with another characteristic, i.e. 5mC or histone modification localization, it is preferred to visualize motif density over larger regions compared to single base-pair resolution. To address this, we developed a plugin which visualizes sequence motif density across the genome as a heatmap (Fig. 3b). Users can input multiple motifs in a single track and IUPAC degenerate nucleotides are supported. We also include several options for heatmap coloring and density computation configuration options.
Exporting browser images
One of the most difficult tasks working with any genome browser is obtaining high-quality screenshots for presentations or publications. We have developed a plugin for JBrowse, which allows the user to take high quality and highly configurable screenshots without installing additional software. A dialog window allows users to set general, output, and track-specific configuration options (Fig. 4). Additionally, our plugin is able to create the screenshot with vector graphic objects, which is preferred for publication-quality screenshots, without needing to change the underlying track configuration parameters.
Customization
To improve user experience, we have developed several additional JBrowse plugins. These plugins include: (i) Selecting or deselecting all tracks in a category from a hierarchical track list; (ii) An easily customizable y-scale range and location; and (iii) An option to force a track to stay in “feature” view or “histogram” view regardless of the zoom.