GithubHelp home page GithubHelp logo

sujhnkc / mistree Goto Github PK

View Code? Open in Web Editor NEW

This project forked from knaidoo29/mistree

0.0 0.0 0.0 31.59 MB

A python package for constructing and analysing minimum spanning trees.

License: MIT License

Python 72.46% Fortran 5.47% TeX 3.81% Jupyter Notebook 18.26%

mistree's Introduction

MiSTree

Author: Krishna Naidoo
Version: 1.2.0
Homepage: https://github.com/knaidoo29/mistree
Documentation: https://knaidoo29.github.io/mistreedoc/

Build Status codecov PyPI version status DOI License: MIT Binder ascl

Introduction

The minimum spanning tree (MST), a graph constructed from a distribution of points, draws lines between pairs of points so that all points are linked in a single skeletal structure that contains no loops and has minimal total edge length. The MST has been used in a broad range of scientific fields such as particle physics, in astronomy and cosmology. Its success in these fields has been driven by its sensitivity to the spatial distribution of points and the patterns within. MiSTree, a public Python package, allows a user to construct the MST in a variety of coordinates systems, including Celestial coordinates used in astronomy. The package enables the MST to be constructed quickly by initially using a k-nearest neighbour graph (k NN, rather than a matrix of pairwise distances) which is then fed to Kruskal's algorithm to construct the MST. MiSTree enables a user to measure the statistics of the MST and provides classes for binning the MST statistics (into histograms) and plotting the distributions. Applying the MST will enable the inclusion of high-order statistics information from the cosmic web which can provide additional information to improve cosmological parameter constraints. This information has not been fully exploited due to the computational cost of calculating N-point statistics. MiSTree was designed to be used in cosmology but could be used in any field which requires extracting non-Gaussian information from point distributions.

Dependencies

  • Python 2.7 or 3.4+
  • numpy
  • matplotlib
  • scipy
  • scikit-learn
  • f2py (should be installed with numpy)

For testing you will require nose or pytest.

Installation

MiSTree can be installed as follows:

pip install mistree [--user]

The --user is optional and only required if you don’t have write permission. If you are using a windows machine this may not work, in this case (or as an alternative to pip) clone the repository,

git clone https://github.com/knaidoo29/mistree.git
cd mistree

and install by either running

pip install . [--user]

or

python setup.py build
python setup.py install

Similarly, if you would like to work and edit mistree you can clone the repository and install an editable version:

git clone https://github.com/knaidoo29/mistree.git
cd mistree
pip install -e . [--user]

From the mistree directory you can then test the install using nose:

python setup.py test

or using pytest:

python -m pytest

You should now be able to import the module:

import mistree as mist

Documentation

In depth documentation and tutorials are provided here.

Tutorials

The tutorials in the documentation are supplied as ipython notebooks which can be downloaded from here or can be run online using binder.

Citing

You can cite MiSTree using the following BibTex:

@ARTICLE{Naidoo2019,
       author = {{Naidoo}, Krishna},
        title = "{MiSTree: a Python package for constructing and analysing Minimum Spanning Trees}",
      journal = {The Journal of Open Source Software},
         year = "2019",
        month = "Oct",
       volume = {4},
       number = {42},
          eid = {1721},
        pages = {1721},
          doi = {10.21105/joss.01721},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2019JOSS....4.1721N}
}

Support

If you have any issues with the code or want to suggest ways to improve it please open a new issue (here) or (if you don't have a github account) email [email protected].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.