Skip to content

Add locuszoom to galaxy visualizations. #20339

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 13 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions client/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ const INSTALL_PLUGIN_BUILD_IDS = [
"vitessce",
"vizarr",
"vtk",
"locuszoom",
]; // todo: derive from XML

const args = process.argv.slice(2);
Expand Down
125 changes: 125 additions & 0 deletions config/plugins/visualizations/locuszoom/config/locuszoom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE visualization SYSTEM "../../visualization.dtd">
<visualization name="LocusZoom" embeddable="true">
<description>LocusZoom Manhattan Plot</description>
<data_sources>
<data_source>
<model_class>HistoryDatasetAssociation</model_class>
<test test_attr="ext">gwas_bgzip</test>
</data_source>
</data_sources>
<params>
<param required="true">dataset_id</param>
</params>
<settings>
<input>
<label>Add tabix file for your primary dataset</label>
<help>Can be created with tabix</help>
<name>tabix</name>
<type>data</type>
<extension>gwas_tabix.gz</extension>
</input>
<input>
<label>Select a chromosome</label>
<name>chromosome</name>
<type>integer</type>
<min>1</min>
<value>1</value>
</input>
<input>
<label>Select start position</label>
<name>start</name>
<type>integer</type>
<min>1</min>
<value>1</value>
</input>
<input>
<label>Select end position</label>
<name>end</name>
<type>integer</type>
<min>1</min>
<value>999999</value>
</input>
<input>
<label>Are the p-values in -log10?</label>
<name>is_neg_log_pvalue</name>
<type>boolean</type>
<value>false</value>
</input>
<input>
<label>Column for chromosomes</label>
<name>chrom_col</name>
<type>integer</type>
<value>1</value>
</input>
<input>
<label>Column for positions</label>
<name>pos_col</name>
<type>integer</type>
<value>2</value>
</input>
<input>
<label>Column for reference allele</label>
<name>ref_col</name>
<type>integer</type>
<value>6</value>
</input>
<input>
<label>Column for alternative allele</label>
<name>alt_col</name>
<type>integer</type>
<value>7</value>
</input>
<input>
<label>Column for p-values</label>
<name>pvalue_col</name>
<type>integer</type>
<value>13</value>
</input>
<input>
<label>Column for beta</label>
<name>beta_col</name>
<type>integer</type>
<value>9</value>
</input>
<input>
<label>Column for standard error of beta</label>
<name>stderr_beta_col</name>
<type>integer</type>
<value>10</value>
</input>
</settings>
<requirements>
<requirement type="npm" version="0.0.3" package="@galaxyproject/locuszoom"/>
</requirements>
<entry_point entry_point_type="script" src="dist/index.js" css="dist/index.css" />
<tests>
<test>
<param name="dataset_id" value="http://cdn.jsdelivr.net/gh/galaxyproject/galaxy-test-data/1.gwas_bgzip" ftype="gwas_bgzip" />
</test>
<test>
<param name="dataset_id" value="http://cdn.jsdelivr.net/gh/galaxyproject/galaxy-test-data/1.gwas_tabix.gz" ftype="gwas_tabix.gz" />
</test>
</tests>
<help format="markdown"><![CDATA[
# What is LocusZoom?

LocusZoom is a specialized tool designed to create interactive Manhattan plots for visualizing results from genome-wide association studies (GWAS).
It helps researchers explore genetic association signals within specific chromosomal regions.

## Key Features

- **Interactive Manhattan Plots**: Visualize GWAS results with zoom and pan capabilities to focus on genomic regions of interest.
- **Chromosome-Specific Visualization**: Plots are rendered for one chromosome at a time within a user-specified genomic region.
- **Tabix-Indexed File Support**: Efficiently handles large datasets by working with tabix-indexed files, enabling fast data retrieval.

This tool is essential for detailed examination of association signals in GWAS, facilitating interpretation of complex genomic data.

The input dataset for GWAS results must have size of at least 64ko. Accepted extenstions are gwas_bgzip for this primary dataset and gwas_tabix.gz for the corresponding tabix.

For more information:

Boughton, A. P. et al. LocusZoom.js: interactive and embeddable visualization of genetic association study results. Bioinformatics (2021) doi:10.1093/bioinformatics/btab186.

]]></help>
</visualization>
11 changes: 11 additions & 0 deletions config/plugins/visualizations/locuszoom/static/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions lib/galaxy/config/sample/datatypes_conf.xml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,10 @@
<datatype extension="bed_tabix.gz" type="galaxy.datatypes.interval:BedTabix" mimetype="application/octet-stream" display_in_upload="true"/>
<datatype extension="gff_tabix.gz" type="galaxy.datatypes.interval:GffTabix" mimetype="application/octet-stream" display_in_upload="true"/>
<datatype extension="bgzip" type="galaxy.datatypes.binary:CompressedArchive" subclass="true" display_in_upload="true"/>
<!-- GWAS results datatypes to be used with locuszoom visualization plugin -->
<datatype extension="gwas_bgzip" type="galaxy.datatypes.binary:CompressedArchive" subclass="true" display_in_upload="true"/>
<datatype extension="gwas_tabix.gz" type="galaxy.datatypes.binary:CompressedArchive" subclass="true" display_in_upload="true"/>
<!-- -->
<datatype extension="vcf_bgzip" type="galaxy.datatypes.tabular:VcfGz" display_in_upload="true">
<display file="igv/vcf.xml"/>
<converter file="vcf_bgzip_to_tabix_converter.xml" target_datatype="tabix"/>
Expand Down