- Notifications
You must be signed in to change notification settings - Fork22
A python package for constructing and analysing minimum spanning trees.
License
knaidoo29/mistree
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Author | Krishna Naidoo |
Version | 2.0.0 |
Repository | https://github.com/knaidoo29/mistree |
Documentation | https://knaidoo29.github.io/mistreedoc/ |
Theminimum 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 publicPython
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 ak-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 calculatingN-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.
numpy
numba
matplotlib
scipy
scikit-learn
For testing you will requirenose
orpytest
.
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 youare 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.gitcd mistree
and install by either running
pip install . [--user]
or
python setup.py buildpython 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.gitcd mistreepip install -e . [--user]
From themistree
directory you can then test the install usingnose
:
python setup.py test
or usingpytest
:
python -m pytest
You should now be able to import the module:
importmistreeasmist
In depth documentation and tutorials are providedhere.
The tutorials in the documentation are supplied as ipython notebooks which can be downloaded fromhere or can be run online usingbinder.
You can citeMiSTree
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}}
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) emailkrishna.naidoo.11@ucl.ac.uk.
About
A python package for constructing and analysing minimum spanning trees.