SuperExactTest

Statistical testing and visualization of mult-set intersections

https://github.com/mw201608/superexacttest

Science Score: 20.0%

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

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: nature.com
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.4%) to scientific vocabulary

Keywords

intersection set statistics visualization
Last synced: 6 months ago · JSON representation

Repository

Statistical testing and visualization of mult-set intersections

Basic Info
  • Host: GitHub
  • Owner: mw201608
  • Language: R
  • Default Branch: master
  • Homepage:
  • Size: 1.59 MB
Statistics
  • Stars: 28
  • Watchers: 2
  • Forks: 5
  • Open Issues: 0
  • Releases: 3
Topics
intersection set statistics visualization
Created almost 8 years ago · Last pushed about 2 years ago
Metadata Files
Readme Funding

README.md

SuperExactTest CRAN Downloads Total downloads

Current version 1.1.2

Description

SuperExactTest is an R package for statistical testing and visualization of mult-set intersections.

Installation

SuperExactTest is available from CRAN so the simplest way to install in R is by running install.packages("SuperExactTest").

To install the latest update from here in github, run devtools::install_github("mw201608/SuperExactTest") in R.

Reference

Minghui Wang, Yongzhong Zhao, and Bin Zhang (2015) Efficient Test and Visualization of Multi-Set Intersections. Scientific Reports 5: 16923.

Vignette

Detailed description about the package and sample analysis code is available from vignette("set_html",package="SuperExactTest") (link) after installation.

SuperExactTest shiny

A shiny application has been deployed at shinyapps.io (see also github), allowing users to run and visualize SuperExactTest analysis online.

Examples

1 Show selected overlapping elements

``` library(SuperExactTest) set.seed(1234)

generate random strings

n=400 rstrings <- do.call(paste0, replicate(5, sample(LETTERS, n, TRUE), FALSE)) input=lapply(c(40,60,80,200),function(x,s) sample(s,x),s=rstrings) Result=supertest(input,n=n)

Plot the intersections with a split y-axis and

show elements of the intersections with no more than 20 elements

png('examples/ex1.png',width=2000,height=2000,res=300)

plot(Result, Layout="landscape", sort.by="size", keep=FALSE, bar.split=c(70,180), show.elements=TRUE, elements.cex=0.7, elements.list=subset(summary(Result)$Table,Observed.Overlap <= 20), show.expected.overlap=TRUE,expected.overlap.style="hatchedBox", color.expected.overlap='red')

dev.off()

``` sample output

Assign discrete colors to denote the sets that are involved in each intersection by setting color.on to NULL or a vector of colors. ```

png('examples/ex1color.png',width=2000,height=2000,res=300)

plot(Result, Layout="landscape", sort.by="size", keep=FALSE, bar.split=c(70,180), show.elements=TRUE, elements.cex=0.7, elements.list=subset(summary(Result)$Table,Observed.Overlap <= 20), show.expected.overlap=TRUE,expected.overlap.style="hatchedBox", color.expected.overlap='red', color.on = NULL)

dev.off()

```

sample output

2 Sort and/or subset intersection bars for plotting

As of version 1.0.7, we can change the order of the intersection bars in a customized way through option sort.by. For example, let us switch the orders of the fourth and fifth bars in the above figure. ```

First extract the intersection barcodes ordered by size

order1=names(sort(Result$overlap.sizes,decreasing=TRUE))

Then switch the orders of the fourth and fifth element

order2=order1[c(1:3,5,4,6:length(order1))] print(order1) print(order2)

Now plot with the new order

png('examples/ex2.png',width=2000,height=2000,res=300)

plot(Result, Layout="landscape", sort.by=order2, keep=FALSE, bar.split=c(70,180), show.elements=TRUE, elements.cex=0.7, elements.list=subset(summary(Result)$Table,Observed.Overlap <= 20), show.expected.overlap=TRUE,expected.overlap.style="hatchedBox", color.expected.overlap='red', color.on = NULL)

dev.off()

``` sample output

With this option sort.by, we can also show a subset of the intersection bars easily. Eg, let us plot the 10 largest overlaps. ``` order3=order1[1:10]

png('examples/ex2b.png',width=2000,height=2000,res=300)

plot(Result, Layout="landscape", sort.by=order3, bar.split=c(70,180), show.elements=TRUE, elements.cex=0.7, elements.list=subset(summary(Result)$Table,Observed.Overlap <= 20), show.expected.overlap=TRUE,expected.overlap.style="hatchedBox", color.expected.overlap='red', color.on = NULL)

dev.off()

``` sample output

3 Flip the bars upside down

We can also flip the bars upside down using option flip.vertical=TRUE. ```

png('examples/ex3.png',width=2000,height=2000,res=300)

plot(Result, Layout="landscape", sort.by=order2, keep=FALSE, bar.split=c(70,180), show.elements=TRUE, elements.cex=0.7, elements.list=subset(summary(Result)$Table,Observed.Overlap <= 20), show.expected.overlap=TRUE,expected.overlap.style="hatchedBox", color.expected.overlap='red', color.on = NULL, flip.vertical=TRUE)

dev.off()

``` sample output

4 Show fold enrichment

Show fold enrichment rather than overlp size on top of the bars (since v1.0.7.1). ```

png('examples/ex4.png',width=2000,height=2000,res=300)

plot(Result, Layout="landscape", sort.by=order2, keep=FALSE, bar.split=c(70,180), show.elements=TRUE, elements.cex=0.7, show.fold.enrichment=TRUE, elements.list=subset(summary(Result)$Table,Observed.Overlap <= 20),elements.rot=45, show.expected.overlap=TRUE,expected.overlap.style="hatchedBox", color.expected.overlap='red', color.on = NULL)

dev.off()

``` sample output

5 Place multiple SuperExactTest plots on the same page

We can combine multiple SuperExactTest plots on the same page by setting new.gridPage = FALSE. For example, to arrange two SuperExactTest figures side by side, we can: ```

png('examples/ex5.png',width=4000,height=2000,res=300)

grid.newpage() vp0 <- viewport(layout = grid.layout(1, 2)) vp1 <- viewport(layout.pos.col = 1, layout.pos.row = 1, name = "plotleft") vp2 <- viewport(layout.pos.col = 2, layout.pos.row = 1, name = "plotright") vps <- vpTree(vp0, vpList(vp1, vp2)) pushViewport(vps) seekViewport("plotleft") plot(Result, Layout="landscape", sort.by='size', keep=FALSE, bar.split=c(70,180), show.fold.enrichment=TRUE, show.expected.overlap=TRUE, expected.overlap.style="hatchedBox", color.expected.overlap='red', color.on = NULL, title = 'Figure A. Landscape layout', new.gridPage = FALSE) seekViewport("plotright") plot(Result, Layout="circular", sort.by='size', keep=FALSE, show.expected.overlap=TRUE,expected.overlap.style="hatchedBox", color.expected.overlap='red', color.on = NULL, title = 'Figure B. Circular layout', new.gridPage = FALSE)

dev.off()

``` sample output

Owner

  • Name: M Wang
  • Login: mw201608
  • Kind: user
  • Location: New York
  • Company: @IcahnInstitute

I am a statistical and quantitative geneticist at the Icahn School of Medicine at Mount Sinai.

GitHub Events

Total
  • Watch event: 1
  • Fork event: 2
Last Year
  • Watch event: 1
  • Fork event: 2

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 69
  • Total Committers: 2
  • Avg Commits per committer: 34.5
  • Development Distribution Score (DDS): 0.043
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
M Wang m****g@l****m 66
Wang m****g@m****u 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 8
  • Total pull requests: 0
  • Average time to close issues: about 1 month
  • Average time to close pull requests: N/A
  • Total issue authors: 5
  • Total pull request authors: 0
  • Average comments per issue: 2.63
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ilibarra (3)
  • capoony (2)
  • lucasrocmoreira (1)
  • ivingan01 (1)
  • Guan06 (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 341 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 9
  • Total maintainers: 1
cran.r-project.org: SuperExactTest

Exact Test and Visualization of Multi-Set Intersections

  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 341 Last month
Rankings
Stargazers count: 12.2%
Forks count: 14.2%
Average: 23.9%
Dependent repos count: 24.0%
Dependent packages count: 28.8%
Downloads: 40.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.1.0 depends
  • grid >= 3.1.0 depends
  • methods * depends
  • knitr * suggests
  • rmarkdown * suggests