-
Notifications
You must be signed in to change notification settings - Fork 2
/
Solo.h
43 lines (32 loc) · 1.22 KB
/
Solo.h
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
#ifndef CODE_Solo
#define CODE_Solo
#include "IncludeDefine.h"
#include "ReadAlignChunk.h"
#include "SoloCB.h"
#include "Transcriptome.h"
#include <fstream>
class Solo {
public:
SoloCB *soloCBsum, **soloCBall;
uint64 nReadsMapped, nCB; //total number of mapped reads
uint32 *rGeneUMI;//mapped reads sorted by CB
uint32 *indCB;//index of detected CBs in the whitelist
uint32 *rCBn;//number of reads for detected CBs in the whitelist
uint32 **rCBp;//array of pointers to each CB sub-array
uint32 *nUperCB;//number of UMIs per CB
uint32 *nGperCB;//number of genes (with >0 UMIs) per CB
uint32 nCellGeneEntries;//total number of non-zero cell/gene combinations (entries in the output matrix)
ofstream *soloStatsStream;
vector<array<uint64,2>> sjAll;
Solo(int feTy, Parameters &Pin, Transcriptome &inTrans);
void soloPostMap(ReadAlignChunk **RAchunk);
void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray);
void outputNumUMIperGeneCB();
private:
const int32 featureType;
Parameters &P;
ParametersSolo &pSolo;
Transcriptome &Trans;
static const uint32 umiArrayStride=3;
};
#endif