1 #ifndef H_SuperTranscriptome 2 #define H_SuperTranscriptome 3 4 #include "IncludeDefine.h" 5 #include "Parameters.h" 6 7 struct sjInfo { 8 uint32 start; 9 uint32 end; 10 uint32 tr; 11 uint32 super; 12 }; 13 14 class SuperTranscript {//one supertranscript 15 public: 16 uint8 *seqP;//pointer to sequence 17 uint32 length; 18 vector<array<uint32,3>> sjC;//collapsed junctions 19 vector<uint32> sjDonor;//SJ donor coordinates, sorted 20 }; 21 22 23 class SuperTranscriptome { 24 private: 25 Parameters &P; 26 public: 27 vector<uint8> seqConcat;//concatenated sequences of supertranscripts, a.k.a. Condensed Genome 28 vector<vector<uint8>> seq;//sequences of supertranscripts 29 vector<uint64> trIndex;//superTr's index this tr belongs to 30 vector<array<uint64,2>> trStartEnd;//tr start/end in the superTr it belongs to 31 vector<sjInfo> sj;//all junctions 32 33 vector<SuperTranscript> superTrs; 34 uint32 sjNmax, sjDonorNmax;//max number of SJs per superTr, SJ donors 35 uint32 N; //number of superTr 36 37 SuperTranscriptome(Parameters & P)38 SuperTranscriptome(Parameters &P) : P(P) {}; 39 void sjCollapse(); 40 void load(char *G, vector<uint64> &chrStart, vector<uint64> &chrLength); 41 }; 42 #endif 43