A picture of me in the snow.

Peter Macgregor

Research Associate at the University of Edinburgh



STAG: Spectral Toolkit of Algorithms for Graphs

STAG is an open-source C++ library for efficient spectral graph algorithms. I am developing this library with He Sun as part of his fellowship titled "Efficient Spectral Algorithms for Massive and Dynamic Graphs", which is funded by the UK Engineering and Physical Sciences Research Council (EPSRC, EP/T00729X/1).

The project is under active development and the project website will be kept up to date with the latest status. For now, you can find the source code in the following GitHub repositories.

Local Clustering for Conflict Data

There is a web-app here which demonstrates our local clustering algorithm for finding densely connected clusters. It allows you to interactively explore the clusters returned on the global conflict dataset for different time periods.

Image Segmentation with Spectral Clustering

Spectral clustering is a popular technique for image segmentation. In our paper "A Tighter Analysis of Spectral Clustering, and Beyond", we discovered that using fewer eigenvectors for image segmentation with spectral clustering often gives better results. This python script available on GitHub gives a high-level API for image segmentation with spectral clustering, using this new discovery.


python segment.py pic.jpeg picSegmented.jpeg 40

© 2023 Peter Macgregor