/HYPPO-X

Algebraic topology based header only library to extract insight of complex high dimensional data.

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

This is a header only library built in C++ to extract the insights of high dimensional complex dataset. We used algebraic topology to extract the structure of data. The library generates graph in a JSON format. Using the library generated object, we are building an interactive visualization website using PHP and D3.

Library

The library uses gcc>=5.0, c++14 and requires Boost with version 1.48.0 or more recent. It is a multi-platform library and compiles on Linux, Mac OSX and Visual Studio 2015.

New version

We have built a desktop based solution named Hyppo-XD.

Citation

@misc{kamruzzaman2019hyppo,
  title={HYPPO-X: A software library for visual analytics on complex high dimensional data},
  author={Kamruzzaman, Methun},
  year={2019}
}

Paper

M. Kamruzzaman, A. Kalyanaraman, B. Krishnamoorthy, P.S. Schnable, S. Hey. Hyppo-X: A Scalable Exploratory Framework for Analyzing Complex Phenomics Data. IEEE/ACM Transactions on Computational Biology and Bioinformatics, TCBB'19.

Website

We are building an interactive website with the output generated by the library. One can use the library output to their own website. We are building our website using php framework named [Codeigniter](https://codeigniter.com/) and javascript framework named [D3](https://d3js.org/).

Library + Website

Follow the steps to integrate our website with the library. We are trying to make it as a one solution but now it is a kind of separate solution but if you follow the below instructions then you can use it.

1. Create a folder named `Data` under the directory `Website`.
2. Under `Data` directory, create three folders named `csv`, `json` and `tmp`.
3. Allow `csv` folder read only permission, `tmp` folder write only permission and 'json' folder both read and write permission.
4. Place your csv data file to `Website/Data/csv` folder and remove space from file name.
5. Create a folder under `Website/Data/json` and give the folder name same as the csv file name. Give both read and write permission here. For instance, if the csv file name `abcd.csv` then create a folder named `abcd`.
5. During running the library, set `-RD` param to `Website/Data/csv` and set `-WD` param to `Website/Data/json`
6. The library will read the csv file from the location specified in `-RD` parameter. Similarly, it will write the json file to the folder (for instance, `abcd`) in location specified in `-WD` parameter.
7. If `-RD` parameter is not specified then the code will search the csv file from the source file location.
8. If `-WD` parameter is not specified then the code will create output json file to the source file location.
7. Refresh the website to observe the topological object.