int main(int argc, char* argv[]) { if (argc < 3) { cout << "usage: testBuildOccBins genomeFileName suffixArray" << endl; exit(0); } string genomeFileName = argv[1]; string suffixArrayFileName = argv[2]; FASTAReader reader; reader.Init(genomeFileName); FASTASequence seq; reader.GetNext(seq); DNASuffixArray suffixArray; suffixArray.Read(suffixArrayFileName); Bwt<PackedDNASequence, FASTASequence> bwt; //bwt.InitializeFromSuffixArray(seq, suffixArray.index); bwt.InitializeBWTStringFromSuffixArray(seq, suffixArray.index); bwt.occ.Initialize(bwt.bwtSequence, 4096, 64); bwt.occ.PrintBins(cout); }
int main(int argc, char* argv[]) { if (argc < 3) { cout << "usage: bwtLocateList bwtName querySeqFile" << endl; exit(1); } string bwtFileName = argv[1]; string querySeqFileName = argv[2]; bool doPrintResults = false; int maxCount = 0; int argi = 3; bool countOnly = false; while(argi < argc) { if (strcmp(argv[argi], "-print") == 0) { doPrintResults = true; } else if (strcmp(argv[argi], "-max") == 0) { maxCount = atoi(argv[++argi]); } else if (strcmp(argv[argi], "-count") == 0) { countOnly = true; } else { cout << "bad option: " << argv[argi] << endl; } ++argi; } Bwt<PackedDNASequence, FASTASequence> bwt; bwt.Read(bwtFileName); FASTAReader queryReader; queryReader.Init(querySeqFileName); FASTASequence seq; int seqIndex = 0; vector<DNALength> positions; while(queryReader.GetNext(seq)) { positions.clear(); if (countOnly == false) { bwt.Locate(seq, positions, maxCount); } else { DNALength sp,ep; bwt.Count(seq, sp, ep); } // cout << "matched " << positions.size() << " positions." << endl; if (doPrintResults) { int i; for (i = 0; i < positions.size(); i++ ){ cout << positions[i] << " "; } cout << endl; } ++seqIndex; } // float wordCountsPerLookup = (bwt.bwtSequence.nCountInWord *1.0) / bwt.bwtSequence.nCountNuc; // cout << "word counts per lookup: " << wordCountsPerLookup << endl; return 0; }
int main(int argc, char* argv[]) { if (argc < 2) { cout << "usage: printpbbwt in.bwt" << endl; exit(0); } string bwtFileName = argv[1]; Bwt<PackedDNASequence, FASTASequence> bwt; bwt.Read(bwtFileName); bwt.bwtSequence.PrintUnpacked(cout); return 0; }
int main(int argc, char* argv[]) { string bwtFileName, saFileName; if (argc < 3) { cout << "usage: bwt2sa bwtfile safile " << endl; exit(1); } bwtFileName = argv[1]; saFileName = argv[2]; Bwt<PackedDNASequence, FASTASequence> bwt; DNASuffixArray suffixArray; bwt.Read(bwtFileName); suffixArray.AllocateSuffixArray(bwt.bwtSequence.length-1); SAIndex index; for (index = 1; index < bwt.bwtSequence.length+1; index++) { suffixArray.index[index-1] = bwt.Locate(index); } suffixArray.Write(saFileName); }