Introduces spatial neighborhood information in dimensionality reduction methods for high-dimensional images.
Extends t-SNE such that similarities are based on a point's spatial neighborhood instead of only the high-dimensional point itself (see python_wrapper\example\example_multiple.py
for examples with UMAP and MDS).
To clone the repo and its external submodules (hnswlib, eigen, glfw, spdlog, pybind11, HDILib):
git clone --recurse-submodule https://github.com/biovault/Spidr/
Currently, tested on Windows 10 with Visual Studio 2019. Use cmake for setting up the project:
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
The standard cpp implementation uses the t-SNE implementation from the HDILib and Hnswlib for approximated nearest neighbor search. Other DR techniques might also be used, as shown in the python example below. To get around several HDILib build dependencies, this project uses the HDILibSlim, a version of the HDILib without dependencies.
On linux systems you need to make sure that some dependencies are installed, e.g. on Ubuntu:
sudo apt install libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev
By default, the cmake project creates two targets in addition to the library:
- See
example/SpidrExample.cpp
for an example on how to use the library in cpp. Set the cmake optionCREATE_EXAMPLE=OFF
to not create this target. - See
python_wrapper
for install intructions and an example on how to use the library in python. The example showcases spatially informed t-SNE, UMAP and MDS embeddings. Set cmake optionCREATE_PYTHON_WRAPPER=OFF
to not create this target.
All dependencies are either managed by vcpkg or are submodules of this repo. If you want to build the HDILib yourself, set the cmake option BUILD_HDILIB=OFF
and provide the variables HDILIB_ROOT, FLANN_ROOT, LZ4_ROOT. See the HDILib documentation for more detail on the HDILib and it's dependencies.
This library implements the methods presented in Incorporating Texture Information into Dimensionality Reduction for High-Dimensional Images (2022), published at PacificVis 2022. A preprint is available on arXiv 2202.09179, the conference talk recording and other supplemental material are available here.
@InProceedings { VVLEH22,
author = "Vieth, Alexander and Vilanova, Anna and Lelieveldt, Boudewijn P.F. and Eisemann, Elmar and H\öllt, Thomas",
title = "Incorporating Texture Information into Dimensionality Reduction for High-Dimensional Images",
booktitle = "2022 15th IEEE Pacific Visualization Symposium (PacificVis)",
pages = "11-20",
year = "2022",
doi = "10.1109/PacificVis53943.2022.00010",
keywords = "Mathematics of computing, Dimensionality reduction, Human-centered computing, Visualization techniques, Human-centered computing, Visual analytics",
url = "http://graphics.tudelft.nl/Publications-new/2022/VVLEH22"
}
@software{alexander_vieth_2022_6120880,
author = {Alexander Vieth},
title = {biovault/Spidr: PacificVis 2022},
month = feb,
year = 2022,
publisher = {Zenodo},
version = {v0.1},
doi = {10.5281/zenodo.6120880},
url = {https://doi.org/10.5281/zenodo.6120880}
}