File: OutSJ.h

package info (click to toggle)
rna-star 2.7.8a%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 3,076 kB
  • sloc: cpp: 20,429; awk: 483; ansic: 470; makefile: 181; sh: 31
file content (56 lines) | stat: -rw-r--r-- 1,491 bytes parent folder | download
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
53
54
55
56
#ifndef CODE_OutSJ
#define CODE_OutSJ

#include "Parameters.h"
#include "Genome.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);

    Junction(Genome &genomeIn);
    void junctionPointer(char* sjPoint, uint isj);
    void outputStream(ostream &outStream);
    void collapseOneSJ(char* isj1P, char* isjP, Parameters& P);

private:
    Genome &genOut;
};

class OutSJ {

public:
    //all junctions
    char* data; //sj array[Njunctions][dataSize]
    uint N; //number of junctions stored
    Junction oneSJ;

    OutSJ(uint nSJmax, Parameters &Pin, Genome &genomeIn);
    void collapseSJ();//collapse the junctions in data
//     int compareSJ(void* i1, void* i2);

private:
    Parameters &P;
    Genome &genOut;
};

int compareSJ(const void* i1, const void* i2); //external functions

#endif