1 #ifndef SFFINFOCOMMAND_H
2 #define SFFINFOCOMMAND_H
8 * Created by westcott on 7/7/10.
9 * Copyright 2010 Schloss Lab. All rights reserved.
13 #include "command.hpp"
15 #define SFF_MAGIC 0x2e736666 /* ".sff" */
16 #define SFF_VERSION "\0\0\0\1"
18 /**********************************************************/
20 unsigned int magicNumber;
22 unsigned long int indexOffset;
23 unsigned int indexLength;
24 unsigned int numReads;
25 unsigned short headerLength;
26 unsigned short keyLength;
27 unsigned short numFlowsPerRead;
28 char flogramFormatCode;
29 char* flowChars; //length depends on number flow reads
30 char* keySequence; //length depends on key length
32 /**********************************************************/
34 unsigned short headerLength;
35 unsigned short nameLength;
36 unsigned int numBases;
37 unsigned short clipQualLeft;
38 unsigned short clipQualRight;
39 unsigned short clipAdapterLeft;
40 unsigned short clipAdapterRight;
41 char* name; //length depends on nameLength
43 /**********************************************************/
45 vector<unsigned short> flowgram;
46 vector<unsigned int> flowIndex;
48 vector<unsigned int> qualScores;
50 /**********************************************************/
52 class SffInfoCommand : public Command {
55 SffInfoCommand(string);
61 string sffFilename, outputDir;
62 vector<string> filenames, outputNames;
65 int extractSffInfo(string, string);
66 int readCommonHeader(ifstream&, CommonHeader*&);
67 int readHeader(ifstream&, Header*&);
68 int readSeqData(ifstream&, seqRead*&, int, int);
70 int printCommonHeader(ofstream&, CommonHeader*, bool); //bool is debug mode
71 int printHeader(ofstream&, Header*, bool);
72 int printSeqData(ofstream&, seqRead*, bool);
76 /**********************************************************/