NOTE: MGCPY HAS RECENTLY BEEN MOVED TO HYPPO. IT CONTAINS THE MOST UP TO DATE IMPLEMENTATION, A MORE USER-FRIENDLY API, AND FASTER TESTS, AMONG OTHER THINGS. MGCPY WILL NO LONGER BE UPDATED. THE NEW REPO CAN BE FOUND HERE: https://github.com/neurodata/hyppo.
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.
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.
- Overview
- Documentation
- System Requirements
- Installation Guide
- Setting up the development environment
- License
- Issues
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/
mgcpy
package requires only a standard computer with enough RAM to support the in-memory operations.
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
mgcpy
mainly depends on the Python scientific stack.
numpy
scipy
Cython
scikit-learn
pandas
seaborn
pip3 install mgcpy
git clone https://github.com/neurodata/mgcpy
cd mgcpy
python3 setup.py install
sudo
, if requiredpython3 setup.py build_ext --inplace # for cython
, if you want to test in-place, first execute this
-
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
ordocker pull tpsatish95/mgcpy:development
docker run -it --rm -p 8888:8888 --name mgcpy-env tpsatish95/mgcpy:latest
ordocker run -it --rm -p 8888:8888 --name mgcpy-env tpsatish95/mgcpy:development
-
To run demo notebooks (from within Docker):
cd demos
jupyter notebook --ip 0.0.0.0 --no-browser --allow-root
- Then copy the url it generates, it looks something like this:
http://(0de284ecf0cd or 127.0.0.1):8888/?token=e5a2541812d85e20026b1d04983dc8380055f2d16c28a6ad
- Edit this:
(0de284ecf0cd or 127.0.0.1)
to:127.0.0.1
, 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.
- Do
- Recreated Figure 2 in https://arxiv.org/abs/1609.05148, with the addition of MDMR and Fast MGC
This project is covered under the Apache 2.0 License.