forked from alexdobin/STAR
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOutSJ.h
More file actions
53 lines (37 loc) · 1.41 KB
/
Copy pathOutSJ.h
File metadata and controls
53 lines (37 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef OUT_SJ_DEF
#define OUT_SJ_DEF
#include "Parameters.h"
class Junction {//one junction
public:
const static uint startP=0;
const static uint gapP=startP+sizeof(uint);
const static uint strandP=gapP+sizeof(uint32);
const static uint motifP=strandP+sizeof(char);
const static uint annotP=motifP+sizeof(char);
const static uint countUniqueP=annotP+sizeof(char);
const static uint countMultipleP=countUniqueP+sizeof(uint32);
const static uint overhangLeftP=countMultipleP+sizeof(uint32);
const static uint overhangRightP=overhangLeftP+sizeof(uint16);
uint *start;
uint32 *gap;
char *strand, *motif, *annot;
uint32 *countUnique, *countMultiple;
uint16 *overhangLeft, *overhangRight;
const static uint dataSize=overhangRightP+sizeof(uint16);
void junctionPointer(char* sjPoint, uint isj);
void outputStream(ostream &outStream, Parameters* P);
void collapseOneSJ(char* isj1P, char* isjP, Parameters* P);
};
class OutSJ {
public:
//all junctions
char* data; //sj array[Njunctions][dataSize]
uint N; //number of junctions stored
Junction oneSJ;
Parameters *P;
OutSJ(uint nSJmax, Parameters *P);
void collapseSJ();//collapse the junctions in data
// int compareSJ(void* i1, void* i2);
};
int compareSJ(const void* i1, const void* i2); //external functions
#endif