mgc

R package for MGC code

https://github.com/neurodata/r-mgc

Science Score: 38.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
    3 of 8 committers (37.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

R package for MGC code

Basic Info
  • Host: GitHub
  • Owner: neurodata
  • License: apache-2.0
  • Language: R
  • Default Branch: master
  • Homepage:
  • Size: 145 MB
Statistics
  • Stars: 9
  • Watchers: 6
  • Forks: 10
  • Open Issues: 9
  • Releases: 0
Created almost 9 years ago · Last pushed over 5 years ago
Metadata Files
Readme License Citation

README.md

This R repo is a development branch, the actively developed repo is in Python at https://github.com/neurodata/hyppo.

Multiscale Graph Correlation (MGC)

CRAN Status Badge eLife Shield Downloads badge Zenodo Shield Travis

Contents

Overview

In modern scientific discovery, it is becoming increasingly critical to uncover whether one property of a dataset is related to another. The MGC (pronounced magic), or Multiscale Graph Correlation, provides a framework for investigation into the relationships between properties of a dataset and the underlying geometries of the relationships, all while requiring sample sizes feasible in real data scenarios.

Repo Contents

  • R: R package code.
  • docs: package documentation.
  • man: package manual for help in R session.
  • tests: R unit tests written using the testthat package.
  • vignettes: R vignettes for R session html help pages.

System Requirements

Hardware Requirements

The MGC package requires only a standard computer with enough RAM to support the operations defined by a user. For minimal performance, this will be a computer with about 2 GB of RAM. For optimal performance, we recommend a computer with the following specs:

RAM: 16+ GB
CPU: 4+ cores, 3.3+ GHz/core

The runtimes below are generated using a computer with the recommended specs (16 GB RAM, 4 cores@3.3 GHz) and internet of speed 25 Mbps.

Software Requirements

OS Requirements

This package is supported for Linux operating systems. The package has been tested on the following systems:

Linux: Ubuntu 20.04, 18.04 Mac OSX:
Windows:

Before setting up the MGC package, users should have R version 3.4.0 or higher, and several packages set up from CRAN.

Installing R version 3.4.2 on Ubuntu 16.04

the latest version of R can be installed by adding the latest repository to apt:

sudo echo "deb http://cran.rstudio.com/bin/linux/ubuntu xenial/" | sudo tee -a /etc/apt/sources.list gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9 gpg -a --export E084DAB9 | sudo apt-key add - sudo apt-get update sudo apt-get install r-base r-base-dev

which should install in about 20 seconds.

Package dependencies

Users should install the following packages prior to installing mgc, from an R terminal:

install.packages(c('ggplot2', 'reshape2', 'Rmisc', 'devtools', 'testthat', 'knitr', 'rmarkdown', 'latex2exp', 'MASS'))

which will install in about 80 seconds on a recommended machine.

Package Versions

The mgc package functions with all packages in their latest versions as they appear on CRAN on October 15, 2017. Users can check CRAN snapshot for details. The versions of software are, specifically: ggplot2: 2.2.1 reshape2: 1.4.2 Rmisc: 1.5 devtools: 1.13.3 testthat: 0.2.0 knitr: 1.17 rmarkdown: 1.6 latex2exp: 0.4.0 MASS: 7.3

If you are having an issue that you believe to be tied to software versioning issues, please drop us an Issue.

Installation Guide

From an R session, type:

require(devtools) install_github('neurodata/r-mgc', build_vignettes=TRUE) # install mgc with the vignettes require(mgc) # source the package now that it is set up vignette("MGC", package="mgc") # view one of the basic vignettes

The package should take approximately 20 seconds to install with vignettes on a recommended computer.

Instructions for Use

Please see the vignettes for help using the package:

vignette("MGC", package="mgc") vignette("Discriminability", package="mgc") vignette("simulations", package="mgc")

Pseudocode

Pseudocode for the methods employed in the mgc package can be found on the arXiv - MGC in Appendix C (starting on page 30).

Citation

For citing code or the paper, please use the citations found in citation.bib.

Reproducibility

MGC

All the code to reproduce any figures from https://arxiv.org/abs/1609.05148 is available here https://github.com/neurodata/mgc-paper.

Discriminability

Here, we describe how to reproduce the manuscript figures from the discriminability paper. To begin, clone this repository locally:

git clone https://github.com/neurodata/r-mgc.git

We assume that the directory r-mgc placed locally on the system is <package_root>. Note that all figures were stylized using Adobe Photoshop prior to submission.

  • Figure 1: Mini Sims Figure This figure demonstrates the behavior of discriminability, Fingerprinting, ICC/I2C2, and Kernel methods under a range of basic simulation settings in 1 dimension.

  • Figure 2: Multisim Figure This figure demonstrates the behavior of discriminability, ICC, and I2C2 under a variety of simulation benchmark settings. To execute the script with fresh data:

setwd('<package_root>/docs/discriminability/paper/simulations') source('shared_scripts.R`)

Note: the scripts will automatically multithread, however, the simulation benchmarks take quite a while to execute (1.5 days on a 96 core machine with 1 TB of RAM).

Using the included bound, one sample, and two sample data, you can proceed to duplicate the figure by opening the R notebook simulation plots, and executing the script.

  • Figure 3: 64 pipelines figure. To regenerate the source data for this portion of the manuscript, users can use the following two scripts from an R terminal:

``` setwd('/docs/discriminability/paper/discr_computation')

edit lines 17 and 18, and lines 210 and 211, and set to your local path where

preprocessed brains are located

source('./realdatadriver.R') # runs the discriminability calculations

edit lines 17 and 18, and lines 108 and 109, to the location of the

preprocessed brains

source('./realdatpermtesting.R') # runs the two sample testing ``` Again, the scripts will multithread, but can be expected to take approximately 3 days on a 96 core, 1 TB RAM machine.

To regenerate Figure 2 from the manuscript, users can execute the 64 Pipelines Figure notebook.

setwd('<package_root>/docs/discriminability/paper/dcor_fig') source('./dep_wt_driver.R')

Results can be expected to take 2 days on a 96 core, 1 TB machine.

To reproduce the figure, users can use the Effect Size Investigation notebook.

Owner

  • Name: neurodata
  • Login: neurodata
  • Kind: organization
  • Email: admin@neurodata.io
  • Location: everywhere

Citation (citation.bib)

@ARTICLE{Vogelstein2019mgc,
  title    = "Discovering and deciphering relationships across disparate data
              modalities",
  author   = "Vogelstein, Joshua T and Bridgeford, Eric W and Wang, Qing and
              Priebe, Carey E and Maggioni, Mauro and Shen, Cencheng",
  abstract = "Understanding the relationships between different properties of
              data, such as whether a genome or connectome has information
              about disease status, is increasingly important. While existing
              approaches can test whether two properties are related, they may
              require unfeasibly large sample sizes and often are not
              interpretable. Our approach, 'Multiscale Graph Correlation'
              (MGC), is a dependence test that juxtaposes disparate data
              science techniques, including k-nearest neighbors, kernel
              methods, and multiscale analysis. Other methods may require
              double or triple the number of samples to achieve the same
              statistical power as MGC in a benchmark suite including
              high-dimensional and nonlinear relationships, with dimensionality
              ranging from 1 to 1000. Moreover, MGC uniquely characterizes the
              latent geometry underlying the relationship, while maintaining
              computational efficiency. In real data, including brain imaging
              and cancer genetics, MGC detects the presence of a dependency and
              provides guidance for the next experiments to conduct.",
  journal  = "Elife",
  volume   =  8,
  month    =  jan,
  year     =  2019,
  keywords = "computational biology; data science; human; machine learning;
              neuroscience; statistics; systems biology",
  language = "en"
}

@techreport{Bridgeford2018_mgcpkg,
    author = {Bridgeford, Eric W and Shen, Censheng and Wang, Shangsi and Vogelstein, Joshua},
    doi = {10.5281/ZENODO.1246967},
    month = {may},
    title = {{Multiscale Graph Correlation}},
    url = {https://zenodo.org/record/1246967},
    year = {2018}
}

GitHub Events

Total
  • Member event: 1
Last Year
  • Member event: 1

Committers

Last synced: over 3 years ago

All Time
  • Total Commits: 497
  • Total Committers: 8
  • Avg Commits per committer: 62.125
  • Development Distribution Score (DDS): 0.078
Top Committers
Name Email Commits
Eric Bridgeford e****2@j****u 458
cshen6 c****6@j****u 11
Ronak Mehta r****4@g****m 11
joshua vogelstein j****o@j****u 6
Ben Falk f****n@g****m 5
Eric Bridgeford e****c@E****l 4
ssabrii 4****i@u****m 1
Sambit Panda 3****1@u****m 1
Committer Domains (Top 20 + Academic)
jhu.edu: 3

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 25
  • Total pull requests: 21
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 11
  • Total pull request authors: 7
  • Average comments per issue: 1.96
  • Average comments per pull request: 0.29
  • Merged pull requests: 16
  • 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
  • ebridge2 (9)
  • jovo (6)
  • TingsterX (2)
  • sampan501 (1)
  • davclark (1)
  • shu-hai (1)
  • MrAE (1)
  • annescharf (1)
  • junpenglao (1)
  • MaxKerney (1)
  • cshen6 (1)
Pull Request Authors
  • ebridge2 (14)
  • youjin1207 (2)
  • rmehta004 (1)
  • ssabrii (1)
  • sampan501 (1)
  • loftusa (1)
  • tpsatish95 (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 231 last-month
  • Total dependent packages: 2
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
cran.r-project.org: mgc

Multiscale Graph Correlation

  • Versions: 3
  • Dependent Packages: 2
  • Dependent Repositories: 0
  • Downloads: 231 Last month
Rankings
Forks count: 7.1%
Stargazers count: 17.9%
Dependent packages count: 29.8%
Average: 33.0%
Dependent repos count: 35.5%
Downloads: 74.6%
Maintainers (1)
Last synced: 10 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.4.0 depends
  • MASS * imports
  • abind * imports
  • boot * imports
  • energy * imports
  • raster * imports
  • stats * imports
  • ggplot2 * suggests
  • knitr * suggests
  • reshape2 * suggests
  • rmarkdown * suggests
  • testthat >= 2.1.0 suggests