A set of tools in Python for multiscale graph correlation and other statistical tests

pip install mgcpy==0.4.0


The R version is available on CRAN and https://github.com/neurodata/r-mgc. The MATLAB version is available at https://github.com/neurodata/mgc-matlab.


Coverage Status Build Status PyPI PyPI - Downloads DockerHub DOI Documentation Status License PEP8 Code Climate

mgcpy is a Python package containing tools for independence testing using multiscale graph correlation and other statistical tests, that is capable of dealing with high dimensional and multivariate data.


mgcpy aims to be a comprehensive independence testing package including commonly used independence tests and additional functionality such as two sample independence testing and a novel random forest-based independence test. These tests are not only included to benchmark MGC but to have a convenient location for users if they would prefer to utilize those tests instead. The package utilizes a simple class structure to enhance usability while also allowing easy extension of the package for developers. The package can be installed on all major platforms (e.g. BSD, GNU/Linux, OS X, Windows)from Python Package Index (PyPI) and GitHub.


The official documentation with usage is at: https://mgc.neurodata.io/ ReadTheDocs: https://mgcpy.readthedocs.io/en/latest/

System Requirements

Hardware requirements

mgcpy package requires only a standard computer with enough RAM to support the in-memory operations.

Software requirements

OS Requirements

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

  • macOS: Mojave (10.14.1)
  • Linux: Ubuntu 16.04

Python Dependencies

mgcpy mainly depends on the Python scientific stack.


Installation Guide:

Install from PyPi

pip3 install mgcpy

Install from Github

git clone https://github.com/neurodata/mgcpy
cd mgcpy
python3 setup.py install
  • sudo, if required
  • python3 setup.py build_ext --inplace # for cython, if you want to test in-place, first execute this

Setting up the development environment:

  • To build image and run from scratch:

    • Install docker
    • Build the docker image, docker build -t mgcpy:latest .
      • This takes 10-15 mins to build
    • Launch the container to go into mgcpy's dev env, docker run -it --rm --name mgcpy-env mgcpy:latest
  • Pull image from Dockerhub and run:

    • docker pull tpsatish95/mgcpy:latest or docker pull tpsatish95/mgcpy:development
    • docker run -it --rm -p 8888:8888 --name mgcpy-env tpsatish95/mgcpy:latest or docker run -it --rm -p 8888:8888 --name mgcpy-env tpsatish95/mgcpy:development
  • To run demo notebooks (from within Docker):

    • cd demos
    • jupyter notebook --ip --no-browser --allow-root
    • Then copy the url it generates, it looks something like this: http://(0de284ecf0cd or
    • Edit this: (0de284ecf0cd or to:, in the above link and open it in your browser
    • Then open mgc.ipynb
  • To mount/load local files into docker container:

    • Do docker run -it --rm -v <local_dir_path>:/root/workspace/ -p 8888:8888 --name mgcpy-env tpsatish95/mgcpy:latest, replace <local_dir_path> with your local dir path.
    • Do cd ../workspace when you are inside the container to view the mounted files. The mgcpy package code will be in /root/code directory.

MGC Algorithm's Flow


Power Curves


This project is covered under the Apache 2.0 License.