Skip to content
No description, website, or topics provided.
Jupyter Notebook Python
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DREiMac @ 3b36f44 Switching to new DREiMac submodule Aug 31, 2019
KTH Finished inline 4 video experiment Jul 16, 2016
pyhks @ de877a4 Adding 3D shapes lab Jun 14, 2018
shapes Decided to bundle the 3D meshes with the code Sep 1, 2019
shapes_nonrigid Decided to bundle the 3D meshes with the code Sep 1, 2019
.gitignore Add Python gitignore file Mar 2, 2020
.gitmodules
3DShapes.ipynb Decided to bundle the 3D meshes with the code Sep 1, 2019
Approximate Sparse Filtrations.ipynb Fixing approximate sparse filtrations, diffusion maps, and wasserstein Aug 31, 2019
Basic Shapes.ipynb Basic shapes updated Aug 31, 2019
BlackHole.jpg Adding black hole joke Feb 26, 2020
Cells.jpg Adding lower star example Feb 25, 2020
ClinicalAsymmetry.mp4 Updating video module to include quasiperiodic examples with vocal cords Jun 26, 2017
DiffusionMaps.py Updating diffusion maps lab Jun 14, 2018
DiffusionMapsAndTDA.ipynb Committing diffusion maps solution Sep 15, 2019
GeomUtils.py Making a killer projective coordinates plot for the line segment patches Jun 12, 2018
Handwaving_Deriv10_Block160_PCA10.ogg Forgot one of the videos Jul 13, 2016
Image Patches.ipynb Finished updating all labs Aug 31, 2019
LICENSE Initial commit Jun 28, 2016
LTR_ED_MucusBiphonCrop.ogg Mostly finished revising sliding window labs Jun 11, 2018
LowerStar.ipynb Adding black hole joke Feb 26, 2020
MusicFeatures.py Getting rid of dependency on librosa Jul 24, 2017
NormalPeriodicCrop.ogg Updating video module to include quasiperiodic examples with vocal cords Jun 26, 2017
PanIcon.png Adding some images I forgot to add Jul 18, 2016
README.md Add missing dependencies to README Mar 2, 2020
SlidingWindow1-Basics.ipynb Needed clear_output from IPython.display Feb 26, 2020
SlidingWindow2-PersistentHomology.ipynb Tightening plots, subsampling a couple of examples to make them faster Feb 26, 2020
SlidingWindow3-AudioApplications.ipynb Updating depracated video loading Feb 26, 2020
SlidingWindow4-Video.ipynb
Synthetic1DPeriodTests.py Working on KTH tests Jul 6, 2016
SyntheticCurves.py Updating libraries Jun 26, 2017
VideoStackTime.svg Adding progress on all modules Jun 29, 2016
VideoTools.py Updating depracated video loading Feb 26, 2020
Wasserstein And Bottleneck.ipynb Updating Wasserstein/Bottleneck example to use alpha Feb 25, 2020
Whinnie.png Adding some images I forgot to add Jul 18, 2016
horsewhinnie.wav Just about finished the video module. Also adding video and audio bin… Jul 13, 2016
journey.jpg Adding some images I forgot to add Jul 18, 2016
journey.wav Just about finished the video module. Also adding video and audio bin… Jul 13, 2016
jumpingjacks.ogg Just about finished the video module. Also adding video and audio bin… Jul 13, 2016
jumpingjackssliding.ogg Just about finished the video module. Also adding video and audio bin… Jul 13, 2016
speech.wav Just about finished the video module. Also adding video and audio bin… Jul 13, 2016

README.md

TDALabs

This series of Jupyter Notebooks serves as a walkthrough of topological data analysis, topological time series analysis (including rhythm analysis in music and periodicity / quasiperiodicity quantification in video), and 3D shape analysis. The main engine behind all of the code is a Python port of the ripser library.

This started off as a tutorial for the summer workshop "Mathematical Methods for High-Dimensional Data Analysis." Now it is used more generally to support pedagogical activities to support the NSF big data grant DKA-1447491, as well as assisting with the ICERM Summer Undergraduate Program and the workshop "Topological Data Analysis and Persistent Homology" in Levico Terme (Trento), Italy.

Suggested Order

For 4 sessions with 90 minutes each (as in Levico), the following order is suggested (with some wiggle room between sessions)

Session 1

  • Basic Shapes
  • Wasserstein And Bottleneck

Session 2

  • SlidingWindow1-Basics
  • SlidingWindow2-PersistentHomology
  • SlidingWindow3-AudioApplications
  • SlidingWindow4-Video

Session 3

  • Approximate Sparse Filtrations
  • Image Patches
  • Diffusion Maps And TDA

Session 4

  • 3D Shapes
  • Whatever is leftover

Installation Instructions

Below are instructions for installing and running these tutorials

Checking out code

git clone --recursive https://github.com/ctralie/TDALabs.git

Installing Jupyter Notebook And Other Dependencies

To run these modules, you will need to have Jupyter notebook installed with a Python 3 backend with numpy, scipy, and matplotlib, and ipywidgets. The easiest way to install this is with Anaconda:

https://www.anaconda.com/download/

Once you have downloaded and installed all of these packages, navigate to the root of this repository and type the following commands, which will install dependencies

pip install cechmate
pip install cython
pip install ripser
pip install imageio   (for SlidingWindow4-Video only)

Updating code / submodules

At times, some updates may have happened to submodule dependencies (pykhs for the heat kernel signature and dreimac for projective coordinates). To update these, type

git submodule update --init
git submodule update --remote

Installing ffmpeg

For loading video in SlidingWindow4-Video, you will need to install the ffmpeg binaries

Running the code

At the root of this directory, type

jupyter notebook

This will launch a browser window, where you can run the modules. Click on one of the files (e.g. Basic Shapes.ipynb) to begin

You can’t perform that action at this time.