X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=formatmatrix.h;h=859b78ab2b72569344ccf7c9485de76333ca5ae3;hp=a02ef6cc27ac634eda25ec0c5b7cbc81b13c121a;hb=1a20e24ee786195ab0e1cccd4f5aede7a88f3f4e;hpb=e1cf60b82a48d4d96e3a696a2d221c56cfb0b298 diff --git a/formatmatrix.h b/formatmatrix.h index a02ef6c..859b78a 100644 --- a/formatmatrix.h +++ b/formatmatrix.h @@ -13,17 +13,56 @@ #include "mothur.h" #include "listvector.hpp" #include "nameassignment.hpp" +#include "counttable.h" +//********************************************************************************************************************** +// This class takes a distance matrix file and converts it to a file where each row contains all distances below the cutoff +// for a given sequence. + +// Example: + /* 5 + A + B 0.01 + C 0.015 0.03 + D 0.03 0.02 0.02 + E 0.04 0.05 0.03 0.02 + + becomes + + 0 4 1 0.01 2 0.015 3 0.03 4 0.04 + 1 4 0 0.01 2 0.03 3 0.02 4 0.05 + 2 4 0 0.015 1 0.03 3 0.02 4 0.03 + 3 4 0 0.03 1 0.02 2 0.02 4 0.02 + 4 4 0 0.04 1 0.05 2 0.03 3 0.02 + + column 1 - sequence name converted to row number + column 2 - numDists under cutoff + rest of line - sequence row -> distance, sequence row -> distance + + if you had a cutoff of 0.03 then the file would look like, + + 0 3 1 0.01 2 0.015 3 0.03 + 1 3 0 0.01 2 0.03 3 0.02 + 2 4 0 0.015 1 0.03 3 0.02 4 0.03 + 3 4 0 0.03 1 0.02 2 0.02 4 0.02 + 4 2 2 0.03 3 0.02 + + This class also creates a vector of ints, rowPos. + + rowPos[0] = position in the file of distances related to sequence 0. + If a sequence is excluded by the cutoff, it's rowPos = -1. +*/ //********************************************************************************************************************** class FormatMatrix { public: - FormatMatrix(){ } + FormatMatrix(){ m = MothurOut::getInstance(); } virtual ~FormatMatrix() {} - virtual void read(NameAssignment*){}; + virtual int read(NameAssignment*){ return 1; } + virtual int read(CountTable*){ return 1; } void setCutoff(float c) { cutoff = c; } ListVector* getListVector() { return list; } @@ -35,6 +74,7 @@ protected: float cutoff; string distFile; vector rowPos; + MothurOut* m; }; //**********************************************************************************************************************