Skip to content

Latest commit

 

History

156 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GenoPlotter: a user-friendly browser tool for plotting quantitative data relative to genomic loci

Justin S Cha1, Olivia WM Lang1, Benjamin O Beer2, B Franklin Pugh1, William KM Lai1,3*

1Department of Molecular Biology and Genetics, Cornell University, USA
2College of Agriculture and Life Sciences, Cornell University, USA
3Department of Computational Biology, Cornell University, USA
*Corresponding author

Correspondence: wkl29@cornell.edu

Abstract

Line plots of quantitative data relative to genomic loci, or composite plots, have become a crucial way to quickly convey biomolecular snapshots of specific genomic features. They have been used to represent and understand chromatin accessibility, transcription factor occupancy, DNA sequence grammar, and other aspects of gene regulation. It is important even for experimental scientists not well-versed in computation to quickly generate and manipulate such plots to maximize the clarity of their findings. We present GenoPlotter, an interactive browser tool that allows users to easily produce publication-ready composite plots with adjustable settings tailored for quantitative omics data. These settings include strand separation, composite scaling, and smoothing among other useful settings. GenoPlotter also allows users to save a session as a JSON configuration file that can easily be sent to other users and loaded on another instance. GenoPlotter provides a way for scientists to easily optimize the interpretability of their composite plots with broad applications to omics data.

GenoPlotter supports dual deployment modes:

  • Local Mode (local.html): Standalone web app requiring no server - load and visualize data entirely in the browser
  • Server Mode (server.html): Full-stack deployment with Node.js backend for efficient querying of large BIGWIG files

Prerequisites

For the local version, any modern web browser will work (e.g., Chrome, Firefox, Safari, etc.). To deploy the server version, a remote server (ubuntu supported) is required to host the API and genomic BIGWIG files.

Getting started

Local mode (no server required)

First, clone this repository with git clone https://github.com/CEGRcode/GenoPlotter.git. Then simply open local.html using an internet browser.

Server setup

The remote version of GenoPlotter requires a table of BIGWIG files formatted as a tab-separated table:

name	forward	reverse
sample1	/path/to/sample1.forward.bigwig	/path/to/sample1.reverse.bigwig
...

BIGWIG files can be absolute paths or http(s) URLs.

You can optionally include a table of normalization factors also formatted as a tab-separated table:

name	method1	method2	...
sample1	1.23	4.56	...
...

Ubuntu

On your remote server:

  1. Clone this repository with git clone https://github.com/CEGRcode/GenoPlotter.git
  2. Run setup script (make sure you have sudo privileges) GenoPlotter/server_setup_scripts/setup-ubuntu.sh /path/to/bigwig_table.txt /path/to/normalization_factors.txt

Running the server

  1. Open up a background shell with tmux new -s GenoPlotter
  2. Run the server with node GenoPlotter/js/api/server.js

Then your GenoPlotter instance can be accessed by entering the remote server's IP address into an internet browser.

To stop the server, enter the background shell with tmux a -t GenoPlotter and interrupt the server with Ctrl+C.

Saving plots

Users can save the plot as an SVG by clicking the "Download as SVG" button, which gives the option of saving it with or without text labels.

save_svg_screenshot

Users can also save the session as a plain text JSON file with the "Export session (JSON)" button.

save_json_screenshot

The JSON file is easily shareable with other users and can be loaded by clicking the "Import session (JSON)" button. Note that the server version can only load composites with a name matching one of its listed samples. The local version will load any session JSON. An example JSON file is provided in sample_inputs/example_config.json.

load_json_screenshot

A Python script to generate the plot SVG from a JSON session on the command line is provided in python/plot_from_json.py.

Examples

Local mode

First, create a composite by clicking the green "+" button in the Composite settings table header:

local_create-composite_screenshot

An example input file is provided in sample_inputs/local/12141_Reb1_composite.out, as generated by Scriptmanager according to the ChIP-exo tutorial. To view the data in GenoPlotter simply drag the file and drop it on the first row in the table as shown below:

local_file-drag_screenshot

The result should look something like this:

local_result_screenshot

Server mode

An example set of inputs is provided in sample_inputs/server, from Louder et al 2024. To set it up on a remote ubuntu server, run:

GenoPlotter/server_setup_scripts/setup-ubuntu.sh GenoPlotter/sample_inputs/server/sample_bigwig_table.txt GenoPlotter/sample_inputs/server/sample_normalization_factors.txt

Then you can visit the page by typing your remote server's IP address into your web browser. It should look like this:

server_landing_screenshot

To load the reference points, simply click the "Load BED file" button and select the file to upload (note that all genomic regions in the BED file must be the same width):

server_load-bed_screenshot

Then check boxes in the targets list below to view the data for the corresponding samples:

server_check-targets_screenshot

About

Genomic composite visualization

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages