X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sffinfocommand.h;h=1909e2d43e6d83b3d48ef06922b2d369a0e104d5;hb=250e3b11b1c9c1e1ad458ab6c7e71ac2e67e11d9;hp=abfaa4b8a088713278a9384c08909f9eaaad70d2;hpb=e150b0b0664caec517485ee6d69dcdade6dcae77;p=mothur.git diff --git a/sffinfocommand.h b/sffinfocommand.h index abfaa4b..1909e2d 100644 --- a/sffinfocommand.h +++ b/sffinfocommand.h @@ -11,13 +11,13 @@ */ #include "command.hpp" - +#include "groupmap.h" /**********************************************************/ struct CommonHeader { unsigned int magicNumber; string version; - unsigned long int indexOffset; + unsigned long long indexOffset; unsigned int indexLength; unsigned int numReads; unsigned short headerLength; @@ -69,25 +69,37 @@ public: 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, sfftxtFilename, outputDir, accnosName; - vector filenames, outputNames, accnosFileNames; - bool abort, fasta, qual, trim, flow, sfftxt, hasAccnos; - int mycount; + string sffFilename, sfftxtFilename, outputDir, accnosName, currentFileName, oligosfile, noMatchFile, groupfile; + vector filenames, outputNames, accnosFileNames, oligosFileNames, groupFileNames; + bool abort, fasta, qual, trim, flow, sfftxt, hasAccnos, hasOligos, hasGroup; + int mycount, split, numFPrimers, numLinkers, numSpacers, pdiffs, bdiffs, ldiffs, sdiffs, tdiffs, numNoMatch; set seqNames; - + map barcodes; + map primers; + GroupMap* groupMap; + vector linker, spacer, primerNameVector, barcodeNameVector, revPrimer; + vector > numSplitReads; + vector > filehandles; + vector > filehandlesHeaders; + //extract sff file functions - int extractSffInfo(string, string); + int extractSffInfo(string, string, string); int readCommonHeader(ifstream&, CommonHeader&); int readHeader(ifstream&, Header&); - int readSeqData(ifstream&, seqRead&, int, int); + bool readSeqData(ifstream&, seqRead&, int, Header&); int decodeName(string&, string&, string&, string); + bool readOligos(string oligosFile); + bool readGroup(string oligosFile); int printCommonHeader(ofstream&, CommonHeader&); int printHeader(ofstream&, Header&); @@ -97,7 +109,12 @@ private: 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); + int findGroup(Header header, seqRead read, int& barcode, int& primer, string); + string reverseOligo(string oligo); + //parsesfftxt file functions int parseHeaderLineToInt(ifstream&); vector parseHeaderLineToFloatVector(ifstream&, int);