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