/*****************************************************************/
/*  University of Nebraska-Lincoln                               */
/*  Department of Electrical Engineering                         */
/*  Bioinformatics Group                                         */
/*  Sam Way                                                      */
/*****************************************************************/

nSpect 
Version: 1.0
Release date: 8/25/12

/*****************************************************************/
/*  Requirements.                                                */
/*****************************************************************/
nSpect requires GLUT, the OpenGL Utility Toolkit. 

*NOTE*: GLUT is typically pre-installed on Mac OS X.  

To install GLUT on Linux (using apt-get):
sudo apt-get install libglut3-dev

/*****************************************************************/
/*  Building nSpect.                                             */
/*****************************************************************/
nSpect is a standard makefile-based project written in C++.
1.  Build with "make".
2.  Run "./nSpect -h" for a list of command-line parameters. 

/*****************************************************************/
/*  Using nSpect.                                                */
/*****************************************************************/
Command-line parameters: 
-i : Specify input file.
-o : Specify output file. (Default: "./outfile.txt")
-c : Specify color file.
-d : Specify display settings file.
-l : Specify label file.
-h : Print help screen.

The input file (-i) to the program is a distance matrix (similarity matrix) with the following format:
1.  First line of the file specifies the dimension of the matrix
2.  Subsequent lines start with a label for the item in the matrix, followed by a tab-delimited list of values, denoting the corresponding row of the distance matrix. 
3.  All values should be on a scale of 0.0 to 1.0, where 1.0 represents maximum dissimilarity. 

The output file (-o) specifies the file to which the distance matrix should be exported.  

The color file (-c) supplies the set of desired RGBA values for objects.  The zero-indexed line number can be used to specify an object's color in the display settings file.  To specify the background color of the scene, place a single "*" in front of the RGB/RGBA code.  

Expected format:
#ee91c1e0
#787878ff
*#000000
#ff0000

The label file (-l) contains one label per line and is used to relabel objects.  

The display settings file (-d) allows the user to specify the color, shape, and size of each object.  Each line contains three space-delimited values: <color_index> <shape_index> <size>

Sizes:
1 = Tiny
2 = Small
3 = Medium
4 = Large (*DEFAULT*)
5 = Extra Large

Shapes: 
0 = Sphere 
1 = Cube
2 = Pyramid
3 = Diamond

Example usage:  /path/to/nSpect -i ./test.dm -c ./test.color -d ./test.display -l ./test.labels
where "/path/to/" is replaced by the directory where the nSpect executable is located. 

/*****************************************************************/
/*  In-program.                                                  */
/*****************************************************************/
e : Export distances to output file
l : Rotate camera LEFT
r : Rotate camera RIGHT
u : Rotate camera UP
d : Rotate camera DOWN
i : Zoom IN
o : Zoom OUT
s : Shake/perturb objects
j : Jumble/randomize locations

Clicking on the screen will select all objects under the cursor and write their names to the console window.  