Building code in Ubuntu is recommended.
- Clone this repository - [psne]](https://github.com/ywryoo/psne)
- Download qwt 6.1.3 and nmslib 1.5.3
- Install QT 5. Commercial license is not needed.
- Install build tools and gsl library to compile qwt
sudo apt-get install build-essential libgl1-mesa-dev- Locate qwt source files to
/usr/local/qwt-6.1.3and build it
cd /usr/local/qwt-6.1.3
make- set LD_LIBRARY_PATH for qwt at ~/.bashrc
LD_LIBRARY_PATH="/usr/local/qwt-6.1.3/lib:$LD_LIBRARY_PATH"- Install cmake, boost, libgsl0, libeigen3 to compile nmslib
sudo apt-get install cmake libgsl0-dev libeigen3-dev libboost-all- locate nmslib and build it by using command below - for setting release mode with fixed location
cmake \
-DCMAKE_INSTALL_PREFIX=$HOME/NonMetrLibRelease \
-DCMAKE_BUILD_TYPE=Release .- set qwt and nmslib path at
psne.proif location is changed. qmake psne.procd ./bin && ./scatterplot
- If you do not use GUI, install qt dev tools instead of QT5 to complie psne
sudo apt-get install qt5-default, libqt5svg5-dev- if you made .dat file from pixelsne matlab wrapper, you can use the data without parameter by using .dat extension as input file name. labels are single numbers, data should be formatted like LargeVis.
- detailed command is presented when executed.
If output option is provided(option is availabled in cli only), logs are generated.
- *_iter_n.log: N, D, Y, C(error) is written by binary. you can use this log as input to see the result.
- *_variables.txt: given variables
- *_time_label.txt: timestamps for iterations. first line is init time of vis, next line is iter 1, and so on.
This project uses ANNOY, LargeVis, PixelSNE, QT and QWT with corresponding documents and papers.
There are diffrent licenses for each source code respectively. ANNOY and LargeVis takes Apache License 2.0, pixelsne has no License yet(This repository is continued work of pixelsne), QT and QWT is LGPL or similar and others are LGPL by Ryangwook Ryoo.