1 #ifndef CODE_ReadAlignChunk 2 #define CODE_ReadAlignChunk 3 4 #include "IncludeDefine.h" 5 #include "Parameters.h" 6 #include "ReadAlign.h" 7 #include "OutSJ.h" 8 #include "Transcriptome.h" 9 #include "BAMoutput.h" 10 #include "Quantifications.h" 11 12 class ReadAlignChunk {//chunk of reads and alignments 13 public: 14 Parameters& P; 15 ReadAlign* RA; 16 17 Transcriptome *chunkTr; 18 19 char **chunkIn; //space for the chunk of input reads 20 array<uint64, MAX_N_MATES> chunkInSizeBytesTotal; 21 22 char *chunkOutBAM, *chunkOutBAM1;//space for the chunk of output SAM 23 OutSJ *chunkOutSJ, *chunkOutSJ1; 24 25 BAMoutput *chunkOutBAMcoord, *chunkOutBAMunsorted, *chunkOutBAMquant; 26 Quantifications *chunkQuants; 27 28 istringstream** readInStream; 29 ostringstream* chunkOutBAMstream; 30 ofstream chunkOutBAMfile; 31 string chunkOutBAMfileName; 32 33 bool noReadsLeft; 34 uint iChunkIn; //current chunk # as read from .fastq 35 uint iChunkOutSAM; //current chunk # writtedn to Aligned.out.sam 36 int iThread; //current thread 37 uint chunkOutBAMtotal; //total number of bytes in the write buffer 38 39 ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk); 40 void processChunks(); 41 void mapChunk(); 42 void chunkFstreamOpen(string filePrefix, int iChunk, fstream &fstreamOut); 43 void chunkFstreamCat (fstream &chunkOut, ofstream &allOut, bool mutexFlag, pthread_mutex_t &mutexVal); 44 void chunkFilesCat(ostream *allOut, string filePrefix, uint &iC); 45 46 Genome &mapGen; 47 private: 48 }; 49 #endif 50