Skip to content

anwarMZ/VIRUS-MVP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VIRUS-MVP

Viral lineages and variants pose high risk to global public health.

VIRUS-MVP is a heatmap-centric visualization web application that encodes mutational information across multiple groups, including SARS-CoV-2 lineages. The data visualized by VIRUS-MVP is generated by two external projects:

You can find deployed versions of this application (without user upload functionality) at https://virusmvp.org/.

app_interface

Installation

0. (If uploading your own data) Install Nextflow and/or Docker.

If you plan to run the app locally, you need local installations of both Nextflow and Docker for file uploads.

If you plan to run the app inside a Docker container, you only need Docker.

1. Clone the repository and its submodules

$ git clone [email protected]:cidgoh/VIRUS-MVP.git --recurse-submodules

2. Setup a virtual environment

You can use either venv or Conda for this step.

Using venv:

$ python3 -m venv myenv

$ source myenv/bin/activate

(myenv) $ pip install -r requirements.txt

Using Conda:

$ conda create --name=VIRUS-MVP

$ conda activate VIRUS-MVP

(VIRUS-MVP) $ pip install -r requirements.txt

3. Run the application

(myenv) $ python app.py

Go to http://0.0.0.0:8050/.

Note: if you do not run the application from the root directory, some of the JavaScript assets will not be compiled.

4. (If running the application through Docker)

It is a relatively simple setup.

$ docker-compose build

$ docker-compose up

Warning: our docker setup bind mounts the host socket to the container. You should use a socket proxy prior to deployment.

One currently unresolved issue: If you upload a file while the application is deployed through Docker, and then later attempt to upload a file while the application is deployed locally, the application will likely run into permission issues related to the nf-ncov-voc cache. You can fix this by removing all cache files in the nf-ncov-voc/ directory:

$ rm -r results work .nextflow .nextflow.log* capsule framework plugins secrets tmp

You may have to use sudo.

Usage

Click the help button help_btn at the top for an in-app explanation of the heatmap view.

legend

Heatmap view

The left axis encodes viral lineages. Lineages belonging to VOC are in bold, and lineages belonging to VOI are in italics. Actively circulating lineages are denoted with ⚠️.

The right axis encodes the number of genomic sequences analyzed for each lineage.

The top axis encodes the nucleotide position of lineage mutations, with respect to the reference genome.

The bottom axis encodes the amino acid position of lineage mutations, in the following format:

Genic mutations: {GENE}.{AMINO ACID POSITION WITHIN THAT GENE}

Intergenic: {NEAREST DOWNSTREAM GENE}. {NUMBER OF NUCLEOTIDES UPSTREAM}

The heatmap cells encode the presence of mutations. The color of these cells encodes mutation frequency. Insertions, deletions, functional mutations, and lineages with a sample size of one are encoded as follows:

heatmap_cells

Hovering over cells displays detailed mutation information. Clicking cells opens a modal with detailed mutation function descriptions, and their citations.

scroll_hover_click

Histogram

The histogram bars encode the total number of mutations across all visualized lineages every 100 nucleotide positions.

histogram_hover_scroll

Editing the visualization

There are several tools in the top of the interface that can be used to edit the visualization.

Clicking the select lineages btn select_lineages_btn opens a modal that allows you to rearrange and hide variants.

The mutation frequency slider allows you to filter heatmap cells by mutation frequency.

mutation_freq_slider

The clade defining switch allows you to filter in and out heatmap cells corresponding to non-clade defining mutations.

clade_defining_switch

Uploading data

The upload button upload_btn allows you to upload your own genomic data in FASTA or VCF format. You can find examples of files users can upload in test_data/.

You must have Nextflow and Conda installed to upload files.

Your first upload will take a while. Subsequent uploads will be faster.

Downloading data

The download button download_btn allows you to download a zip object containing surveillance reports for each reference variant. You can find examples of these reports in surveillance_reports/.

Nextflow-wrapped workflow for variant calling.

Repository for mutation functions.

Support

We encourage you to add any problems with the application as an issue in this repository, but you can also email us at [email protected].

Authors and acknowledgement

@ivansg44: Visualization development

@anwarMZ: Genomic analysis

@Anoosha-Sehar: Functional annotation

@miseminger: Functional annotation and data standardization

@despean: Application deployment

William Hsiao, Gary Van Domselaar, and Paul Gordon

The results here are in whole or part based upon data hosted at the Canadian VirusSeq Data Portal: https://virusseq-dataportal.ca/. We wish to acknowledge the following organisations/laboratories for contributing data to the Portal: Canadian Public Health Laboratory Network (CPHLN), CanCOGGeN VirusSeq, Saskatchewan - Roy Romanow Provincial Laboratory(RRPL), Nova Scotia Health Authority, Alberta ProvLab North(APLN), Queen's University / Kingston Health Sciences Centre, National Microbiology Laboratory(NML), BCCDC Public Health Laboratory, Public Health Ontario(PHO), Newfoundland and Labrador - Eastern Health, Unity Health Toronto, Ontario Institute for Cancer Research(OICR), Manitoba Cadham Provincial Laborator, and Manitoba Cadham Provincial Laboratory.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 92.6%
  • JavaScript 6.9%
  • Other 0.5%