dab89c1682e091dfa3780ce95359ebea9f6b7d52 braney Thu May 18 09:49:17 2017 -0700 add licensing info to optimalLeaf library diff --git src/optimalLeaf/Tree.hh src/optimalLeaf/Tree.hh index f7831aa..eaf50d3 100644 --- src/optimalLeaf/Tree.hh +++ src/optimalLeaf/Tree.hh @@ -1,38 +1,44 @@ +/* This code provided by Ziv Bar-Joseph with the explicit understanding that + * no licensing is required for it to be used in the UCSC Genome Browser + * as long as reference is made to this paper: + * https://www.ncbi.nlm.nih.gov/pubmed/12801867 + */ + // -------------------------------------------------------------------- // Tree.hh // data structure for the hierarchical clustering tree. // Used to compute initial and optimal similarities, and to manipulate // (based on the optimal ordering) the ordering the tree nodes descendants. // ------------------------------------------------------------------------- #ifndef TREE_HH #define TREE_HH #include "Leaf.hh" class Tree { private: Tree *left,*right; // left and right subtrees int numLeafs; Leaf **allLeafs; float **mat; // similarity matrix int nodeNum; // id for this subtree public: Tree(int index,float **m); Tree(Tree *t1,Tree *t2,int nNum); float **giveMat() {return mat;} int giveNumLeafs() {return numLeafs;} Leaf **giveLeafs() {return allLeafs;} int compDist(int imp); int compDist(int imp,int tot1,int tot2); int *returnOrder(float *bestDist,int imp); float curDist(float **m); int findRight(); int findLeft(); int *initOrder(); void fillArray(int *array,int s,int l); void compTree(LeafPair *best,int *res,int start,int last,int l); int isLeaf() {return(numLeafs == 1);} int giveIndex() {return nodeNum;} int lastTree(int imp,int n1,int n2); }; #endif