Skip to content

Latest commit

 

History

History
63 lines (45 loc) · 2.07 KB

README.md

File metadata and controls

63 lines (45 loc) · 2.07 KB

Circular-Coordinates

Circular coordinates from persistent cohomology

Circular-Coordinates is an all in one class that facilitates creating and plotting circular coordinates from persistent cohomology functions hidden in your dataset.

Features

  • takes input data in the form of numpy array or pandas dataframe
  • utilizes the ripser library for fast persistent cohomology barcode calculation
  • Provides multiple ways of plotting and visualizing the output.

Setup

You can install the library directly from github or Pypi. PyQt5 is optional(only for visualizing plots in ide).

pip install PyQt5

pip install git+https://github.com/appliedtopology/circular-coordinates
OR
pip install circularcoordinates

Example usage

Circular coordinates can be calculated and visualized with only a few lines of code. The circular coordinates are outputted mapped between [0,1]. When visualising the coordinates are denoted by colors on the color wheel (with its values mapped to [0,1]). Thus forming a loop stretching from 0 to 1.

import pandas as pd
import circularcoordinates

df = pd.read_csv('malaria.csv')
features = df[['Weight', 'Glucose', 'Accuri', 'RBC']]

prime=11
circ=circularcoordinates.circular_coordinate(prime)
vertex_values=circ.fit_transform(features)
circ.plot_pca(features,vertex_values)

PCA PLOT

If we already have the ripser output dictionary we can directly compute the circular coordinates without recomputing the dictionary.

ripser_output=circ.rips
vertex_values=circ.circular_coordinate(ripser_output)

We can also plot the persistant homology barcodes

circ.plot_barcode(circ.rips['dgms'][1])

Barcode PLOT

Circular coordinates can also be plottted against external data to see what patterns emerge.

circ.plot_eps(df['Day Post Infection'],vertex_values)

Barcode PLOT

License

MIT