UpSetR

An R implementation of the UpSet set visualization technique published by Lex, Gehlenborg, et al..

https://github.com/hms-dbmi/upsetr

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: nature.com
  • Committers with academic emails
    2 of 16 committers (12.5%) from academic institutions
  • Institutional organization owner
    Organization hms-dbmi has institutional domain (dbmi.hms.harvard.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords

ggplot2 hidivelab rstats upset upsetr visualization

Keywords from Contributors

plotly visualisation
Last synced: 6 months ago · JSON representation

Repository

An R implementation of the UpSet set visualization technique published by Lex, Gehlenborg, et al..

Basic Info
Statistics
  • Stars: 802
  • Watchers: 37
  • Forks: 161
  • Open Issues: 145
  • Releases: 21
Topics
ggplot2 hidivelab rstats upset upsetr visualization
Created over 10 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License

README.md

UpSetR

Technique

UpSetR generates static UpSet plots. The UpSet technique visualizes set intersections in a matrix layout and introduces aggregates based on groupings and queries. The matrix layout enables the effective representation of associated data, such as the number of elements in the aggregates and intersections, as well as additional summary statistics derived from subset or element attributes.

For further details about the original technique see the UpSet website. You can also check out the UpSetR shiny app. Here is the source code for the shiny wrapper.

A Python package called py-upset to create UpSet plots has been created by GitHub user ImSoErgodic.

Citation

If you use UpSetR in a paper, please cite:

Jake R Conway, Alexander Lex, Nils Gehlenborg UpSetR: An R Package for the Visualization of Intersecting Sets and their Properties doi: https://doi.org/10.1093/bioinformatics/btx364

The original technique and the interactive visualization tool implementing the approach are described here:

Alexander Lex, Nils Gehlenborg, Hendrik Strobelt, Romain Vuillemot, Hanspeter Pfister,
UpSet: Visualization of Intersecting Sets,
IEEE Transactions on Visualization and Computer Graphics (InfoVis '14), vol. 20, no. 12, pp. 1983–1992, 2014.
doi: https://doi.org/10.1109/TVCG.2014.2346248

Sample Data

Sample data sets for UpSetR are included in the package and can be loaded like this:

R movies <- read.csv( system.file("extdata", "movies.csv", package = "UpSetR"), header=T, sep=";" ) mutations <- read.csv( system.file("extdata", "mutations.csv", package = "UpSetR"), header=T, sep = ",")

The movie data set created by the GroupLens Lab and curated by Bilal Alsallakh and the mutations data set was originally created by the TCGA Consortium and represents mutations for the 100 most mutated genes in a glioblastoma multiforme cohort.

Examples

In addition to the examples shown here, we have included a range of UpSetR plots in the paper about the R package, which can be found in a separate GitHub repository.

Vignettes

There are currently four vignettes that explain how to use the features included in the UpSetR package: * Basic Usage * Queries * Attribute Plots * Set Metadata

Demo

A view of the UpSet plot with additional plots based on elements in the intersections.

Image

R upset(movies,attribute.plots=list(gridrows=60,plots=list(list(plot=scatter_plot, x="ReleaseDate", y="AvgRating"), list(plot=scatter_plot, x="ReleaseDate", y="Watches"),list(plot=scatter_plot, x="Watches", y="AvgRating"), list(plot=histogram, x="ReleaseDate")), ncols = 2)) A view of UpSetR mimicking the plot published by Lex & Gehlenborg http://www.nature.com/nmeth/journal/v11/n8/abs/nmeth.3033.html

image

R upset(mutations, sets = c("PTEN", "TP53", "EGFR", "PIK3R1", "RB1"), sets.bar.color = "#56B4E9", order.by = "freq", empty.intersections = "on")

An example using two set queries (war movies and noir movies) along with attribute plots comparing the average rating (top) and average rating vs the number of times the movies have been watched (bottom).

image

R upset(movies, attribute.plots=list(gridrows = 100, ncols = 1, plots = list(list(plot=histogram, x="AvgRating",queries=T), list(plot = scatter_plot, y = "AvgRating", x = "Watches", queries = T))), sets = c("Action", "Adventure", "Children", "War", "Noir"), queries = list(list(query = intersects, params = list("War"), active = T), list(query = intersects, params = list("Noir"))))

Download

Install the latest released version from CRAN

R install.packages("UpSetR")

Download the latest development code of UpSetR from GitHub using devtools with

R devtools::install_github("hms-dbmi/UpSetR")

Owner

  • Name: Harvard Medical School - Department of Biomedical Informatics
  • Login: hms-dbmi
  • Kind: organization
  • Location: Boston

GitHub Events

Total
  • Issues event: 1
  • Watch event: 44
  • Issue comment event: 3
  • Pull request event: 1
  • Fork event: 10
Last Year
  • Issues event: 1
  • Watch event: 44
  • Issue comment event: 3
  • Pull request event: 1
  • Fork event: 10

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 346
  • Total Committers: 16
  • Avg Commits per committer: 21.625
  • Development Distribution Score (DDS): 0.182
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
JakeConway j****5@g****m 283
Nils Gehlenborg n****s@g****m 25
Nils Gehlenborg n****s@h****u 7
Alexander Lex a****x@s****u 5
Nils Gehlenborg n****s@o****l 5
RichardJActon r****n@g****m 4
Alan O'Callaghan a****n@f****m 3
Richard JActon r****f@g****m 3
mworkentine m****e@g****m 3
Jake Conway j****y@J****l 2
Alan O'Callaghan a****n@o****m 1
David Bernick d****k@g****m 1
JakeConway J****5@g****m 1
Jonathan Carroll j****o@j****u 1
colinandrus a****n@g****m 1
timelyportfolio k****l@t****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 106
  • Total pull requests: 19
  • Average time to close issues: 11 months
  • Average time to close pull requests: about 1 year
  • Total issue authors: 98
  • Total pull request authors: 18
  • Average comments per issue: 2.65
  • Average comments per pull request: 0.53
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • CPerscheid (2)
  • DrZhaoJie (2)
  • marwa38 (2)
  • ngehlenborg (2)
  • ghost (2)
  • AritriSanyal (2)
  • skarunan (2)
  • aryehjc (1)
  • robertamig (1)
  • sfd99 (1)
  • domenico-simone (1)
  • jbp7 (1)
  • shaman-narayanasamy (1)
  • makis23 (1)
  • bowenli37 (1)
Pull Request Authors
  • TTTPOB (4)
  • Mahammad-123 (2)
  • MichaelChirico (2)
  • eeenilsson (1)
  • olivroy (1)
  • jdblischak (1)
  • jonocarroll (1)
  • g1o (1)
  • alexhbnr (1)
  • AlexisDerumigny (1)
  • GuangchuangYu (1)
  • drag05 (1)
  • YY-SONG0718 (1)
  • bioShaun (1)
  • danalvarez (1)
Top Labels
Issue Labels
enhancement (2) bug (1) question (1)
Pull Request Labels

Packages

  • Total packages: 4
  • Total downloads:
    • cran 19,707 last-month
  • Total docker downloads: 252,659
  • Total dependent packages: 20
    (may contain duplicates)
  • Total dependent repositories: 92
    (may contain duplicates)
  • Total versions: 62
  • Total maintainers: 1
cran.r-project.org: UpSetR

A More Scalable Alternative to Venn and Euler Diagrams for Visualizing Intersecting Sets

  • Versions: 18
  • Dependent Packages: 17
  • Dependent Repositories: 86
  • Downloads: 19,707 Last month
  • Docker Downloads: 252,659
Rankings
Forks count: 0.4%
Stargazers count: 0.5%
Dependent repos count: 2.5%
Downloads: 3.3%
Dependent packages count: 3.9%
Average: 5.0%
Docker downloads count: 19.8%
Maintainers (1)
Last synced: 7 months ago
proxy.golang.org: github.com/hms-dbmi/UpSetR
  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/hms-dbmi/upsetr
  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
conda-forge.org: r-upsetr
  • Versions: 2
  • Dependent Packages: 3
  • Dependent Repositories: 6
Rankings
Dependent repos count: 13.9%
Average: 15.1%
Stargazers count: 15.4%
Forks count: 15.6%
Dependent packages count: 15.6%
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.0 depends
  • ggplot2 * imports
  • grDevices * imports
  • gridExtra * imports
  • methods * imports
  • plyr * imports
  • scales * imports
  • stats * imports
  • utils * imports
  • knitr * suggests