All Projects → joiningdata → Lollipops

joiningdata / Lollipops

Licence: gpl-3.0
Lollipop-style mutation diagrams for annotating genetic variations.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Lollipops

Flowmarbles
Interactive diagrams of Kotlin Flow https://flowmarbles.com
Stars: ✭ 106 (-27.89%)
Mutual labels:  diagram
Nomnoml
The sassy UML diagram renderer
Stars: ✭ 1,685 (+1046.26%)
Mutual labels:  diagram
Somalier
fast sample-swap and relatedness checks on BAMs/CRAMs/VCFs/GVCFs... "like damn that is one smart wine guy"
Stars: ✭ 128 (-12.93%)
Mutual labels:  cancer-genomics
Ontodia
Ontodia data diagraming library
Stars: ✭ 107 (-27.21%)
Mutual labels:  diagram
Tikzcd Editor
A simple visual editor for creating commutative diagrams.
Stars: ✭ 1,627 (+1006.8%)
Mutual labels:  diagram
Somaticseq
An ensemble approach to accurately detect somatic mutations using SomaticSeq
Stars: ✭ 119 (-19.05%)
Mutual labels:  cancer-genomics
Blast Radius
Interactive visualizations of Terraform dependency graphs using d3.js
Stars: ✭ 1,376 (+836.05%)
Mutual labels:  diagram
Lancet
Microassembly based somatic variant caller for NGS data
Stars: ✭ 134 (-8.84%)
Mutual labels:  cancer-genomics
X6
🚀 JavaScript diagramming library that uses SVG and HTML for rendering.
Stars: ✭ 2,686 (+1727.21%)
Mutual labels:  diagram
Quiver
A modern commutative diagram editor for the web.
Stars: ✭ 1,799 (+1123.81%)
Mutual labels:  diagram
Flowy Vue
Vue Flowy makes creating flowchart or hierarchy chart functionality an easy task. Build automation software, mind mapping tools, organisation charts, or simple programming platforms in minutes by implementing the library into your project.
Stars: ✭ 107 (-27.21%)
Mutual labels:  diagram
Vscode Mermaid Preview
Previews Mermaid diagrams
Stars: ✭ 111 (-24.49%)
Mutual labels:  diagram
Vim Boxdraw
An ASCII box drawing plugin for Vim
Stars: ✭ 122 (-17.01%)
Mutual labels:  diagram
Wavedrom
🌊 Digital timing diagram rendering engine
Stars: ✭ 1,668 (+1034.69%)
Mutual labels:  diagram
Gojs React
A set of React components to manage GoJS Diagrams, Palettes, and Overviews
Stars: ✭ 130 (-11.56%)
Mutual labels:  diagram
Msisensor
microsatellite instability detection using tumor only or paired tumor-normal data
Stars: ✭ 103 (-29.93%)
Mutual labels:  cancer-genomics
Structurizr Php
🗺 https://structurizr.com library for PHP - generate architecture diagrams from code
Stars: ✭ 118 (-19.73%)
Mutual labels:  diagram
Umldoclet
Automatically generate PlantUML diagrams in javadoc
Stars: ✭ 138 (-6.12%)
Mutual labels:  diagram
Scaladiagrams
Generate class diagrams from scala source code
Stars: ✭ 130 (-11.56%)
Mutual labels:  diagram
Tybalt
Training and evaluating a variational autoencoder for pan-cancer gene expression data
Stars: ✭ 126 (-14.29%)
Mutual labels:  cancer-genomics

lollipops

Please cite this work as

  • Jay JJ, Brouwer C (2016) Lollipops in the Clinic: Information Dense Mutation Plots for Precision Medicine. PLoS ONE 11(8): e0160519. doi: 10.1371/journal.pone.0160519.

A simple 'lollipop' mutation diagram generator that tries to make things simple and easy by automating as much as possible. It uses the UniProt REST API and/or Pfam API to automate translation of Gene Symbols and lookup domain/motif features for display. If variant changes are provided, it will also annotate them to the diagram using the "lollipops" markers that give the tool it's name.

Example

Basic usage is just the gene symbol (ex: TP53) and a list of mutations (ex: R273C R175H T125 R248Q)

./lollipops TP53 R273C R175H T125 R248Q

TP53 Lollipop diagram with 4 marked mutations

More advanced usage allows for per-mutation color (e.g. sample type) and size specification (e.g. denoting number of samples), along with text labels, a legend for abbreviated domains, and more:

	./lollipops -legend -labels TP53 R248Q#[email protected] R273C R175H [email protected]

TP53 Lollipop diagram with 5 customized mutations

Usage

Usage: lollipops [options] {-U UNIPROT_ID | GENE_SYMBOL} [PROTEIN CHANGES ...]

Where GENE_SYMBOL is the official human HGNC gene symbol. This will use the official API to lookup the UNIPROT_ID. To skip the lookup or use other species, specify the UniProt ID with -U (e.g. -U P04637 for TP53)

Protein changes

Currently only point mutations are supported, and may be specified as:

<AMINO><CODON><AMINO><#COLOR><@COUNT>

Only CODON is required, and AMINO tags are not parsed.

Synonymous mutations are denoted if the first AMINO tag matches the second AMINO tag, or if the second tag is not present. Otherwise the non-synonymous mutation color is used. The COLOR tag will override using the #RRGGBB style provided. The COUNT tag can be used to scale the lollipop marker size so that the area is exponentially proportional to the count indicated. Examples:

R273C            -- non-synonymous mutation at codon 273
[email protected]           -- synonymous mutation at codon 125 with "5x" marker sizing
R248Q#00ff00     -- green lollipop at codon 248
R248Q#[email protected] -- green lollipop at codon 248 with "131x" marker sizing

N.B. Color must come before count in tags.

Diagram generation options

  -legend                 draw a legend for colored regions
  -syn-color="#0000ff"    color to use for synonymous mutation markers
  -mut-color="#ff0000"    color to use for non-synonymous mutation markers
  -hide-axis              do not draw the amino position x-axis
  -show-disordered        draw disordered regions on the backbone
  -show-motifs            draw simple motif regions
  -labels                 draw label text above lollipop markers
  -no-patterns            use solid fill instead of patterns (SVG only)

Output options

  -o=filename.png         set output filename (.png or .svg supported)
  -w=700                  set diagram pixel width (default = automatic fit)
  -dpi=300                set DPI (PNG output only)

Alternative input sources:

  -uniprot                use UniprotKB as an alternative to Pfam for
                          fetching domain/motif information
  -l=filename.json        use local file instead of Pfam API for graphic data
                            see: http://pfam.xfam.org/help#tabview=tab9

Installation

Head over to the Releases to download the latest version for your system in a simple command-line executable.

If you already have Go installed and want the bleeding edge, just go get -u github.com/joiningdata/lollipops to download the latest version.

Embedding

As of v0.97, lollipops is now easy to embed in other Go applications. The following code prints an SVG for TP53 and some mutations to standard output:

package main

import (
    "os"

    "github.com/joiningdata/lollipops/data"
    "github.com/joiningdata/lollipops/drawing"
)

func main() {
    uniprot_id := "P04637"
    mutations := []string{"R273C", "R175H", "[email protected]"}

    p53_domains, err := data.GetGraphicData(uniprot_id)
    if err != nil {
        panic(err)
    }

    drawing.DrawSVG(os.Stdout, mutations, p53_domains)
}

CONTRIBUTING

Please submit your bugs and features requests via the Issues tab. Be sure to search closed issues before submitting a new one in case the issue has been previously discussed. Pull Requests are welcome, but please create an issue beforehand to discuss significant changes.

Code contributions are expected to be properly formatted with go fmt, and generally adhere to the standard Golang review guidelines.

LICENSE

Lollipops is released under the GPL license. If your institution requires additional licensing options please contact the author.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].