X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sffinfocommand.h;h=5ec6e72239d0772548ce10f584ebccb435230d25;hb=372fb21ea66ced432b109225851a1b80ef0491a3;hp=d8eb853dae6892711a9004ae9ad670032f47228e;hpb=3e2465c16d187247ce3befd29811c2d5dfc15ee8;p=mothur.git diff --git a/sffinfocommand.h b/sffinfocommand.h index d8eb853..5ec6e72 100644 --- a/sffinfocommand.h +++ b/sffinfocommand.h @@ -17,7 +17,7 @@ struct CommonHeader { unsigned int magicNumber; string version; - unsigned long int indexOffset; + unsigned long long indexOffset; unsigned int indexLength; unsigned int numReads; unsigned short headerLength; @@ -64,26 +64,39 @@ class SffInfoCommand : public Command { public: SffInfoCommand(string); SffInfoCommand(); - ~SffInfoCommand(); - vector getRequiredParameters(); - vector getValidParameters(); - vector getRequiredFiles(); - map > getOutputFiles() { return outputTypes; } - int execute(); - void help(); + ~SffInfoCommand(){} + + vector setParameters(); + string getCommandName() { return "sffinfo"; } + string getCommandCategory() { return "Sequence Processing"; } + + string getHelpString(); + string getOutputPattern(string); + string getCitation() { return "http://www.mothur.org/wiki/Sffinfo"; } + string getDescription() { return "extract sequences reads from a .sff file"; } + + int execute(); + void help() { m->mothurOut(getHelpString()); } private: - string sffFilename, outputDir, accnosName; - vector filenames, outputNames, accnosFileNames; - bool abort, fasta, qual, trim, flow, sfftxt, hasAccnos; + string sffFilename, sfftxtFilename, outputDir, accnosName, currentFileName, oligosfile, noMatchFile; + vector filenames, outputNames, accnosFileNames, oligosFileNames; + bool abort, fasta, qual, trim, flow, sfftxt, hasAccnos, hasOligos; + int mycount, split, numFPrimers, numLinkers, numSpacers, pdiffs, bdiffs, ldiffs, sdiffs, tdiffs; set seqNames; - map > outputTypes; - - int extractSffInfo(string, string); + map barcodes; + map primers; + vector linker, spacer, primerNameVector, barcodeNameVector, revPrimer; + vector > numSplitReads; + vector > filehandles, filehandlesHeaders; + + //extract sff file functions + int extractSffInfo(string, string, string); int readCommonHeader(ifstream&, CommonHeader&); - int readHeader(ifstream&, Header&); - int readSeqData(ifstream&, seqRead&, int, int); + //int readHeader(ifstream&, Header&); + int readSeqData(ifstream&, seqRead&, int, Header&); int decodeName(string&, string&, string&, string); + bool readOligos(string oligosFile); int printCommonHeader(ofstream&, CommonHeader&); int printHeader(ofstream&, Header&); @@ -92,7 +105,17 @@ private: int printFastaSeqData(ofstream&, seqRead&, Header&); int printQualSeqData(ofstream&, seqRead&, Header&); int readAccnosFile(string); - + int parseSffTxt(); + bool sanityCheck(Header&, seqRead&); + int adjustCommonHeader(CommonHeader); + int findGroup(Header header, seqRead read, int& barcode, int& primer); + string reverseOligo(string oligo); + + //parsesfftxt file functions + int parseHeaderLineToInt(ifstream&); + vector parseHeaderLineToFloatVector(ifstream&, int); + vector parseHeaderLineToIntVector(ifstream&, int); + string parseHeaderLineToString(ifstream&); }; /**********************************************************/