From c2c287469079d1f6ae95c486c76b4e97a6d59e11 Mon Sep 17 00:00:00 2001 From: Aaron <aaronquinlan@gmail.com> Date: Mon, 12 Dec 2011 10:07:22 -0500 Subject: [PATCH] First pass at new, consolidated CLI. --- Makefile | 14 + src/annotateBed/Makefile | 6 +- src/annotateBed/annotateMain.cpp | 22 +- src/bamToBed/Makefile | 6 +- src/bamToBed/bamToBed.cpp | 23 +- src/bed12ToBed6/Makefile | 7 +- src/bed12ToBed6/bed12ToBed6.cpp | 19 +- src/bedToBam/Makefile | 7 +- src/bedToBam/bedToBam.cpp | 29 +- src/bedToIgv/Makefile | 7 +- src/bedToIgv/bedToIgv.cpp | 23 +- src/bedpeToBam/Makefile | 7 +- src/bedpeToBam/bedpeToBam.cpp | 41 +- src/bedpeToBam/notes.txt | 44 ++ src/bedtools.cpp | 169 +++++-- src/closestBed/Makefile | 6 +- src/closestBed/closestMain.cpp | 43 +- src/complementBed/Makefile | 6 +- src/complementBed/complementMain.cpp | 22 +- src/coverageBed/Makefile | 6 +- src/coverageBed/coverageMain.cpp | 24 +- src/fastaFromBed/Makefile | 6 +- src/fastaFromBed/fastaFromBedMain.cpp | 27 +- src/flankBed/Makefile | 6 +- src/flankBed/flankBedMain.cpp | 25 +- src/genomeCoverageBed/Makefile | 6 +- src/genomeCoverageBed/genomeCoverageMain.cpp | 22 +- src/getOverlap/Makefile | 7 +- src/getOverlap/getOverlap.cpp | 19 +- src/intersectBed/Makefile | 8 +- src/intersectBed/intersectMain.cpp | 20 +- src/linksBed/Makefile | 6 +- src/linksBed/linksMain.cpp | 20 +- src/maskFastaFromBed/Makefile | 6 +- src/maskFastaFromBed/maskFastaFromBedMain.cpp | 28 +- src/mergeBed/Makefile | 6 +- src/mergeBed/mergeMain.cpp | 22 +- src/multiBamCov/Makefile | 6 +- src/multiBamCov/multiBamCovMain.cpp | 28 +- src/multiIntersectBed/Makefile | 6 +- .../multiIntersectBedMain.cpp | 36 +- src/nucBed/Makefile | 6 +- src/nucBed/nucBedMain.cpp | 32 +- src/pairToBed/Makefile | 6 +- src/pairToBed/pairToBedMain.cpp | 24 +- src/pairToPair/Makefile | 6 +- src/pairToPair/pairToPairMain.cpp | 25 +- src/shuffleBed/Makefile | 6 +- src/shuffleBed/shuffleBedMain.cpp | 19 +- src/slopBed/Makefile | 6 +- src/slopBed/slopBedMain.cpp | 21 +- src/sortBed/Makefile | 6 +- src/sortBed/sortMain.cpp | 18 +- src/subtractBed/Makefile | 6 +- src/subtractBed/subtractMain.cpp | 23 +- src/tagBam/Makefile | 6 +- src/tagBam/tagBamMain.cpp | 19 +- src/unionBedGraphs/Makefile | 6 +- src/unionBedGraphs/unionBedGraphsMain.cpp | 37 +- src/utils/BamTools/include/api/BamAlignment.h | 207 ++++++++ src/utils/BamTools/include/api/BamAux.h | 457 ++++++++++++++++++ src/utils/BamTools/include/api/BamConstants.h | 128 +++++ src/utils/BamTools/include/api/BamIndex.h | 80 +++ .../BamTools/include/api/BamMultiReader.h | 127 +++++ src/utils/BamTools/include/api/BamReader.h | 118 +++++ src/utils/BamTools/include/api/BamWriter.h | 64 +++ src/utils/BamTools/include/api/SamConstants.h | 96 ++++ src/utils/BamTools/include/api/SamHeader.h | 69 +++ src/utils/BamTools/include/api/SamProgram.h | 62 +++ .../BamTools/include/api/SamProgramChain.h | 86 ++++ src/utils/BamTools/include/api/SamReadGroup.h | 69 +++ .../include/api/SamReadGroupDictionary.h | 87 ++++ src/utils/BamTools/include/api/SamSequence.h | 61 +++ .../include/api/SamSequenceDictionary.h | 89 ++++ src/utils/BamTools/include/api/api_global.h | 22 + .../BamTools/include/shared/bamtools_global.h | 79 +++ src/utils/BamTools/lib/libbamtools.a | Bin 0 -> 595320 bytes src/utils/BamTools/src/api/BamAlignment.o | Bin 0 -> 43388 bytes src/utils/BamTools/src/api/BamMultiReader.o | Bin 0 -> 11880 bytes src/utils/BamTools/src/api/BamReader.o | Bin 0 -> 10244 bytes src/utils/BamTools/src/api/BamWriter.o | Bin 0 -> 5672 bytes src/utils/BamTools/src/api/SamHeader.o | Bin 0 -> 29680 bytes src/utils/BamTools/src/api/SamProgram.o | Bin 0 -> 7172 bytes src/utils/BamTools/src/api/SamProgramChain.o | Bin 0 -> 14212 bytes src/utils/BamTools/src/api/SamReadGroup.o | Bin 0 -> 11616 bytes .../BamTools/src/api/SamReadGroupDictionary.o | Bin 0 -> 14844 bytes src/utils/BamTools/src/api/SamSequence.o | Bin 0 -> 11956 bytes .../BamTools/src/api/SamSequenceDictionary.o | Bin 0 -> 14632 bytes .../BamTools/src/api/internal/BamHeader_p.o | Bin 0 -> 7276 bytes .../src/api/internal/BamIndexFactory_p.o | Bin 0 -> 12672 bytes .../src/api/internal/BamMultiReader_p.o | Bin 0 -> 62996 bytes .../internal/BamRandomAccessController_p.o | Bin 0 -> 11260 bytes .../BamTools/src/api/internal/BamReader_p.o | Bin 0 -> 26212 bytes .../src/api/internal/BamStandardIndex_p.o | Bin 0 -> 58364 bytes .../src/api/internal/BamToolsIndex_p.o | Bin 0 -> 28356 bytes .../BamTools/src/api/internal/BamWriter_p.o | Bin 0 -> 12016 bytes .../BamTools/src/api/internal/BgzfStream_p.o | Bin 0 -> 12064 bytes .../src/api/internal/SamFormatParser_p.o | Bin 0 -> 43452 bytes .../src/api/internal/SamFormatPrinter_p.o | Bin 0 -> 39556 bytes .../src/api/internal/SamHeaderValidator_p.o | Bin 0 -> 55140 bytes src/windowBed/Makefile | 6 +- src/windowBed/windowMain.cpp | 21 +- 102 files changed, 2469 insertions(+), 572 deletions(-) create mode 100644 src/bedpeToBam/notes.txt create mode 100644 src/utils/BamTools/include/api/BamAlignment.h create mode 100644 src/utils/BamTools/include/api/BamAux.h create mode 100644 src/utils/BamTools/include/api/BamConstants.h create mode 100644 src/utils/BamTools/include/api/BamIndex.h create mode 100644 src/utils/BamTools/include/api/BamMultiReader.h create mode 100644 src/utils/BamTools/include/api/BamReader.h create mode 100644 src/utils/BamTools/include/api/BamWriter.h create mode 100644 src/utils/BamTools/include/api/SamConstants.h create mode 100644 src/utils/BamTools/include/api/SamHeader.h create mode 100644 src/utils/BamTools/include/api/SamProgram.h create mode 100644 src/utils/BamTools/include/api/SamProgramChain.h create mode 100644 src/utils/BamTools/include/api/SamReadGroup.h create mode 100644 src/utils/BamTools/include/api/SamReadGroupDictionary.h create mode 100644 src/utils/BamTools/include/api/SamSequence.h create mode 100644 src/utils/BamTools/include/api/SamSequenceDictionary.h create mode 100644 src/utils/BamTools/include/api/api_global.h create mode 100644 src/utils/BamTools/include/shared/bamtools_global.h create mode 100644 src/utils/BamTools/lib/libbamtools.a create mode 100644 src/utils/BamTools/src/api/BamAlignment.o create mode 100644 src/utils/BamTools/src/api/BamMultiReader.o create mode 100644 src/utils/BamTools/src/api/BamReader.o create mode 100644 src/utils/BamTools/src/api/BamWriter.o create mode 100644 src/utils/BamTools/src/api/SamHeader.o create mode 100644 src/utils/BamTools/src/api/SamProgram.o create mode 100644 src/utils/BamTools/src/api/SamProgramChain.o create mode 100644 src/utils/BamTools/src/api/SamReadGroup.o create mode 100644 src/utils/BamTools/src/api/SamReadGroupDictionary.o create mode 100644 src/utils/BamTools/src/api/SamSequence.o create mode 100644 src/utils/BamTools/src/api/SamSequenceDictionary.o create mode 100644 src/utils/BamTools/src/api/internal/BamHeader_p.o create mode 100644 src/utils/BamTools/src/api/internal/BamIndexFactory_p.o create mode 100644 src/utils/BamTools/src/api/internal/BamMultiReader_p.o create mode 100644 src/utils/BamTools/src/api/internal/BamRandomAccessController_p.o create mode 100644 src/utils/BamTools/src/api/internal/BamReader_p.o create mode 100644 src/utils/BamTools/src/api/internal/BamStandardIndex_p.o create mode 100644 src/utils/BamTools/src/api/internal/BamToolsIndex_p.o create mode 100644 src/utils/BamTools/src/api/internal/BamWriter_p.o create mode 100644 src/utils/BamTools/src/api/internal/BgzfStream_p.o create mode 100644 src/utils/BamTools/src/api/internal/SamFormatParser_p.o create mode 100644 src/utils/BamTools/src/api/internal/SamFormatPrinter_p.o create mode 100644 src/utils/BamTools/src/api/internal/SamHeaderValidator_p.o diff --git a/Makefile b/Makefile index 35fa6bb6..5493351f 100644 --- a/Makefile +++ b/Makefile @@ -61,6 +61,19 @@ UTIL_SUBDIRS = $(SRC_DIR)/utils/lineFileUtilities \ $(SRC_DIR)/utils/genomeFile BUILT_OBJECTS = $(OBJ_DIR)/*.o +# BUILT_OBJECTS = $(OBJ_DIR)/bedtools.o \ +# $(OBJ_DIR)/BamAncillary.o \ +# $(OBJ_DIR)/Fasta.o \ +# $(OBJ_DIR)/bedFile.o \ +# $(OBJ_DIR)/bedFilePE.o \ +# $(OBJ_DIR)/bedGraphFile.o \ +# $(OBJ_DIR)/chromsweep.o \ +# $(OBJ_DIR)/fileType.o \ +# $(OBJ_DIR)/gzstream.o \ +# $(OBJ_DIR)/sequenceUtils.o \ +# $(OBJ_DIR)/split.o \ +# $(OBJ_DIR)/intersectBed.o \ +# $(OBJ_DIR)/intersectMain.o \ all: [ -d $(OBJ_DIR) ] || mkdir -p $(OBJ_DIR) @@ -82,6 +95,7 @@ all: done @echo "- Building main bedtools binary." + gcc $(CXXFLAGS) -c src/bedtools.cpp -o obj/bedtools.o @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/bedtools $(BUILT_OBJECTS) -L$(UTIL_DIR)/BamTools/lib/ -lbamtools $(LIBS) diff --git a/src/annotateBed/Makefile b/src/annotateBed/Makefile index 6eb7f8cd..23bad93d 100644 --- a/src/annotateBed/Makefile +++ b/src/annotateBed/Makefile @@ -18,14 +18,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= annotateBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/annotateBed/annotateMain.cpp b/src/annotateBed/annotateMain.cpp index 07b2f198..8ae9e98c 100644 --- a/src/annotateBed/annotateMain.cpp +++ b/src/annotateBed/annotateMain.cpp @@ -15,15 +15,15 @@ using namespace std; // define the version -#define PROGRAM_NAME "annotateBed" +#define PROGRAM_NAME "bedtools annotate" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void annotate_help(void); -int main(int argc, char* argv[]) { +int annotate_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -56,7 +56,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) annotate_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -133,20 +133,18 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + annotate_help(); + return 0; } } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void annotate_help(void) { - cerr << "Summary: Annotates the depth & breadth of coverage of features from multiple files" << endl; + cerr << "\nTool: bedtools annotate (aka annotateBed)" << endl; + cerr << "Summary: Annotates the depth & breadth of coverage of features from mult. files" << endl; cerr << "\t on the intervals in -i." << endl << endl; - cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf> -files FILE1 FILE2 .. FILEn" << endl << endl; + cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf> -files FILE1 FILE2..FILEn" << endl << endl; cerr << "Options: " << endl; diff --git a/src/bamToBed/Makefile b/src/bamToBed/Makefile index 65741ae8..5cf20cd2 100644 --- a/src/bamToBed/Makefile +++ b/src/bamToBed/Makefile @@ -25,14 +25,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= bamToBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/bamToBed/bamToBed.cpp b/src/bamToBed/bamToBed.cpp index 4a4c56c6..bcae2c7a 100644 --- a/src/bamToBed/bamToBed.cpp +++ b/src/bamToBed/bamToBed.cpp @@ -26,14 +26,14 @@ using namespace std; // define our program name -#define PROGRAM_NAME "bamToBed" +#define PROGRAM_NAME "bedtools bamtobed" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void bamtobed_help(void); void ConvertBamToBed(const string &bamFile, bool useEditDistance, const string &bamTag, bool writeBed12, bool obeySplits, const string &color, @@ -52,10 +52,10 @@ void ParseCigarBed12(const vector<CigarOp> &cigar, vector<int> &blockStarts, vector<int> &blockEnds, int &alignmentEnd); string BuildCigarString(const vector<CigarOp> &cigar); -bool IsCorrectMappingForBEDPE (const BamAlignment &bam); +bool bamtobed_IsCorrectMappingForBEDPE (const BamAlignment &bam); -int main(int argc, char* argv[]) { +int bamtobed_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -88,7 +88,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) bamtobed_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -178,16 +178,15 @@ int main(int argc, char* argv[]) { ConvertBamToBedpe(bamFile, useEditDistance); // BEDPE } else { - ShowHelp(); + bamtobed_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void bamtobed_help(void) { + + cerr << "\nTool: bedtools bamtobed (aka bamToBed)" << endl; cerr << "Summary: Converts BAM alignments to BED6 or BEDPE format." << endl << endl; @@ -605,7 +604,7 @@ void PrintBedPE(const BamAlignment &bam1, const BamAlignment &bam2, const RefVec // deprecated. -bool IsCorrectMappingForBEDPE (const BamAlignment &bam) { +bool bamtobed_IsCorrectMappingForBEDPE (const BamAlignment &bam) { if ( (bam.RefID == bam.MateRefID) && (bam.InsertSize > 0) ) { return true; diff --git a/src/bed12ToBed6/Makefile b/src/bed12ToBed6/Makefile index e2e12883..fd6fac5e 100644 --- a/src/bed12ToBed6/Makefile +++ b/src/bed12ToBed6/Makefile @@ -18,15 +18,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= bed12ToBed6 -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all - -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/bed12ToBed6/bed12ToBed6.cpp b/src/bed12ToBed6/bed12ToBed6.cpp index d6aae22a..fc1884e9 100644 --- a/src/bed12ToBed6/bed12ToBed6.cpp +++ b/src/bed12ToBed6/bed12ToBed6.cpp @@ -22,21 +22,21 @@ using namespace std; // define our program name -#define PROGRAM_NAME "bed12ToBed6" +#define PROGRAM_NAME "bedtools bed12tobed6" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void bed12tobed6_help(void); void DetermineBedInput(BedFile *bed); void ProcessBed(istream &bedInput, BedFile *bed); bool addBlockNums = false; -int main(int argc, char* argv[]) { +int bed12tobed6_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -54,7 +54,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) bed12tobed6_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -88,17 +88,16 @@ int main(int argc, char* argv[]) { DetermineBedInput(bed); } else { - ShowHelp(); + bed12tobed6_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void bed12tobed6_help(void) { + cerr << "\nTool: bedtools bed12tobed6 (aka bed12ToBed6)" << endl; + cerr << "Summary: Splits BED12 features into discrete BED6 features." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed12>" << endl << endl; diff --git a/src/bedToBam/Makefile b/src/bedToBam/Makefile index f6e18c0c..0666e314 100644 --- a/src/bedToBam/Makefile +++ b/src/bedToBam/Makefile @@ -25,15 +25,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= bedToBam -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all - -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/bedToBam/bedToBam.cpp b/src/bedToBam/bedToBam.cpp index a689533c..23346226 100644 --- a/src/bedToBam/bedToBam.cpp +++ b/src/bedToBam/bedToBam.cpp @@ -29,22 +29,22 @@ using namespace std; // define our program name -#define PROGRAM_NAME "bedToBam" +#define PROGRAM_NAME "bedtools bedtobam" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void bedtobam_help(void); void ProcessBed(BedFile *bed, GenomeFile *genome, bool isBED12, int mapQual, bool uncompressedBam); void ConvertBedToBam(const BED &bed, BamAlignment &bam, map<string, int> &chromToId, bool isBED12, int mapQual, int lineNum); void MakeBamHeader(const string &genomeFile, RefVector &refs, string &header, map<string, int> &chromToInt); -int reg2bin(int beg, int end); +int bedtobam_reg2bin(int beg, int end); -int main(int argc, char* argv[]) { +int bedtobam_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -70,7 +70,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) bedtobam_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -131,16 +131,15 @@ int main(int argc, char* argv[]) { ProcessBed(bed, genome, isBED12, mapQual, uncompressedBam); } else { - ShowHelp(); + bedtobam_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void bedtobam_help(void) { + + cerr << "\nTool: bedtools bedtobam (aka bedToBam)" << endl; cerr << "Summary: Converts feature records to BAM format." << endl << endl; @@ -154,10 +153,10 @@ void ShowHelp(void) { cerr << "\t-bed12\t" << "The BED file is in BED12 format. The BAM CIGAR" << endl; cerr << "\t\tstring will reflect BED \"blocks\"." << endl << endl; - cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default is to write compressed BAM." << endl << endl; + cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default writes compressed BAM." << endl << endl; cerr << "Notes: " << endl; - cerr << "\t(1) BED files must be at least BED4 to be amenable to BAM (needs name field)." << endl << endl; + cerr << "\t(1) BED files must be at least BED4 to create BAM (needs name field)." << endl << endl; // end the program here @@ -211,7 +210,7 @@ void ConvertBedToBam(const BED &bed, BamAlignment &bam, map<string, int, std::le bam.Name = bed.name; bam.Position = bed.start; - bam.Bin = reg2bin(bed.start, bed.end); + bam.Bin = bedtobam_reg2bin(bed.start, bed.end); // hard-code the sequence and qualities. int bedLength = bed.end - bed.start; @@ -341,7 +340,7 @@ void MakeBamHeader(const string &genomeFile, RefVector &refs, string &header, /* Taken directly from the SAMTools spec calculate bin given an alignment in [beg,end) (zero-based, half-close, half-open) */ -int reg2bin(int beg, int end) { +int bedtobam_reg2bin(int beg, int end) { --end; if (beg>>14 == end>>14) return ((1<<15)-1)/7 + (beg>>14); if (beg>>17 == end>>17) return ((1<<12)-1)/7 + (beg>>17); diff --git a/src/bedToIgv/Makefile b/src/bedToIgv/Makefile index 3ad616b9..50ea2dae 100644 --- a/src/bedToIgv/Makefile +++ b/src/bedToIgv/Makefile @@ -24,15 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= bedToIgv -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all - -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/bedToIgv/bedToIgv.cpp b/src/bedToIgv/bedToIgv.cpp index 9697d808..562062d3 100644 --- a/src/bedToIgv/bedToIgv.cpp +++ b/src/bedToIgv/bedToIgv.cpp @@ -22,13 +22,13 @@ using namespace std; // define our program name -#define PROGRAM_NAME "bedToIgv" +#define PROGRAM_NAME "bedtools igv" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void bedtoigv_help(void); void DetermineBedInput(BedFile *bed, string path, string sortType, string session, bool collapse, bool useNames, string imageType, int slop); @@ -36,7 +36,7 @@ void ProcessBed(istream &bedInput, BedFile *bed, string path, string sortType, s bool collapse, bool useNames, string imageType, int slop); -int main(int argc, char* argv[]) { +int bedtoigv_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -62,7 +62,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) bedtoigv_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -139,16 +139,15 @@ int main(int argc, char* argv[]) { DetermineBedInput(bed, imagePath, sortType, session, collapse, useNames, imageType, slop); } else { - ShowHelp(); + bedtoigv_help(); } + return 0; } -void ShowHelp(void) { +void bedtoigv_help(void) { - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; + cerr << "\nTool: bedtools igv (aka bedToIgv)" << endl; cerr << "Summary: Creates a batch script to create IGV images " << endl; cerr << " at each interval defined in a BED/GFF/VCF file." << endl << endl; @@ -182,9 +181,9 @@ void ShowHelp(void) { cerr << "\t\tDefault is png." << endl << endl; cerr << "Notes: " << endl; - cerr << "\t(1) The resulting script is meant to be run from within the IGV GUI version 1.5 or later." << endl; - cerr << "\t(2) Unless you use the -sess option, it is assumed that prior to running the script, " << endl; - cerr << "\t\tyou have loaded the proper genome, tracks and data files." << endl << endl; + cerr << "\t(1) The resulting script is meant to be run from within IGV." << endl; + cerr << "\t(2) Unless you use the -sess option, it is assumed that prior to " << endl; + cerr << "\t\trunning the script, you've loaded the proper genome and tracks." << endl << endl; // end the program here diff --git a/src/bedpeToBam/Makefile b/src/bedpeToBam/Makefile index b2f7d128..592d68e6 100644 --- a/src/bedpeToBam/Makefile +++ b/src/bedpeToBam/Makefile @@ -26,15 +26,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= bedpeToBam -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all - -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/bedpeToBam/bedpeToBam.cpp b/src/bedpeToBam/bedpeToBam.cpp index 06e9af88..374e3fa9 100644 --- a/src/bedpeToBam/bedpeToBam.cpp +++ b/src/bedpeToBam/bedpeToBam.cpp @@ -29,27 +29,23 @@ using namespace std; // define our program name -#define PROGRAM_NAME "bedpeToBam" +#define PROGRAM_NAME "bedpetobam" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) -//ROYDEN -//NEED TO ADD A IS TYPE12+ check or fail -//END ROYDEN - // function declarations -void ShowHelp(void); +void bedpetobam_help(void); void ProcessBedPE(BedFilePE *bedpe, GenomeFile *genome, int mapQual, bool uncompressedBam); void ConvertBedPEToBam(const BEDPE &bedpe, BamAlignment &bam1,BamAlignment &bam2, map<string, int> &chromToId, int mapQual, int lineNum); -void MakeBamHeader(const string &genomeFile, RefVector &refs, string &header, map<string, int> &chromToInt); -int reg2bin(int beg, int end); +void bedpetobam_MakeBamHeader(const string &genomeFile, RefVector &refs, string &header, map<string, int> &chromToInt); +int bedpetobam_reg2bin(int beg, int end); -int main(int argc, char* argv[]) { +int bedpetobam_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -75,7 +71,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) bedpetobam_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -133,16 +129,15 @@ int main(int argc, char* argv[]) { ProcessBedPE(bedpe, genome, mapQual, uncompressedBam); } else { - ShowHelp(); + bedpetobam_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void bedpetobam_help(void) { + + cerr << "\nTool: bedtools bedpetobam (aka bedpeToBam)" << endl; cerr << "Summary: Converts feature records to BAM format." << endl << endl; @@ -153,10 +148,10 @@ void ShowHelp(void) { cerr << "\t-mapq\t" << "Set the mappinq quality for the BAM records." << endl; cerr << "\t\t(INT) Default: 255" << endl << endl; - cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default is to write compressed BAM." << endl << endl; + cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default writes compressed BAM." << endl << endl; cerr << "Notes: " << endl; - cerr << "\t(1) BED files must be at least BED4 to be amenable to BAM (needs name field)." << endl << endl; + cerr << "\t(1) BED files must be at least BED4 to create BAM (needs name field)." << endl << endl; // end the program here @@ -171,7 +166,7 @@ void ProcessBedPE(BedFilePE *bedpe, GenomeFile *genome, int mapQual, bool uncom RefVector refs; string bamHeader; map<string, int, std::less<string> > chromToId; - MakeBamHeader(genome->getGenomeFileName(), refs, bamHeader, chromToId); + bedpetobam_MakeBamHeader(genome->getGenomeFileName(), refs, bamHeader, chromToId); // set compression mode BamWriter::CompressionMode compressionMode = BamWriter::Compressed; @@ -218,10 +213,10 @@ void ConvertBedPEToBam(const BEDPE &bedpe, BamAlignment &bam1,BamAlignment &bam2 bam1.Name = bedpe.name; bam1.Position = bedpe.start1; - bam1.Bin = reg2bin(bedpe.start1, bedpe.end1); + bam1.Bin = bedpetobam_reg2bin(bedpe.start1, bedpe.end1); bam2.Name = bedpe.name; bam2.Position = bedpe.start2; - bam2.Bin = reg2bin(bedpe.start2, bedpe.end2); + bam2.Bin = bedpetobam_reg2bin(bedpe.start2, bedpe.end2); // hard-code the sequence and qualities. int bedpeLength1 = bedpe.end1 - bedpe.start1; @@ -294,7 +289,7 @@ void ConvertBedPEToBam(const BEDPE &bedpe, BamAlignment &bam1,BamAlignment &bam2 } -void MakeBamHeader(const string &genomeFile, RefVector &refs, string &header, +void bedpetobam_MakeBamHeader(const string &genomeFile, RefVector &refs, string &header, map<string, int, std::less<string> > &chromToId) { // make a genome map of the genome file. @@ -333,7 +328,7 @@ void MakeBamHeader(const string &genomeFile, RefVector &refs, string &header, /* Taken directly from the SAMTools spec calculate bin given an alignment in [beg,end) (zero-based, half-close, half-open) */ -int reg2bin(int beg, int end) { +int bedpetobam_reg2bin(int beg, int end) { --end; if (beg>>14 == end>>14) return ((1<<15)-1)/7 + (beg>>14); if (beg>>17 == end>>17) return ((1<<12)-1)/7 + (beg>>17); diff --git a/src/bedpeToBam/notes.txt b/src/bedpeToBam/notes.txt new file mode 100644 index 00000000..b7c40646 --- /dev/null +++ b/src/bedpeToBam/notes.txt @@ -0,0 +1,44 @@ +Public Member Functions BamAlignment (void) constructor BamAlignment (const BamAlignment &other) copy constructor ~BamAlignment (void) destructor +bool IsDuplicate (void) const +bool IsFailedQC (void) const +bool IsFirstMate (void) const +bool IsMapped (void) const +bool IsMateMapped (void) const +bool IsMateReverseStrand (void) const +bool IsPaired (void) const +bool IsPrimaryAlignment (void) const +bool IsProperPair (void) const +bool IsReverseStrand (void) const +bool IsSecondMate (void) const +void SetIsDuplicate (bool ok) Sets value of "PCR duplicate" flag to ok. +void SetIsFailedQC (bool ok) Sets "failed quality control" flag to ok. +void SetIsFirstMate (bool ok) Sets "alignment is first mate" flag to ok. +void SetIsMapped (bool ok) Sets "alignment is mapped" flag to ok. +void SetIsMateMapped (bool ok) Sets "alignment's mate is mapped" flag to ok. +void SetIsMateReverseStrand (bool ok) Sets "alignment's mate mapped to reverse strand" flag to ok. +void SetIsPaired (bool ok) Sets "alignment part of paired-end read" flag to ok. +void SetIsPrimaryAlignment (bool ok) Sets "position is primary alignment" flag to ok. +void SetIsProperPair (bool ok) Sets "alignment is part of read that satisfied paired-end resolution" flag to ok. +void SetIsReverseStrand (bool ok) Sets "alignment mapped to reverse strand" flag to ok. +void SetIsSecondMate (bool ok) Sets "alignment is second mate on read" flag to ok. +void SetIsMateUnmapped (bool ok) Complement of using SetIsMateMapped(). +void SetIsSecondaryAlignment (bool ok) Complement of using SetIsPrimaryAlignment(). +void SetIsUnmapped (bool ok) Complement of using SetIsMapped(). +bool AddTag (const std::string &tag, const std::string &type, const std::string &value) Adds a field with string data to the BAM tags. +bool AddTag (const std::string &tag, const std::string &type, const uint32_t &value) Adds a field with unsigned integer data to the BAM tags. +bool AddTag (const std::string &tag, const std::string &type, const int32_t &value) Adds a field with signed integer data to the BAM tags. +bool AddTag (const std::string &tag, const std::string &type, const float &value) Adds a field with floating-point data to the BAM tags. +bool EditTag (const std::string &tag, const std::string &type, const std::string &value) Edits a BAM tag field containing string data. +bool EditTag (const std::string &tag, const std::string &type, const uint32_t &value) Edits a BAM tag field containing unsigned integer data. +bool EditTag (const std::string &tag, const std::string &type, const int32_t &value) Edits a BAM tag field containing signed integer data. +bool EditTag (const std::string &tag, const std::string &type, const float &value) Edits a BAM tag field containing floating-point data. +bool GetTag (const std::string &tag, std::string &destination) const Retrieves the string value associated with a BAM tag. +bool GetTag (const std::string &tag, uint32_t &destination) const Retrieves the unsigned integer value associated with a BAM tag. +bool GetTag (const std::string &tag, int32_t &destination) const Retrieves the signed integer value associated with a BAM tag. +bool GetTag (const std::string &tag, float &destination) const Retrieves the floating-point value associated with a BAM tag. +bool GetTagType (const std::string &tag, char &type) const Retrieves the BAM tag type-code associated with requested tag name. +bool GetEditDistance (uint32_t &editDistance) const Retrieves value of edit distance tag ("NM"). +bool GetReadGroup (std::string &readGroup) const Retrieves value of read group tag ("RG"). +bool RemoveTag (const std::string &tag) Removes field from BAM tags. +bool BuildCharData (void) Populates alignment string fields (read name, bases, qualities, tag data). +int GetEndPosition (bool usePadded=false, bool zeroBased=true) const Calculates alignment end position, based on starting position and CIGAR data. \ No newline at end of file diff --git a/src/bedtools.cpp b/src/bedtools.cpp index a76ed33c..965da007 100644 --- a/src/bedtools.cpp +++ b/src/bedtools.cpp @@ -21,51 +21,158 @@ using namespace std; // define our program name #define PROGRAM_NAME "bedtools" +// colors for the term's menu +#define RESET "\e[m" +#define GREEN "\e[1;32m" +#define BLUE "\e[1;34m" +#define RED "\e[1;31m" + // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) +int annotate_main(int argc, char* argv[]);// +int bamtobed_main(int argc, char* argv[]);// +int bed12tobed6_main(int argc, char* argv[]); // +int bedtobam_main(int argc, char* argv[]);// +int bedtoigv_main(int argc, char* argv[]);// +int bedpetobam_main(int argc, char* argv[]);// +int closest_main(int argc, char* argv[]); // +int complement_main(int argc, char* argv[]);// +int coverage_main(int argc, char* argv[]); // +int fastafrombed_main(int argc, char* argv[]);// +int flank_main(int argc, char* argv[]); // +int genomecoverage_main(int argc, char* argv[]);// +int getoverlap_main(int argc, char* argv[]);// +int intersect_main(int argc, char* argv[]); // +int links_main(int argc, char* argv[]);// +int maskfastafrombed_main(int argc, char* argv[]);// +int merge_main(int argc, char* argv[]); // +int multibamcov_main(int argc, char* argv[]);// +int multiintersect_main(int argc, char* argv[]);// +int nuc_main(int argc, char* argv[]);// +int pairtobed_main(int argc, char* argv[]);// +int pairtopair_main(int argc, char* argv[]);// +int shuffle_main(int argc, char* argv[]); // +int slop_main(int argc, char* argv[]); // +int sort_main(int argc, char* argv[]); // +int subtract_main(int argc, char* argv[]); // +int tagbam_main(int argc, char* argv[]);// +int unionbedgraphs_main(int argc, char* argv[]);// +int window_main(int argc, char* argv[]); // -int intersect_main(int argc, char* argv[]); -int coverage_main(int argc, char* argv[]); -int merge_main(int argc, char* argv[]); -int substract_main(int argc, char* argv[]); - -static int help() +int bedtools_help() { - cerr << "\n"; - cerr << "Program: " << PROGRAM_NAME << " (Tools for genome arithmetic.)\n"; - cerr << "Version: " << "2.15.5" << "\n"; - cerr << "Author: " << "Aaron Quinlan (aaronquinlan@gmail.com)" << "\n\n"; - cerr << "Usage: bedtools <tool> [options]\n"; - - cerr << "\n-Genome arithmetic tools:\n"; - cerr << " intersect Find overlapping/intersecting intervals b/w two files.\n"; - cerr << " coverage Compute the coverage of one set of intervals over another.\n"; - cerr << " merge Combine overlapping or nearby intervals into a single interval.\n"; - cerr << " subtract Remove intervals based on overlaps b/w two files.\n"; - - cerr << "\n-Format conversion tools:\n"; - cerr << " intersect Find overlapping/intersecting intervals b/w two files.\n"; - - cerr << "\n-Fasta tools:\n"; - cerr << " intersect Find overlapping/intersecting intervals b/w two files.\n"; + cout << "\n"; + cout << PROGRAM_NAME << ": flexible tools for genome arithmetic and analysis.\n"; + cout << "Version: " << "2.15.5" << "\n"; + cout << "Authors: " << "Aaron Quinlan and others (see THANKS)" << "\n\n"; + cout << "Usage: bedtools <tool> [options]\n"; + + cout << "\nGenome arithmetic:" << endl; + cout << RED << " intersect " << RESET << "Find exactly overlapping intervals.\n"; + cout << RED << " window " << RESET << "Find overlapping intervals within a \"window\".\n"; + cout << RED << " closest " << RESET << "Find overlapping or nearby intervals.\n"; + cout << RED << " coverage " << RESET << "Compute the coverage over defined intervals.\n"; + cout << RED << " genomecov " << RESET << "Compute the coverage over an entire genome.\n"; + cout << RED << " merge " << RESET << "Combine overlapping/nearby intervals into a single interval.\n"; + cout << RED << " complement " << RESET << "Extract intervals _not_ represented by an interval file.\n"; + cout << RED << " subtract " << RESET << "Remove intervals based on overlaps b/w two files.\n"; + cout << RED << " slop " << RESET << "Adjust the size of intervals.\n"; + cout << RED << " flank " << RESET << "Create new intervals from the flanks of existing intervals.\n"; + cout << RED << " sort " << RESET << "Order the intervals in a file.\n"; + cout << RED << " shuffle " << RESET << "Randomly redistrubute intervals in a genome.\n"; + cout << RED << " annotate " << RESET << "Annotate coverage of features from multiple files.\n"; - cerr << "\n"; + cout << "\nMulti-way file comparisons:" << endl; + cout << RED << " multiinter " << RESET << "Identifies common intervals among multiple interval files.\n"; + cout << RED << " unionbedg " << RESET << "Combines coverage intervals from multiple BEDGRAPH files.\n"; + + cout << "\nPaired-end manipulation:" << endl; + cout << RED << " pairtobed " << RESET << "Find pairs that overlap intervals in various ways.\n"; + cout << RED << " pairtopair " << RESET << "Find pairs that overlap other pairs in various ways.\n"; + + cout << "\nFormat conversion:\n"; + cout << RED << " bamtobed " << RESET << "Convert BAM alignments to BED (& other) formats.\n"; + cout << RED << " bedtobam " << RESET << "Convert intervals to BAM records.\n"; + cout << RED << " bedpetobam " << RESET << "Convert BEDPE intervals to BAM records.\n"; + cout << RED << " bed12tobed6 " << RESET << "Breaks BED12 intervals into discrete BED6 intervals.\n"; + + cout << "\nFasta manipulation:\n"; + cout << RED << " getfasta " << RESET << "Use intervals to extract sequences from a FASTA file.\n"; + cout << RED << " maskfasta " << RESET << "Use intervals to mask sequences from a FASTA file.\n"; + cout << RED << " nuc " << RESET << "Profile the nucleotide content of intervals in a FASTA file.\n"; + + cout << "\nBAM focused tools:\n"; + cout << RED << " multicov " << RESET << "Counts coverage from multiple BAMs at specific intervals.\n"; + cout << RED << " tag " << RESET << "Annotate BAM alignments based on overlaps with interval files.\n"; + + cout << "\nMiscellaneous tools:\n"; + cout << RED << " overlap " << RESET << "Computes the amount of overlap from two intervals.\n"; + cout << RED << " igv " << RESET << "Create an IGV snapshot batch script.\n"; + cout << RED << " links " << RESET << "Create a HTML page of links to UCSC locations.\n"; + + cout << "\nGeneral help:\n"; + cout << RED << " faq " << RESET << "Frequently asked questions.\n"; + + cout << "\n"; return 1; } int main(int argc, char *argv[]) { // make sure the user at least entered a sub_command - if (argc < 2) return help(); + if (argc < 2) return bedtools_help(); + + // genome arithmetic tools + if (strcmp(argv[1], "intersect") == 0) return intersect_main(argc-1, argv+1); + else if (strcmp(argv[1], "window") == 0) return window_main(argc-1, argv+1); + else if (strcmp(argv[1], "closest") == 0) return closest_main(argc-1, argv+1); + else if (strcmp(argv[1], "coverage") == 0) return coverage_main(argc-1, argv+1); + else if (strcmp(argv[1], "genomecov") == 0) return genomecoverage_main(argc-1, argv+1); + else if (strcmp(argv[1], "merge") == 0) return merge_main(argc-1, argv+1); + else if (strcmp(argv[1], "complement") == 0) return complement_main(argc-1, argv+1); + else if (strcmp(argv[1], "subtract") == 0) return subtract_main(argc-1, argv+1); + else if (strcmp(argv[1], "slop") == 0) return slop_main(argc-1, argv+1); + else if (strcmp(argv[1], "flank") == 0) return flank_main(argc-1, argv+1); + else if (strcmp(argv[1], "sort") == 0) return sort_main(argc-1, argv+1); + else if (strcmp(argv[1], "shuffle") == 0) return shuffle_main(argc-1, argv+1); + else if (strcmp(argv[1], "annotate") == 0) return annotate_main(argc-1, argv+1); + + // Multi-way file comparisonstools + else if (strcmp(argv[1], "multiinter") == 0) return multiintersect_main(argc-1, argv+1); + else if (strcmp(argv[1], "unionbedg") == 0) return unionbedgraphs_main(argc-1, argv+1); + + // paired-end conversion tools + else if (strcmp(argv[1], "pairtobed") == 0) return pairtobed_main(argc-1, argv+1); + else if (strcmp(argv[1], "pairtopair") == 0) return pairtopair_main(argc-1, argv+1); + + // format conversion tools + else if (strcmp(argv[1], "bamtobed") == 0) return bamtobed_main(argc-1, argv+1); + else if (strcmp(argv[1], "bedtobam") == 0) return bedtobam_main(argc-1, argv+1); + else if (strcmp(argv[1], "bedpetobam") == 0) return bedpetobam_main(argc-1, argv+1); + else if (strcmp(argv[1], "bed12tobed6") == 0) return bed12tobed6_main(argc-1, argv+1); + + // BAM-specific tools + else if (strcmp(argv[1], "multicov") == 0) return multibamcov_main(argc-1, argv+1); + else if (strcmp(argv[1], "tag") == 0) return tagbam_main(argc-1, argv+1); + + // fasta tools + else if (strcmp(argv[1], "getfasta") == 0) return fastafrombed_main(argc-1, argv+1); + else if (strcmp(argv[1], "maskfasta") == 0) return maskfastafrombed_main(argc-1, argv+1); + else if (strcmp(argv[1], "nuc") == 0) return nuc_main(argc-1, argv+1); + + // misc. tools + else if (strcmp(argv[1], "overlap") == 0) return getoverlap_main(argc-1, argv+1); + else if (strcmp(argv[1], "igv") == 0) return bedtoigv_main(argc-1, argv+1); + else if (strcmp(argv[1], "links") == 0) return links_main(argc-1, argv+1); + + // help + else if (strcmp(argv[1], "-h") == 0) return bedtools_help(); + else if (strcmp(argv[1], "--help") == 0) return bedtools_help(); - // spawn the proper tool. - if (strcmp(argv[1], "intersect") == 0) return intersect_main(argc-1, argv+1); - else if (strcmp(argv[1], "coverage") == 0) return coverage_main(argc-1, argv+1); - else if (strcmp(argv[1], "merge") == 0) return merge_main(argc-1, argv+1); - else if (strcmp(argv[1], "subtract") == 0) return subtract_main(argc-1, argv+1); + // unknown else { - fprintf(stderr, "[main] unrecognized command '%s'\n", argv[1]); + cerr << "error: unrecognized command: " << argv[1] << endl << endl; return 1; } return 0; diff --git a/src/closestBed/Makefile b/src/closestBed/Makefile index 00cfd889..859bfcf1 100644 --- a/src/closestBed/Makefile +++ b/src/closestBed/Makefile @@ -16,14 +16,10 @@ EXT_OBJECTS=$(patsubst %,$(OBJ_DIR)/%,$(_EXT_OBJECTS)) BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= closestBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/closestBed/closestMain.cpp b/src/closestBed/closestMain.cpp index 0128af24..e4f1b7a5 100644 --- a/src/closestBed/closestMain.cpp +++ b/src/closestBed/closestMain.cpp @@ -15,15 +15,15 @@ using namespace std; // define our program name -#define PROGRAM_NAME "closestBed" +#define PROGRAM_NAME "bedtools closest" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void closest_help(void); -int main(int argc, char* argv[]) { +int closest_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -58,7 +58,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) closest_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -144,19 +144,16 @@ int main(int argc, char* argv[]) { diffStrand, tieMode, reportDistance, signDistance, strandedDistMode, ignoreOverlaps, printHeader); delete bc; - return 0; } else { - ShowHelp(); + closest_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Authors: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; - cerr << "\t Erik Arner, Riken" << endl << endl; +void closest_help(void) { + + cerr << "\nTool: bedtools closest (aka closestBed)" << endl; cerr << "Summary: For each feature in A, finds the closest " << endl; cerr << "\t feature (upstream or downstream) in B." << endl << endl; @@ -164,12 +161,12 @@ void ShowHelp(void) { cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -a <bed/gff/vcf> -b <bed/gff/vcf>" << endl << endl; cerr << "Options: " << endl; - cerr << "\t-s\t" << "Require same strandedness. That is, find the closest feature in B" << endl; - cerr << "\t\tthat overlaps A on the _same_ strand." << endl; + cerr << "\t-s\t" << "Req. same strandedness. That is, find the closest feature in" << endl; + cerr << "\t\tB that overlaps A on the _same_ strand." << endl; cerr << "\t\t- By default, overlaps are reported without respect to strand." << endl << endl; - cerr << "\t-S\t" << "Require opposite strandedness. That is, find the closest feature in B" << endl; - cerr << "\t\tthat overlaps A on the _opposite_ strand." << endl; + cerr << "\t-S\t" << "Req. opposite strandedness. That is, find the closest feature" << endl; + cerr << "\t\tin B that overlaps A on the _opposite_ strand." << endl; cerr << "\t\t- By default, overlaps are reported without respect to strand." << endl << endl; cerr << "\t-d\t" << "In addition to the closest feature in B, " << endl; @@ -178,17 +175,19 @@ void ShowHelp(void) { cerr << "\t-D\t" << "Like -d, report the closest feature in B, and its distance to A" << endl; cerr << "\t\tas an extra column. Unlike -d, use negative distances to report" << endl; - cerr << "\t\tupstream features. You must specify which orientation defines \"upstream\"." << endl; - cerr << "\t\tThe options are:" << endl; + cerr << "\t\tupstream features." << endl; + cerr << "\t\tThe options for defining which orientation is \"upstream\" are:" << endl; cerr << "\t\t- \"ref\" Report distance with respect to the reference genome. " << endl; cerr << "\t\t B features with a lower (start, stop) are upstream" << endl; cerr << "\t\t- \"a\" Report distance with respect to A." << endl; - cerr << "\t\t When A is on the - strand, \"upstream\" means B has a higher (start,stop)." << endl; + cerr << "\t\t When A is on the - strand, \"upstream\" means B has a" << endl; + cerr << "\t\t higher (start,stop)." << endl; cerr << "\t\t- \"b\" Report distance with respect to B." << endl; - cerr << "\t\t When B is on the - strand, \"upstream\" means A has a higher (start,stop)." << endl << endl; + cerr << "\t\t When B is on the - strand, \"upstream\" means A has a" << endl; + cerr << "\t\t higher (start,stop)." << endl << endl; - cerr << "\t-io\t" << "Ignore features in B that overlap A. That is, we want close, but " << endl; - cerr << "\t\tnot touching features only." << endl << endl; + cerr << "\t-io\t" << "Ignore features in B that overlap A. That is, we want close," << endl; + cerr << "\t\tyet not touching features only." << endl << endl; cerr << "\t-t\t" << "How ties for closest feature are handled. This occurs when two" << endl; cerr << "\t\tfeatures in B have exactly the same \"closeness\" with A." << endl; diff --git a/src/complementBed/Makefile b/src/complementBed/Makefile index 2f542063..bc56b4dd 100644 --- a/src/complementBed/Makefile +++ b/src/complementBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= complementBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/complementBed/complementMain.cpp b/src/complementBed/complementMain.cpp index 7eb34d5f..98b1a786 100644 --- a/src/complementBed/complementMain.cpp +++ b/src/complementBed/complementMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "complementBed" +#define PROGRAM_NAME "bedtools complement" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void complement_help(void); -int main(int argc, char* argv[]) { +int complement_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -45,7 +45,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) complement_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -73,25 +73,23 @@ int main(int argc, char* argv[]) { // make sure we have both input files if (!haveBed || !haveGenome) { - cerr << endl << "*****" << endl << "*****ERROR: Need -i BED file and -g Genome file. " << endl << "*****" << endl; + cerr << endl << "*****" << endl << "*****ERROR: Need -i BED file and -g genome file. " << endl << "*****" << endl; showHelp = true; } if (!showHelp) { BedComplement *bc = new BedComplement(bedFile, genomeFile); bc->ComplementBed(); - return 0; } else { - ShowHelp(); + complement_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void complement_help(void) { + cerr << "\nTool: bedtools complement (aka complementBed)" << endl; + cerr << "Summary: Returns the base pair complement of a feature file." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf> -g <genome>" << endl << endl; diff --git a/src/coverageBed/Makefile b/src/coverageBed/Makefile index 48ccb37f..ea5d777b 100644 --- a/src/coverageBed/Makefile +++ b/src/coverageBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= coverageBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/coverageBed/coverageMain.cpp b/src/coverageBed/coverageMain.cpp index 6a01fdc6..a0b839f8 100644 --- a/src/coverageBed/coverageMain.cpp +++ b/src/coverageBed/coverageMain.cpp @@ -15,15 +15,15 @@ using namespace std; // define the version -#define PROGRAM_NAME "coverageBed" +#define PROGRAM_NAME "bedtools coverage" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void coverage_help(void); -int main(int argc, char* argv[]) { +int coverage_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -55,7 +55,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) coverage_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -123,19 +123,17 @@ int main(int argc, char* argv[]) { BedCoverage *bg = new BedCoverage(bedAFile, bedBFile, sameStrand, diffStrand, writeHistogram, bamInput, obeySplits, eachBase, countsOnly); delete bg; - return 0; } else { - ShowHelp(); + coverage_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void coverage_help(void) { + cerr << "\nTool: bedtools coverage (aka coverageBed)" << endl; + cerr << "Summary: Returns the depth and breadth of coverage of features from A" << endl; cerr << "\t on the intervals in B." << endl << endl; @@ -149,8 +147,8 @@ void ShowHelp(void) { cerr << "\t\toverlap B on the _same_ strand." << endl; cerr << "\t\t- By default, overlaps are counted without respect to strand." << endl << endl; - cerr << "\t-S\t" << "Require different strandedness. That is, only report hits in A that" << endl; - cerr << "\t\toverlap B on the _opposite_ strand." << endl; + cerr << "\t-S\t" << "Require different strandedness. That is, only report hits in A" << endl; + cerr << "\t\tthat overlap B on the _opposite_ strand." << endl; cerr << "\t\t- By default, overlaps are counted without respect to strand." << endl << endl; cerr << "\t-hist\t" << "Report a histogram of coverage for each feature in B" << endl; diff --git a/src/fastaFromBed/Makefile b/src/fastaFromBed/Makefile index 3cd9e892..701a6604 100644 --- a/src/fastaFromBed/Makefile +++ b/src/fastaFromBed/Makefile @@ -25,14 +25,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= fastaFromBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/fastaFromBed/fastaFromBedMain.cpp b/src/fastaFromBed/fastaFromBedMain.cpp index c31676d9..06bce775 100644 --- a/src/fastaFromBed/fastaFromBedMain.cpp +++ b/src/fastaFromBed/fastaFromBedMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "fastaFromBed" +#define PROGRAM_NAME "bedtools getfasta" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void fastafrombed_help(void); -int main(int argc, char* argv[]) { +int fastafrombed_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -56,7 +56,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) fastafrombed_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -107,19 +107,16 @@ int main(int argc, char* argv[]) { Bed2Fa *b2f = new Bed2Fa(useNameOnly, fastaDbFile, bedFile, fastaOutFile, useFasta, useStrand); delete b2f; - - return 0; } else { - ShowHelp(); + fastafrombed_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void fastafrombed_help(void) { + + cerr << "\nTool: bedtools getfasta (aka fastaFromBed)" << endl; cerr << "Summary: Extract DNA sequences into a fasta file based on feature coordinates." << endl << endl; @@ -134,12 +131,10 @@ void ShowHelp(void) { cerr << "\t-tab\tWrite output in TAB delimited format." << endl; cerr << "\t\t- Default is FASTA format." << endl << endl; - cerr << "\t-s\tForce strandedness. If the feature occupies the antisense strand," << endl; - cerr << "\t\tthe sequence will be reverse complemented." << endl; + cerr << "\t-s\tForce strandedness. If the feature occupies the antisense," << endl; + cerr << "\t\tstrand, the sequence will be reverse complemented." << endl; cerr << "\t\t- By default, strand information is ignored." << endl << endl; - - // end the program here exit(1); diff --git a/src/flankBed/Makefile b/src/flankBed/Makefile index 1da20693..bc53291b 100644 --- a/src/flankBed/Makefile +++ b/src/flankBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= flankBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/flankBed/flankBedMain.cpp b/src/flankBed/flankBedMain.cpp index 062839e6..5600cec0 100644 --- a/src/flankBed/flankBedMain.cpp +++ b/src/flankBed/flankBedMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "flankBed" +#define PROGRAM_NAME "bedtools flank" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void flank_help(void); -int main(int argc, char* argv[]) { +int flank_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -54,7 +54,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) flank_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -137,15 +137,14 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + flank_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void flank_help(void) { + + cerr << "\nTool: bedtools flank (aka flankBed)" << endl; cerr << "Summary: Creates flanking interval(s) for each BED/GFF/VCF feature." << endl << endl; @@ -155,10 +154,12 @@ void ShowHelp(void) { cerr << "\t-b\t" << "Create flanking intervak using -b base pairs in each direction." << endl; cerr << "\t\t- (Integer) or (Float, e.g. 0.1) if used with -pct." << endl << endl; - cerr << "\t-l\t" << "The number of base pairs that a flank should start from orig. start coordinate." << endl; + cerr << "\t-l\t" << "The number of base pairs that a flank should start from" << endl; + cerr << "\t\torig. start coordinate." << endl; cerr << "\t\t- (Integer) or (Float, e.g. 0.1) if used with -pct." << endl << endl; - cerr << "\t-r\t" << "The number of base pairs that a flank should end from orig. end coordinate." << endl; + cerr << "\t-r\t" << "The number of base pairs that a flank should end from" << endl; + cerr << "\t\torig. end coordinate." << endl; cerr << "\t\t- (Integer) or (Float, e.g. 0.1) if used with -pct." << endl << endl; cerr << "\t-s\t" << "Define -l and -r based on strand." << endl; diff --git a/src/genomeCoverageBed/Makefile b/src/genomeCoverageBed/Makefile index 4194fdb5..a7725767 100644 --- a/src/genomeCoverageBed/Makefile +++ b/src/genomeCoverageBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= genomeCoverageBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/genomeCoverageBed/genomeCoverageMain.cpp b/src/genomeCoverageBed/genomeCoverageMain.cpp index a316e45a..43cb0246 100644 --- a/src/genomeCoverageBed/genomeCoverageMain.cpp +++ b/src/genomeCoverageBed/genomeCoverageMain.cpp @@ -15,16 +15,16 @@ Licenced under the GNU General Public License 2.0 license. using namespace std; // define our program name -#define PROGRAM_NAME "genomeCoverageBed" +#define PROGRAM_NAME "bedtools genomecov" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void genomecoverage_help(void); -int main(int argc, char* argv[]) { +int genomecoverage_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -64,7 +64,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) genomecoverage_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -205,21 +205,17 @@ int main(int argc, char* argv[]) { eachBaseZeroBased, add_gb_track_line, gb_track_opts); delete bc; - - return 0; } else { - ShowHelp(); + genomecoverage_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Authors: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; - cerr << " Assaf Gordon, CSHL" << endl << endl; +void genomecoverage_help(void) { + cerr << "\nTool: bedtools genomecov (aka genomeCoverageBed)" << endl; + cerr << "Summary: Compute the coverage of a feature file among a genome." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf> -g <genome>" << endl << endl; diff --git a/src/getOverlap/Makefile b/src/getOverlap/Makefile index be9ff2fa..6767447b 100644 --- a/src/getOverlap/Makefile +++ b/src/getOverlap/Makefile @@ -19,15 +19,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= getOverlap -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all - -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/getOverlap/getOverlap.cpp b/src/getOverlap/getOverlap.cpp index 20bb597b..ec981a2d 100644 --- a/src/getOverlap/getOverlap.cpp +++ b/src/getOverlap/getOverlap.cpp @@ -28,11 +28,11 @@ using namespace std; // function declarations -void ShowHelp(void); +void getoverlap_help(void); void DetermineInput(string &inFile, short &s1Col, short &e1Col, short &s2Col, short &e2Col); void ComputeOverlaps(istream &input, short &s1Col, short &e1Col, short &s2Col, short &e2Col); -int main(int argc, char* argv[]) { +int getoverlap_main(int argc, char* argv[]) { // input files string inFile = "stdin"; @@ -53,7 +53,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) getoverlap_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -92,7 +92,7 @@ int main(int argc, char* argv[]) { if (posColumns.size() != 4) { cerr << endl << "*****" << endl << "*****ERROR: Please specify 4, comma-separated position columns. " << endl << "*****" << endl; - ShowHelp(); + getoverlap_help(); } else { short s1, e1, s2, e2; @@ -105,16 +105,15 @@ int main(int argc, char* argv[]) { } } else { - ShowHelp(); + getoverlap_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void getoverlap_help(void) { + cerr << "\nTool: bedtools overlap (aka getOverlap)" << endl; + cerr << "Summary: Computes the amount of overlap (positive values)" << endl; cerr << "\t or distance (negative values) between genome features" << endl; cerr << "\t and reports the result at the end of the same line." << endl << endl; diff --git a/src/intersectBed/Makefile b/src/intersectBed/Makefile index 71cba93d..a6919d99 100644 --- a/src/intersectBed/Makefile +++ b/src/intersectBed/Makefile @@ -25,17 +25,13 @@ EXT_OBJECTS=$(patsubst %,$(OBJ_DIR)/%,$(_EXT_OBJECTS)) BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= intersectBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp - @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) + @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(DFLAGS) $(INCLUDES) $(EXT_OBJECTS): @$(MAKE) --no-print-directory -C $(UTILITIES_DIR)/bedFile/ diff --git a/src/intersectBed/intersectMain.cpp b/src/intersectBed/intersectMain.cpp index f1af974a..d5602e7c 100644 --- a/src/intersectBed/intersectMain.cpp +++ b/src/intersectBed/intersectMain.cpp @@ -224,15 +224,14 @@ int intersect_main(int argc, char* argv[]) { } else { intersect_help(); + return 0; } } void intersect_help(void) { - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; - + cerr << "\nTool: bedtools intersect (aka intersectBed)" << endl; + cerr << "Summary: Report overlaps between two feature files." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -a <bed/gff/vcf> -b <bed/gff/vcf>" << endl << endl; @@ -241,7 +240,7 @@ void intersect_help(void) { cerr << "\t-abam\t" << "The A input file is in BAM format. Output will be BAM as well." << endl << endl; - cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default is to write compressed BAM." << endl << endl; + cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default writes compressed BAM." << endl << endl; cerr << "\t-bed\t" << "When using BAM input (-abam), write output as BED. The default" << endl; cerr << "\t\tis to write output in BAM when using -abam." << endl << endl; @@ -281,18 +280,17 @@ void intersect_help(void) { cerr << "\t\t- In other words, if -f is 0.90 and -r is used, this requires" << endl; cerr << "\t\t that B overlap 90% of A and A _also_ overlaps 90% of B." << endl << endl; - cerr << "\t-s\t" << "Require same strandedness. That is, only report hits in B that" << endl; - cerr << "\t\toverlap A on the _same_ strand." << endl; + cerr << "\t-s\t" << "Require same strandedness. That is, only report hits in B" << endl; + cerr << "\t\tthat overlap A on the _same_ strand." << endl; cerr << "\t\t- By default, overlaps are reported without respect to strand." << endl << endl; - cerr << "\t-S\t" << "Require different strandedness. That is, only report hits in B that" << endl; - cerr << "\t\toverlap A on the _opposite_ strand." << endl; + cerr << "\t-S\t" << "Require different strandedness. That is, only report hits in B" << endl; + cerr << "\t\tthat overlap A on the _opposite_ strand." << endl; cerr << "\t\t- By default, overlaps are reported without respect to strand." << endl << endl; cerr << "\t-split\t" << "Treat \"split\" BAM or BED12 entries as distinct BED intervals." << endl << endl; - cerr << "\t-sorted\t" << "Use the \"chromsweep\" algorithm for sorted (-k1,1 -k2,2n) input" << endl; - cerr << "\t\tNOTE: this will trust, but not enforce that data is sorted. Caveat emptor." << endl << endl; + cerr << "\t-sorted\t" << "Use the \"chromsweep\" algorithm for sorted (-k1,1 -k2,2n) input" << endl << endl; cerr << "\t-header\t" << "Print the header from the A file prior to results." << endl << endl; diff --git a/src/linksBed/Makefile b/src/linksBed/Makefile index 75317bf2..7c354db9 100644 --- a/src/linksBed/Makefile +++ b/src/linksBed/Makefile @@ -18,14 +18,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= linksBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/linksBed/linksMain.cpp b/src/linksBed/linksMain.cpp index f4e5500d..8009d884 100644 --- a/src/linksBed/linksMain.cpp +++ b/src/linksBed/linksMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "linksBed" +#define PROGRAM_NAME "bedtools links" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void links_help(void); -int main(int argc, char* argv[]) { +int links_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -47,7 +47,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) links_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -93,19 +93,17 @@ int main(int argc, char* argv[]) { if (!showHelp) { BedLinks *bl = new BedLinks(bedFile, base, org, db); delete bl; - return 0; } else { - ShowHelp(); + links_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void links_help(void) { + cerr << "\nTool: bedtools links (aka linksBed)" << endl; + cerr << "Summary: Creates HTML links to an UCSC Genome Browser from a feature file." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf> > out.html" << endl << endl; diff --git a/src/maskFastaFromBed/Makefile b/src/maskFastaFromBed/Makefile index 9b65fc52..3b5ec085 100644 --- a/src/maskFastaFromBed/Makefile +++ b/src/maskFastaFromBed/Makefile @@ -17,14 +17,10 @@ EXT_OBJECTS=$(patsubst %,$(OBJ_DIR)/%,$(_EXT_OBJECTS)) BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= maskFastaFromBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/maskFastaFromBed/maskFastaFromBedMain.cpp b/src/maskFastaFromBed/maskFastaFromBedMain.cpp index 7fce56bb..5bb73908 100644 --- a/src/maskFastaFromBed/maskFastaFromBedMain.cpp +++ b/src/maskFastaFromBed/maskFastaFromBedMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "maskFastaFromBed" +#define PROGRAM_NAME "bedtools maskfasta" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void maskfastafrombed_help(void); -int main(int argc, char* argv[]) { +int maskfastafrombed_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -55,7 +55,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) maskfastafrombed_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -113,24 +113,20 @@ int main(int argc, char* argv[]) { MaskFastaFromBed *maskFasta = new MaskFastaFromBed(fastaInFile, bedFile, fastaOutFile, softMask, maskChar); delete maskFasta; - return 0; } else { - ShowHelp(); + maskfastafrombed_help(); } + return 0; } -void ShowHelp(void) { - - - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void maskfastafrombed_help(void) { + cerr << "\nTool: bedtools maskfasta (aka maskFastaFromBed)" << endl; + cerr << "Summary: Mask a fasta file based on feature coordinates." << endl << endl; - cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -fi <fasta> -out <fasta> -bed <bed/gff/vcf>" << endl << endl; + cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -fi <fasta> -fo <fasta> -bed <bed/gff/vcf>" << endl << endl; cerr << "Options:" << endl; cerr << "\t-fi\tInput FASTA file" << endl; @@ -138,8 +134,8 @@ void ShowHelp(void) { cerr << "\t-fo\tOutput FASTA file" << endl; cerr << "\t-soft\tEnforce \"soft\" masking. That is, instead of masking with Ns," << endl; cerr << "\t\tmask with lower-case bases." << endl; - cerr << "\t-mc\tReplace masking character. That is, instead of masking with Ns, use another character." << endl; - + cerr << "\t-mc\tReplace masking character. That is, instead of masking" << endl; + cerr << "\t\twith Ns, use another character." << endl << endl; // end the program here exit(1); diff --git a/src/mergeBed/Makefile b/src/mergeBed/Makefile index c6a08b6d..345571e2 100644 --- a/src/mergeBed/Makefile +++ b/src/mergeBed/Makefile @@ -18,14 +18,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= mergeBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/mergeBed/mergeMain.cpp b/src/mergeBed/mergeMain.cpp index 03ee9355..b91d4e1f 100644 --- a/src/mergeBed/mergeMain.cpp +++ b/src/mergeBed/mergeMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "mergeBed" +#define PROGRAM_NAME "bedtools merge" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void merge_help(void); -int main(int argc, char* argv[]) { +int merge_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -51,7 +51,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) merge_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -112,19 +112,17 @@ int main(int argc, char* argv[]) { if (!showHelp) { BedMerge *bm = new BedMerge(bedFile, numEntries, maxDistance, forceStrand, reportNames, reportScores, scoreOp); delete bm; - return 0; } else { - ShowHelp(); + merge_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; - +void merge_help(void) { + + cerr << "\nTool: bedtools merge (aka mergeBed)" << endl; + cerr << "Summary: Merges overlapping BED/GFF/VCF entries into a single interval." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf>" << endl << endl; diff --git a/src/multiBamCov/Makefile b/src/multiBamCov/Makefile index 9313ab95..cf992632 100644 --- a/src/multiBamCov/Makefile +++ b/src/multiBamCov/Makefile @@ -22,14 +22,10 @@ EXT_OBJECTS=$(patsubst %,$(OBJ_DIR)/%,$(_EXT_OBJECTS)) BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= multiBamCov -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/multiBamCov/multiBamCovMain.cpp b/src/multiBamCov/multiBamCovMain.cpp index 69b340dc..6b3c1b85 100644 --- a/src/multiBamCov/multiBamCovMain.cpp +++ b/src/multiBamCov/multiBamCovMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "multiBamCov" +#define PROGRAM_NAME "bedtools multicov" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void multibamcov_help(void); -int main(int argc, char* argv[]) { +int multibamcov_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -53,7 +53,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) multibamcov_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -107,19 +107,17 @@ int main(int argc, char* argv[]) { MultiCovBam *mc = new MultiCovBam(bamFiles, bedFile, minQual, properOnly, keepDuplicates, keepFailedQC); mc->CollectCoverage(); delete mc; - return 0; } else { - ShowHelp(); + multibamcov_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void multibamcov_help(void) { + cerr << "\nTool: bedtools multicov (aka multiBamCov)" << endl; + cerr << "Summary: Counts sequence coverage for multiple bams at specific loci." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -bams aln.1.bam aln.2.bam ... aln.n.bam -bed <bed/gff/vcf>" << endl << endl; @@ -132,12 +130,12 @@ void ShowHelp(void) { cerr << "\t-q\t" << "Minimum mapping quality allowed. Default is 0." << endl << endl; - cerr << "\t-D\t" << "Include duplicate-marked reads. Default is to count non-duplicates only" << endl << endl; + cerr << "\t-D\t" << "Include duplicate reads. Default counts non-duplicates only" << endl << endl; - cerr << "\t-F\t" << "Include failed-QC reads. Default is to count pass-QC reads only" << endl << endl; + cerr << "\t-F\t" << "Include failed-QC reads. Default counts pass-QC reads only" << endl << endl; - cerr << "\t-p\t" << "Only count proper pairs. Default is to count all alignments with MAPQ" << endl; - cerr << "\t\t" << "greater than the -q argument, regardless of the BAM FLAG field." << endl << endl; + cerr << "\t-p\t" << "Only count proper pairs. Default counts all alignments with" << endl; + cerr << "\t\t" << "MAPQ > -q argument, regardless of the BAM FLAG field." << endl << endl; // end the program here exit(1); diff --git a/src/multiIntersectBed/Makefile b/src/multiIntersectBed/Makefile index a076f3b4..4dfe6113 100644 --- a/src/multiIntersectBed/Makefile +++ b/src/multiIntersectBed/Makefile @@ -23,14 +23,10 @@ EXT_OBJECTS=$(patsubst %,$(OBJ_DIR)/%,$(_EXT_OBJECTS)) BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= multiIntersectBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/multiIntersectBed/multiIntersectBedMain.cpp b/src/multiIntersectBed/multiIntersectBedMain.cpp index 5b4b627b..d67bdb4c 100644 --- a/src/multiIntersectBed/multiIntersectBedMain.cpp +++ b/src/multiIntersectBed/multiIntersectBedMain.cpp @@ -26,7 +26,7 @@ using namespace std; // define our program name -#define PROGRAM_NAME "multiIntersectBed" +#define PROGRAM_NAME "bedtools multiinter" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) @@ -37,11 +37,10 @@ using namespace std; std::string stl_basename(const std::string& path); // function declarations -void ShowHelp(void); -void ShowExamples(void); +void multiintersect_help(void); +void multiintersect_examples(void); - -int main(int argc, char* argv[]) +int multiintersect_main(int argc, char* argv[]) { bool haveFiles = false; bool haveTitles = false; @@ -59,7 +58,7 @@ int main(int argc, char* argv[]) //Parse command line options if(argc <= 1) - ShowHelp(); + multiintersect_help(); for(int i = 1; i < argc; i++) { int parameterLength = (int)strlen(argv[i]); @@ -71,7 +70,7 @@ int main(int argc, char* argv[]) } if(showHelp == true) { - ShowHelp(); + multiintersect_help(); exit(1); } @@ -132,8 +131,8 @@ int main(int argc, char* argv[]) cluster = true; } else if(PARAMETER_CHECK("-examples", 9, parameterLength)) { - ShowHelp(); - ShowExamples(); + multiintersect_help(); + multiintersect_examples(); exit(1); } } @@ -163,15 +162,14 @@ int main(int argc, char* argv[]) mbi.MultiIntersect(); else mbi.Cluster(); + + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Authors: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; - cerr << " Assaf Gordon" << endl << endl; +void multiintersect_help(void) { + cerr << "\nTool: bedtools multiinter (aka multiIntersectBed)" << endl; + cerr << "Summary: Identifies common intervals among multiple" << endl; cerr << "\t BED/GFF/VCF files." << endl << endl; @@ -180,12 +178,12 @@ void ShowHelp(void) { cerr << "Options: " << endl; - cerr << "\t-cluster\t\t" << "Invoke Ryan's algorithm." << endl << endl; + cerr << "\t-cluster\t" << "Invoke Ryan Layers's clustering algorithm." << endl << endl; cerr << "\t-header\t\t" << "Print a header line." << endl; cerr << "\t\t\t(chrom/start/end + names of each file)." << endl << endl; - cerr << "\t-names\t\t" << "A list of names (one / file) to describe each file in -i." << endl; + cerr << "\t-names\t\t" << "A list of names (one/file) to describe each file in -i." << endl; cerr << "\t\t\tThese names will be printed in the header line." << endl << endl; cerr << "\t-g\t\t" << "Use genome file to calculate empty regions." << endl; @@ -196,14 +194,14 @@ void ShowHelp(void) { cerr << "\t\t\t- Requires the '-g FILE' parameter.\n" << endl; cerr << "\t-filler TEXT\t" << "Use TEXT when representing intervals having no value." << endl; - cerr << "\t\t\t- Default is '0', but you can use 'N/A' or any other text." << endl << endl; + cerr << "\t\t\t- Default is '0', but you can use 'N/A' or any text." << endl << endl; cerr << "\t-examples\t" << "Show detailed usage examples." << endl << endl; } -void ShowExamples() +void multiintersect_examples() { cerr << "Example usage:\n\n" \ "== Input files: ==\n" \ diff --git a/src/nucBed/Makefile b/src/nucBed/Makefile index b824c458..95ba76f0 100644 --- a/src/nucBed/Makefile +++ b/src/nucBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= nucBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/nucBed/nucBedMain.cpp b/src/nucBed/nucBedMain.cpp index f92ddd88..a56cf814 100644 --- a/src/nucBed/nucBedMain.cpp +++ b/src/nucBed/nucBedMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "nucBed" +#define PROGRAM_NAME "bedtools nuc" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void nuc_help(void); -int main(int argc, char* argv[]) { +int nuc_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -53,7 +53,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) nuc_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -101,20 +101,17 @@ int main(int argc, char* argv[]) { NucBed *nuc = new NucBed(fastaDbFile, bedFile, printSeq, hasPattern, pattern, forceStrand); delete nuc; - - return 0; } else { - ShowHelp(); + nuc_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void nuc_help(void) { + cerr << "\nTool: bedtools nuc (aka nucBed)" << endl; + cerr << "Summary: Profiles the nucleotide content of intervals in a fasta file." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -fi <fasta> -bed <bed/gff/vcf>" << endl << endl; @@ -124,11 +121,12 @@ void ShowHelp(void) { cerr << "\t-bed\tBED/GFF/VCF file of ranges to extract from -fi" << endl << endl; cerr << "\t-s\tProfile the sequence according to strand." << endl << endl; cerr << "\t-seq\tPrint the extracted sequence" << endl << endl; - cerr << "\t-pattern\tReport the number of times a user-defined sequence is observed (case-insensitive)." << endl << endl; + cerr << "\t-pattern\tReport the number of times a user-defined sequence" << endl; + cerr << "\t\t\tis observed (case-insensitive)." << endl << endl; cerr << "Output format: " << endl; - cerr << "\tThe following information will be reported after each original BED entry:" << endl; + cerr << "\tThe following information will be reported after each BED entry:" << endl; cerr << "\t 1) %AT content" << endl; cerr << "\t 2) %GC content" << endl; cerr << "\t 3) Number of As observed" << endl; @@ -138,9 +136,9 @@ void ShowHelp(void) { cerr << "\t 7) Number of Ns observed" << endl; cerr << "\t 8) Number of other bases observed" << endl; cerr << "\t 9) The length of the explored sequence/interval." << endl; - cerr << "\t 10) The sequence extracted from the FASTA file. (optional, if -seq is used)" << endl; - cerr << "\t 11) The number of times a user defined pattern was observed. (optional, if -pattern is used.)" << endl; - + cerr << "\t 10) The seq. extracted from the FASTA file. (opt., if -seq is used)" << endl; + cerr << "\t 11) The number of times a user's pattern was observed." << endl; + cerr << "\t (opt., if -pattern is used.)" << endl << endl; // end the program here exit(1); diff --git a/src/pairToBed/Makefile b/src/pairToBed/Makefile index 9d94beb4..015b2aa5 100644 --- a/src/pairToBed/Makefile +++ b/src/pairToBed/Makefile @@ -24,14 +24,10 @@ EXT_OBJECTS=$(patsubst %,$(OBJ_DIR)/%,$(_EXT_OBJECTS)) BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= pairToBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/pairToBed/pairToBedMain.cpp b/src/pairToBed/pairToBedMain.cpp index 38b8714a..d84ed33f 100644 --- a/src/pairToBed/pairToBedMain.cpp +++ b/src/pairToBed/pairToBedMain.cpp @@ -15,15 +15,15 @@ using namespace std; // define our program name -#define PROGRAM_NAME "pairToBed" +#define PROGRAM_NAME "bedtools pairtobed" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void pairtobed_help(void); -int main(int argc, char* argv[]) { +int pairtobed_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -60,7 +60,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) pairtobed_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -160,20 +160,18 @@ int main(int argc, char* argv[]) { searchType, sameStrand, diffStrand, inputIsBam, outputIsBam, uncompressedBam, useEditDistance); delete bi; - return 0; } else { - ShowHelp(); + pairtobed_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; - +void pairtobed_help(void) { + + cerr << "\nTool: bedtools pairtobed (aka pairToBed)" << endl; + cerr << "Summary: Report overlaps between a BEDPE file and a BED/GFF/VCF file." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -a <bedpe> -b <bed/gff/vcf>" << endl << endl; @@ -183,7 +181,7 @@ void ShowHelp(void) { cerr << "\t-abam\t" << "The A input file is in BAM format. Output will be BAM as well." << endl; cerr << "\t\t- Requires BAM to be grouped or sorted by query." << endl << endl; - cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default is to write compressed BAM." << endl << endl; + cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default writes compressed BAM." << endl << endl; cerr << "\t\tis to write output in BAM when using -abam." << endl << endl; cerr << "\t-bedpe\t" << "When using BAM input (-abam), write output as BEDPE. The default" << endl; diff --git a/src/pairToPair/Makefile b/src/pairToPair/Makefile index 4d75faaa..0e994bb9 100644 --- a/src/pairToPair/Makefile +++ b/src/pairToPair/Makefile @@ -18,14 +18,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= pairToPair -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/pairToPair/pairToPairMain.cpp b/src/pairToPair/pairToPairMain.cpp index 7f5761d0..5182df65 100644 --- a/src/pairToPair/pairToPairMain.cpp +++ b/src/pairToPair/pairToPairMain.cpp @@ -15,15 +15,15 @@ using namespace std; // define our program name -#define PROGRAM_NAME "pairToPair" +#define PROGRAM_NAME "bedtools pairtopair" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void pairtopair_help(void); -int main(int argc, char* argv[]) { +int pairtopair_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -58,7 +58,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) pairtopair_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -140,16 +140,16 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + pairtopair_help(); } + return 0; } -void ShowHelp(void) { - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void pairtopair_help(void) { + cerr << "\nTool: bedtools pairtopair (aka pairToPair)" << endl; + cerr << "Summary: Report overlaps between two paired-end BED files (BEDPE)." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -a <BEDPE> -b <BEDPE>" << endl << endl; @@ -162,13 +162,14 @@ void ShowHelp(void) { cerr << "\t\tneither\tReport overlaps if neither end of A overlaps B." << endl; cerr << "\t\teither\tReport overlaps if either ends of A overlap B." << endl; cerr << "\t\tboth\tReport overlaps if both ends of A overlap B." << endl; - cerr << "\t\tnotboth\tReport overlaps if one or neither of ends of A overlap B." << endl; + cerr << "\t\tnotboth\tReport overlaps if one or neither of A's overlap B." << endl; cerr << "\t\t- Default = both." << endl << endl; cerr << "\t-slop \t" << "The amount of slop (in b.p.). to be added to each footprint." << endl; - cerr << "\t\t*Note*: Slop is subtracted from start1 and start2 and added to end1 and end2." << endl << endl; - + cerr << "\t\t*Note*: Slop is subtracted from start1 and start2" << endl; + cerr << "\t\t\tand added to end1 and end2." << endl << endl; + cerr << "\t-ss\t" << "Add slop based to each BEDPE footprint based on strand." << endl; cerr << "\t\t- If strand is \"+\", slop is only added to the end coordinates." << endl; cerr << "\t\t- If strand is \"-\", slop is only added to the start coordinates." << endl; diff --git a/src/shuffleBed/Makefile b/src/shuffleBed/Makefile index 0265ae05..a20290cd 100644 --- a/src/shuffleBed/Makefile +++ b/src/shuffleBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= shuffleBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/shuffleBed/shuffleBedMain.cpp b/src/shuffleBed/shuffleBedMain.cpp index d731d1a7..38f3dacf 100644 --- a/src/shuffleBed/shuffleBedMain.cpp +++ b/src/shuffleBed/shuffleBedMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "shuffleBed" +#define PROGRAM_NAME "bedtools shuffle" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void shuffle_help(void); -int main(int argc, char* argv[]) { +int shuffle_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -54,7 +54,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) shuffle_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -129,16 +129,15 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + shuffle_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void shuffle_help(void) { + cerr << "\nTool: bedtools shuffle (aka shuffleBed)" << endl; + cerr << "Summary: Randomly permute the locations of a feature file among a genome." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf> -g <genome>" << endl << endl; diff --git a/src/slopBed/Makefile b/src/slopBed/Makefile index aed0b82d..9f888106 100644 --- a/src/slopBed/Makefile +++ b/src/slopBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= slopBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/slopBed/slopBedMain.cpp b/src/slopBed/slopBedMain.cpp index b5f148e5..c7d870f1 100644 --- a/src/slopBed/slopBedMain.cpp +++ b/src/slopBed/slopBedMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "slopBed" +#define PROGRAM_NAME "bedtools slop" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void slop_help(void); -int main(int argc, char* argv[]) { +int slop_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -54,7 +54,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) slop_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -136,22 +136,21 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + slop_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void slop_help(void) { + cerr << "\nTool: bedtools slop (aka slopBed)" << endl; + cerr << "Summary: Add requested base pairs of \"slop\" to each feature." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf> -g <genome> [-b <int> or (-l and -r)]" << endl << endl; cerr << "Options: " << endl; - cerr << "\t-b\t" << "Increase the BED/GFF/VCF entry by -b base pairs in each direction." << endl; + cerr << "\t-b\t" << "Increase the BED/GFF/VCF entry -b base pairs in each direction." << endl; cerr << "\t\t- (Integer) or (Float, e.g. 0.1) if used with -pct." << endl << endl; cerr << "\t-l\t" << "The number of base pairs to subtract from the start coordinate." << endl; diff --git a/src/sortBed/Makefile b/src/sortBed/Makefile index c675e68a..55037c04 100644 --- a/src/sortBed/Makefile +++ b/src/sortBed/Makefile @@ -18,14 +18,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= sortBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/sortBed/sortMain.cpp b/src/sortBed/sortMain.cpp index e58faa20..767c9b65 100644 --- a/src/sortBed/sortMain.cpp +++ b/src/sortBed/sortMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "sortBed" +#define PROGRAM_NAME "bedtools sort" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void sort_help(void); -int main(int argc, char* argv[]) { +int sort_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -51,7 +51,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) sort_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -135,15 +135,15 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + sort_help(); } + return 0; } -void ShowHelp(void) { +void sort_help(void) { - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; + cerr << "\nTool: bedtools sort (aka sortBed)" << endl; + cerr << "Summary: Sorts a feature file in various and useful ways." << endl << endl; cerr << "Usage: " << PROGRAM_NAME << " [OPTIONS] -i <bed/gff/vcf>" << endl << endl; diff --git a/src/subtractBed/Makefile b/src/subtractBed/Makefile index f67ac7b6..4d11368a 100644 --- a/src/subtractBed/Makefile +++ b/src/subtractBed/Makefile @@ -22,14 +22,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= subtractBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/subtractBed/subtractMain.cpp b/src/subtractBed/subtractMain.cpp index 58b4b412..8ea557d5 100644 --- a/src/subtractBed/subtractMain.cpp +++ b/src/subtractBed/subtractMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define our program name -#define PROGRAM_NAME "subtractBed" +#define PROGRAM_NAME "bedtools subtract" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void subtract_help(void); -int main(int argc, char* argv[]) { +int subtract_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -54,7 +54,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) subtract_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -112,16 +112,15 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + subtract_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void subtract_help(void) { + cerr << "\nTool: bedtools subtract (aka subtractBed)" << endl; + cerr << "Summary: Removes the portion(s) of an interval that is overlapped" << endl; cerr << "\t by another feature(s)." << endl << endl; @@ -132,8 +131,8 @@ void ShowHelp(void) { cerr << "\t\t- Default is 1E-9 (i.e., 1bp)." << endl; cerr << "\t\t- (FLOAT) (e.g. 0.50)" << endl << endl; - cerr << "\t-s\t" << "Require same strandedness. That is, only subtract hits in B that" << endl; - cerr << "\t\toverlap A on the _same_ strand." << endl; + cerr << "\t-s\t" << "Require same strandedness. That is, only subtract hits in B" << endl; + cerr << "\t\tthat overlap A on the _same_ strand." << endl; cerr << "\t\t- By default, overlaps are subtracted without respect to strand." << endl << endl; cerr << "\t-S\t" << "Force strandedness. That is, only subtract hits in B that" << endl; diff --git a/src/tagBam/Makefile b/src/tagBam/Makefile index 35b97a2c..6b48cc33 100644 --- a/src/tagBam/Makefile +++ b/src/tagBam/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= tagBam -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/tagBam/tagBamMain.cpp b/src/tagBam/tagBamMain.cpp index b4c750dc..1a985280 100644 --- a/src/tagBam/tagBamMain.cpp +++ b/src/tagBam/tagBamMain.cpp @@ -15,15 +15,15 @@ using namespace std; // define the version -#define PROGRAM_NAME "tagBam" +#define PROGRAM_NAME "bedtools tag" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void tagbam_help(void); -int main(int argc, char* argv[]) { +int tagbam_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -62,7 +62,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) tagbam_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -188,16 +188,15 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + tagbam_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void tagbam_help(void) { + cerr << "\nTool: bedtools tag (aka tagBam)" << endl; + cerr << "Summary: Annotates a BAM file based on overlaps with multiple BED/GFF/VCF files" << endl; cerr << "\t on the intervals in -i." << endl << endl; diff --git a/src/unionBedGraphs/Makefile b/src/unionBedGraphs/Makefile index bca92f26..56622af0 100755 --- a/src/unionBedGraphs/Makefile +++ b/src/unionBedGraphs/Makefile @@ -23,14 +23,10 @@ EXT_OBJECTS=$(patsubst %,$(OBJ_DIR)/%,$(_EXT_OBJECTS)) BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= unionBedGraphs -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/unionBedGraphs/unionBedGraphsMain.cpp b/src/unionBedGraphs/unionBedGraphsMain.cpp index b140b013..69c7546b 100644 --- a/src/unionBedGraphs/unionBedGraphsMain.cpp +++ b/src/unionBedGraphs/unionBedGraphsMain.cpp @@ -26,7 +26,7 @@ using namespace std; // define our program name -#define PROGRAM_NAME "unionBedGraphs" +#define PROGRAM_NAME "bedtools unionbedg" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) @@ -34,14 +34,14 @@ using namespace std; //STLized version of basename() // (because POSIX basename() modifies the input string pointer) // Additionally: removes any extension the basename might have. -std::string stl_basename(const std::string& path); +std::string ubg_stl_basename(const std::string& path); // function declarations -void ShowHelp(void); -void ShowExamples(void); +void unionbedgraphs_help(void); +void unionbedgraphs_showexamples(void); -int main(int argc, char* argv[]) +int unionbedgraphs_main(int argc, char* argv[]) { bool haveFiles = false; bool haveTitles = false; @@ -58,7 +58,7 @@ int main(int argc, char* argv[]) //Parse command line options if(argc <= 1) - ShowHelp(); + unionbedgraphs_help(); for(int i = 1; i < argc; i++) { int parameterLength = (int)strlen(argv[i]); @@ -70,7 +70,7 @@ int main(int argc, char* argv[]) } if(showHelp == true) { - ShowHelp(); + unionbedgraphs_help(); exit(1); } @@ -128,8 +128,8 @@ int main(int argc, char* argv[]) printEmptyRegions = true; } else if(PARAMETER_CHECK("-examples", 9, parameterLength)) { - ShowHelp(); - ShowExamples(); + unionbedgraphs_help(); + unionbedgraphs_showexamples(); exit(1); } } @@ -156,15 +156,14 @@ int main(int argc, char* argv[]) if (printHeader) ubg.PrintHeader(); ubg.Union(); + + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Authors: Assaf Gordon, CSHL" << endl; - cerr << " Aaron Quinlan (aaronquinlan@gmail.com)" << endl << endl; +void unionbedgraphs_help(void) { + cerr << "\nTool: bedtools unionbedg (aka unionBedGraphs)" << endl; + cerr << "Summary: Combines multiple BedGraph files into a single file," << endl; cerr << "\t allowing coverage comparisons between them." << endl << endl; @@ -177,7 +176,7 @@ void ShowHelp(void) { cerr << "\t-header\t\t" << "Print a header line." << endl; cerr << "\t\t\t(chrom/start/end + names of each file)." << endl << endl; - cerr << "\t-names\t\t" << "A list of names (one / file) to describe each file in -i." << endl; + cerr << "\t-names\t\t" << "A list of names (one/file) to describe each file in -i." << endl; cerr << "\t\t\tThese names will be printed in the header line." << endl << endl; cerr << "\t-g\t\t" << "Use genome file to calculate empty regions." << endl; @@ -188,14 +187,14 @@ void ShowHelp(void) { cerr << "\t\t\t- Requires the '-g FILE' parameter.\n" << endl; cerr << "\t-filler TEXT\t" << "Use TEXT when representing intervals having no value." << endl; - cerr << "\t\t\t- Default is '0', but you can use 'N/A' or any other text." << endl << endl; + cerr << "\t\t\t- Default is '0', but you can use 'N/A' or any text." << endl << endl; cerr << "\t-examples\t" << "Show detailed usage examples." << endl << endl; } -void ShowExamples() +void unionbedgraphs_showexamples() { cerr << "Example usage:\n\n" \ "== Input files: ==\n" \ @@ -276,7 +275,7 @@ void ShowExamples() ; } -std::string stl_basename(const std::string& path) +std::string ubg_stl_basename(const std::string& path) { string result; diff --git a/src/utils/BamTools/include/api/BamAlignment.h b/src/utils/BamTools/include/api/BamAlignment.h new file mode 100644 index 00000000..7535d93f --- /dev/null +++ b/src/utils/BamTools/include/api/BamAlignment.h @@ -0,0 +1,207 @@ +// *************************************************************************** +// BamAlignment.h (c) 2009 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 22 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides the BamAlignment data structure +// *************************************************************************** + +#ifndef BAMALIGNMENT_H +#define BAMALIGNMENT_H + +#include <api/api_global.h> +#include <api/BamAux.h> +#include <string> +#include <vector> + +namespace BamTools { + +// forward declaration of BamAlignment's friend classes +namespace Internal { + class BamReaderPrivate; + class BamWriterPrivate; +} // namespace Internal + +// BamAlignment data structure +struct API_EXPORT BamAlignment { + + // constructors & destructor + public: + BamAlignment(void); + BamAlignment(const BamAlignment& other); + ~BamAlignment(void); + + // queries against alignment flags + public: + bool IsDuplicate(void) const; // returns true if this read is a PCR duplicate + bool IsFailedQC(void) const; // returns true if this read failed quality control + bool IsFirstMate(void) const; // returns true if alignment is first mate on read + bool IsMapped(void) const; // returns true if alignment is mapped + bool IsMateMapped(void) const; // returns true if alignment's mate is mapped + bool IsMateReverseStrand(void) const; // returns true if alignment's mate mapped to reverse strand + bool IsPaired(void) const; // returns true if alignment part of paired-end read + bool IsPrimaryAlignment(void) const; // returns true if reported position is primary alignment + bool IsProperPair(void) const; // returns true if alignment is part of read that satisfied paired-end resolution + bool IsReverseStrand(void) const; // returns true if alignment mapped to reverse strand + bool IsSecondMate(void) const; // returns true if alignment is second mate on read + + // manipulate alignment flags + public: + void SetIsDuplicate(bool ok); // sets value of "PCR duplicate" flag + void SetIsFailedQC(bool ok); // sets value of "failed quality control" flag + void SetIsFirstMate(bool ok); // sets value of "alignment is first mate" flag + void SetIsMapped(bool ok); // sets value of "alignment is mapped" flag + void SetIsMateMapped(bool ok); // sets value of "alignment's mate is mapped" flag + void SetIsMateReverseStrand(bool ok); // sets value of "alignment's mate mapped to reverse strand" flag + void SetIsPaired(bool ok); // sets value of "alignment part of paired-end read" flag + void SetIsPrimaryAlignment(bool ok); // sets value of "position is primary alignment" flag + void SetIsProperPair(bool ok); // sets value of "alignment is part of read that satisfied paired-end resolution" flag + void SetIsReverseStrand(bool ok); // sets value of "alignment mapped to reverse strand" flag + void SetIsSecondMate(bool ok); // sets value of "alignment is second mate on read" flag + + // legacy methods (consider deprecated, but still available) + void SetIsMateUnmapped(bool ok); // complement of using SetIsMateMapped() + void SetIsSecondaryAlignment(bool ok); // complement of using SetIsPrimaryAlignment() + void SetIsUnmapped(bool ok); // complement of using SetIsMapped() + + // tag data access methods + public: + + // ------------------------------------------------------------------------------------- + // N.B. - The following tag access methods may not be used on BamAlignments fetched + // using BamReader::GetNextAlignmentCore(). Attempting to use them will not result in + // error message (to keep output clean) but will ALWAYS return false. Only user-created + // BamAlignments or those retrieved using BamReader::GetNextAlignment() are valid here. + // + // You can call BuildCharData() on such an alignment retrieved by GetNextAlignmentCore(). + // This populates all the character data, and will enable subsequent queries on tag data. + // ------------------------------------------------------------------------------------- + + // adds a tag + bool AddTag(const std::string& tag, const std::string& type, const std::string& value); + bool AddTag(const std::string& tag, const std::string& type, const uint32_t& value); + bool AddTag(const std::string& tag, const std::string& type, const int32_t& value); + bool AddTag(const std::string& tag, const std::string& type, const float& value); + + // adds a "binary array" tag + bool AddTag(const std::string& tag, const std::vector<uint8_t>& values); + bool AddTag(const std::string& tag, const std::vector<int8_t>& values); + bool AddTag(const std::string& tag, const std::vector<uint16_t>& values); + bool AddTag(const std::string& tag, const std::vector<int16_t>& values); + bool AddTag(const std::string& tag, const std::vector<uint32_t>& values); + bool AddTag(const std::string& tag, const std::vector<int32_t>& values); + bool AddTag(const std::string& tag, const std::vector<float>& values); + + // edits a tag + bool EditTag(const std::string& tag, const std::string& type, const std::string& value); + bool EditTag(const std::string& tag, const std::string& type, const uint32_t& value); + bool EditTag(const std::string& tag, const std::string& type, const int32_t& value); + bool EditTag(const std::string& tag, const std::string& type, const float& value); + + // edits a "binary array" tag + bool EditTag(const std::string& tag, const std::vector<uint8_t>& values); + bool EditTag(const std::string& tag, const std::vector<int8_t>& values); + bool EditTag(const std::string& tag, const std::vector<uint16_t>& values); + bool EditTag(const std::string& tag, const std::vector<int16_t>& values); + bool EditTag(const std::string& tag, const std::vector<uint32_t>& values); + bool EditTag(const std::string& tag, const std::vector<int32_t>& values); + bool EditTag(const std::string& tag, const std::vector<float>& values); + + // retrieves data for a tag + bool GetTag(const std::string& tag, std::string& destination) const; + bool GetTag(const std::string& tag, uint32_t& destination) const; + bool GetTag(const std::string& tag, int32_t& destination) const; + bool GetTag(const std::string& tag, float& destination) const; + + // retrieves data for a "binary array" tag + bool GetTag(const std::string& tag, std::vector<uint32_t>& destination) const; + bool GetTag(const std::string& tag, std::vector<int32_t>& destination) const; + bool GetTag(const std::string& tag, std::vector<float>& destination) const; + + // retrieves the BAM tag-type character for a tag + bool GetTagType(const std::string& tag, char& type) const; + + // legacy methods (consider deprecated, but still available) + bool GetEditDistance(uint32_t& editDistance) const; // retrieves value of "NM" tag + bool GetReadGroup(std::string& readGroup) const; // retrieves value of "RG" tag + + // returns true if alignment has a record for this tag name + bool HasTag(const std::string& tag) const; + + // removes a tag + bool RemoveTag(const std::string& tag); + + // additional methods + public: + // populates alignment string fields + bool BuildCharData(void); + // calculates alignment end position + int GetEndPosition(bool usePadded = false, bool zeroBased = true) const; + + // public data fields + public: + std::string Name; // read name + int32_t Length; // length of query sequence + std::string QueryBases; // 'original' sequence (as reported from sequencing machine) + std::string AlignedBases; // 'aligned' sequence (includes any indels, padding, clipping) + std::string Qualities; // FASTQ qualities (ASCII characters, not numeric values) + std::string TagData; // tag data (use provided methods to query/modify) + int32_t RefID; // ID number for reference sequence + int32_t Position; // position (0-based) where alignment starts + uint16_t Bin; // BAM (standard) index bin number for this alignment + uint16_t MapQuality; // mapping quality score + uint32_t AlignmentFlag; // alignment bit-flag (use provided methods to query/modify) + std::vector<CigarOp> CigarData; // CIGAR operations for this alignment + int32_t MateRefID; // ID number for reference sequence where alignment's mate was aligned + int32_t MatePosition; // position (0-based) where alignment's mate starts + int32_t InsertSize; // mate-pair insert size + std::string Filename; // name of BAM file which this alignment comes from + + //! \cond + // internal utility methods + private: + bool FindTag(const std::string& tag, + char*& pTagData, + const unsigned int& tagDataLength, + unsigned int& numBytesParsed) const; + bool IsValidSize(const std::string& tag, + const std::string& type) const; + bool SkipToNextTag(const char storageType, + char*& pTagData, + unsigned int& numBytesParsed) const; + + // internal data + private: + + struct BamAlignmentSupportData { + + // data members + std::string AllCharData; + uint32_t BlockLength; + uint32_t NumCigarOperations; + uint32_t QueryNameLength; + uint32_t QuerySequenceLength; + bool HasCoreOnly; + + // constructor + BamAlignmentSupportData(void) + : BlockLength(0) + , NumCigarOperations(0) + , QueryNameLength(0) + , QuerySequenceLength(0) + , HasCoreOnly(false) + { } + }; + BamAlignmentSupportData SupportData; + friend class Internal::BamReaderPrivate; + friend class Internal::BamWriterPrivate; + //! \endcond +}; + +typedef std::vector<BamAlignment> BamAlignmentVector; + +} // namespace BamTools + +#endif // BAMALIGNMENT_H diff --git a/src/utils/BamTools/include/api/BamAux.h b/src/utils/BamTools/include/api/BamAux.h new file mode 100644 index 00000000..d171e706 --- /dev/null +++ b/src/utils/BamTools/include/api/BamAux.h @@ -0,0 +1,457 @@ +// *************************************************************************** +// BamAux.h (c) 2009 Derek Barnett, Michael Str�mberg +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 4 March 2011 (DB) +// --------------------------------------------------------------------------- +// Provides data structures & utility methods that are used throughout the API. +// *************************************************************************** + +#ifndef BAMAUX_H +#define BAMAUX_H + +#include <api/api_global.h> +#include <fstream> +#include <iostream> +#include <string> +#include <vector> + +/*! \file BamAux.h + + Provides data structures & utility methods that are used throughout the API. +*/ +/*! \namespace BamTools + \brief Contains all BamTools classes & methods. + + The BamTools API contained in this namespace contains classes and methods + for reading, writing, and manipulating BAM alignment files. +*/ +namespace BamTools { + +// ---------------------------------------------------------------- +// CigarOp + +/*! \struct BamTools::CigarOp + \brief Represents a CIGAR alignment operation. + + \sa http://samtools.sourceforge.net/SAM-1.3.pdf for more details on using CIGAR operations. +*/ +struct API_EXPORT CigarOp { + + char Type; //!< CIGAR operation type (MIDNSHP) + uint32_t Length; //!< CIGAR operation length (number of bases) + + //! constructor + CigarOp(const char type = '\0', + const uint32_t& length = 0) + : Type(type) + , Length(length) + { } +}; + +// ---------------------------------------------------------------- +// RefData + +/*! \struct BamTools::RefData + \brief Represents a reference sequence entry +*/ +struct API_EXPORT RefData { + + std::string RefName; //!< name of reference sequence + int32_t RefLength; //!< length of reference sequence + + //! constructor + RefData(const std::string& name = "", + const int32_t& length = 0) + : RefName(name) + , RefLength(length) + { } +}; + +//! convenience typedef for vector of RefData entries +typedef std::vector<RefData> RefVector; + +// ---------------------------------------------------------------- +// BamRegion + +/*! \struct BamTools::BamRegion + \brief Represents a sequential genomic region + + Allowed to span multiple (sequential) references. +*/ +struct API_EXPORT BamRegion { + + int LeftRefID; //!< reference ID for region's left boundary + int LeftPosition; //!< position for region's left boundary + int RightRefID; //!< reference ID for region's right boundary + int RightPosition; //!< position for region's right boundary + + //! constructor + BamRegion(const int& leftID = -1, + const int& leftPos = -1, + const int& rightID = -1, + const int& rightPos = -1) + : LeftRefID(leftID) + , LeftPosition(leftPos) + , RightRefID(rightID) + , RightPosition(rightPos) + { } + + //! copy constructor + BamRegion(const BamRegion& other) + : LeftRefID(other.LeftRefID) + , LeftPosition(other.LeftPosition) + , RightRefID(other.RightRefID) + , RightPosition(other.RightPosition) + { } + + //! Clears region boundaries + void clear(void) { + LeftRefID = -1; LeftPosition = -1; + RightRefID = -1; RightPosition = -1; + } + + //! Returns true if region has a left boundary + bool isLeftBoundSpecified(void) const { + return ( LeftRefID >= 0 && LeftPosition >= 0 ); + } + + //! Returns true if region boundaries are not defined + bool isNull(void) const { + return ( !isLeftBoundSpecified() && !isRightBoundSpecified() ); + } + + //! Returns true if region has a right boundary + bool isRightBoundSpecified(void) const { + return ( RightRefID >= 0 && RightPosition >= 0 ); + } +}; + +// ---------------------------------------------------------------- +// General utility methods + +/*! \fn bool FileExists(const std::string& filename) + \brief checks if file exists + + Attempts to open file in a read-only mode. + + \return \c true if file can be opened successfully +*/ +API_EXPORT inline bool FileExists(const std::string& filename) { + std::ifstream f(filename.c_str(), std::ifstream::in); + return !f.fail(); +} + +/*! \fn void SwapEndian_16(int16_t& x) + \brief swaps endianness of signed 16-bit integer, in place + + Swaps endian representation of value in \a x. +*/ +API_EXPORT inline void SwapEndian_16(int16_t& x) { + x = ((x >> 8) | (x << 8)); +} + +/*! \fn void SwapEndian_16(uint16_t& x) + \brief swaps endianness of unsigned 16-bit integer, in place + + Swaps endian representation of value in \a x. +*/ +API_EXPORT inline void SwapEndian_16(uint16_t& x) { + x = ((x >> 8) | (x << 8)); +} + +/*! \fn void SwapEndian_32(int32_t& x) + \brief swaps endianness of signed 32-bit integer, in place + + Swaps endian representation of value in \a x. +*/ +API_EXPORT inline void SwapEndian_32(int32_t& x) { + x = ( (x >> 24) | + ((x << 8) & 0x00FF0000) | + ((x >> 8) & 0x0000FF00) | + (x << 24) + ); +} + +/*! \fn void SwapEndian_32(uint32_t& x) + \brief swaps endianness of unsigned 32-bit integer, in place + + Swaps endian representation of value in \a x. +*/ +API_EXPORT inline void SwapEndian_32(uint32_t& x) { + x = ( (x >> 24) | + ((x << 8) & 0x00FF0000) | + ((x >> 8) & 0x0000FF00) | + (x << 24) + ); +} + +/*! \fn void SwapEndian_64(int64_t& x) + \brief swaps endianness of signed 64-bit integer, in place + + Swaps endian representation of value in \a x. +*/ +API_EXPORT inline void SwapEndian_64(int64_t& x) { + x = ( (x >> 56) | + ((x << 40) & 0x00FF000000000000ll) | + ((x << 24) & 0x0000FF0000000000ll) | + ((x << 8) & 0x000000FF00000000ll) | + ((x >> 8) & 0x00000000FF000000ll) | + ((x >> 24) & 0x0000000000FF0000ll) | + ((x >> 40) & 0x000000000000FF00ll) | + (x << 56) + ); +} + +/*! \fn void SwapEndian_64(uint64_t& x) + \brief swaps endianness of unsigned 64-bit integer, in place + + Swaps endian representation of value in \a x. +*/ +API_EXPORT inline void SwapEndian_64(uint64_t& x) { + x = ( (x >> 56) | + ((x << 40) & 0x00FF000000000000ll) | + ((x << 24) & 0x0000FF0000000000ll) | + ((x << 8) & 0x000000FF00000000ll) | + ((x >> 8) & 0x00000000FF000000ll) | + ((x >> 24) & 0x0000000000FF0000ll) | + ((x >> 40) & 0x000000000000FF00ll) | + (x << 56) + ); +} + +/*! \fn void SwapEndian_16p(char* data) + \brief swaps endianness of the next 2 bytes in a buffer, in place + + Swaps endian representation the next 2 bytes in \a data. +*/ +API_EXPORT inline void SwapEndian_16p(char* data) { + uint16_t& value = (uint16_t&)*data; + SwapEndian_16(value); +} + +/*! \fn void SwapEndian_32p(char* data) + \brief swaps endianness of the next 4 bytes in a buffer, in place + + Swaps endian representation the next 4 bytes in \a data. +*/ +API_EXPORT inline void SwapEndian_32p(char* data) { + uint32_t& value = (uint32_t&)*data; + SwapEndian_32(value); +} + +/*! \fn void SwapEndian_64p(char* data) + \brief swaps endianness of the next 8 bytes in a buffer, in place + + Swaps endian representation the next 8 bytes in \a data. +*/ +API_EXPORT inline void SwapEndian_64p(char* data) { + uint64_t& value = (uint64_t&)*data; + SwapEndian_64(value); +} + +/*! \fn bool SystemIsBigEndian(void) + \brief checks host architecture's byte order + \return \c true if system uses big-endian ordering +*/ +API_EXPORT inline bool SystemIsBigEndian(void) { + const uint16_t one = 0x0001; + return ((*(char*) &one) == 0 ); +} + +/*! \fn void PackUnsignedInt(char* buffer, unsigned int value) + \brief stores unsigned integer value in a byte buffer + + \param buffer destination buffer + \param value unsigned integer to 'pack' in buffer +*/ +API_EXPORT inline void PackUnsignedInt(char* buffer, unsigned int value) { + buffer[0] = (char)value; + buffer[1] = (char)(value >> 8); + buffer[2] = (char)(value >> 16); + buffer[3] = (char)(value >> 24); +} + +/*! \fn void PackUnsignedShort(char* buffer, unsigned short value) + \brief stores unsigned short integer value in a byte buffer + + \param buffer destination buffer + \param value unsigned short integer to 'pack' in buffer +*/ +API_EXPORT inline void PackUnsignedShort(char* buffer, unsigned short value) { + buffer[0] = (char)value; + buffer[1] = (char)(value >> 8); +} + +/*! \fn double UnpackDouble(const char* buffer) + \brief reads a double value from byte buffer + + \param buffer source byte buffer + \return the (double) value read from the buffer +*/ +API_EXPORT inline double UnpackDouble(const char* buffer) { + union { double value; unsigned char valueBuffer[sizeof(double)]; } un; + un.value = 0; + un.valueBuffer[0] = buffer[0]; + un.valueBuffer[1] = buffer[1]; + un.valueBuffer[2] = buffer[2]; + un.valueBuffer[3] = buffer[3]; + un.valueBuffer[4] = buffer[4]; + un.valueBuffer[5] = buffer[5]; + un.valueBuffer[6] = buffer[6]; + un.valueBuffer[7] = buffer[7]; + return un.value; +} + +/*! \fn double UnpackDouble(char* buffer) + \brief reads a double value from byte buffer + + This is an overloaded function. + + \param buffer source byte buffer + \return the (double) value read from the buffer +*/ +API_EXPORT inline double UnpackDouble(char* buffer) { + return UnpackDouble( (const char*)buffer ); +} + +/*! \fn double UnpackFloat(const char* buffer) + \brief reads a float value from byte buffer + + \param buffer source byte buffer + \return the (float) value read from the buffer +*/ +API_EXPORT inline float UnpackFloat(const char* buffer) { + union { float value; unsigned char valueBuffer[sizeof(float)]; } un; + un.value = 0; + un.valueBuffer[0] = buffer[0]; + un.valueBuffer[1] = buffer[1]; + un.valueBuffer[2] = buffer[2]; + un.valueBuffer[3] = buffer[3]; + return un.value; +} + +/*! \fn double UnpackFloat(char* buffer) + \brief reads a float value from byte buffer + + This is an overloaded function. + + \param buffer source byte buffer + \return the (float) value read from the buffer +*/ +API_EXPORT inline float UnpackFloat(char* buffer) { + return UnpackFloat( (const char*)buffer ); +} + +/*! \fn signed int UnpackSignedInt(const char* buffer) + \brief reads a signed integer value from byte buffer + + \param buffer source byte buffer + \return the (signed int) value read from the buffer +*/ +API_EXPORT inline signed int UnpackSignedInt(const char* buffer) { + union { signed int value; unsigned char valueBuffer[sizeof(signed int)]; } un; + un.value = 0; + un.valueBuffer[0] = buffer[0]; + un.valueBuffer[1] = buffer[1]; + un.valueBuffer[2] = buffer[2]; + un.valueBuffer[3] = buffer[3]; + return un.value; +} + +/*! \fn signed int UnpackSignedInt(char* buffer) + \brief reads a signed integer value from byte buffer + + This is an overloaded function. + + \param buffer source byte buffer + \return the (signed int) value read from the buffer +*/ +API_EXPORT inline signed int UnpackSignedInt(char* buffer) { + return UnpackSignedInt( (const char*) buffer ); +} + +/*! \fn signed short UnpackSignedShort(const char* buffer) + \brief reads a signed short integer value from byte buffer + + \param buffer source byte buffer + \return the (signed short) value read from the buffer +*/ +API_EXPORT inline signed short UnpackSignedShort(const char* buffer) { + union { signed short value; unsigned char valueBuffer[sizeof(signed short)]; } un; + un.value = 0; + un.valueBuffer[0] = buffer[0]; + un.valueBuffer[1] = buffer[1]; + return un.value; +} + +/*! \fn signed short UnpackSignedShort(char* buffer) + \brief reads a signed short integer value from byte buffer + + This is an overloaded function. + + \param buffer source byte buffer + \return the (signed short) value read from the buffer +*/ +API_EXPORT inline signed short UnpackSignedShort(char* buffer) { + return UnpackSignedShort( (const char*)buffer ); +} + +/*! \fn unsigned int UnpackUnsignedInt(const char* buffer) + \brief reads an unsigned integer value from byte buffer + + \param buffer source byte buffer + \return the (unsigned int) value read from the buffer +*/ +API_EXPORT inline unsigned int UnpackUnsignedInt(const char* buffer) { + union { unsigned int value; unsigned char valueBuffer[sizeof(unsigned int)]; } un; + un.value = 0; + un.valueBuffer[0] = buffer[0]; + un.valueBuffer[1] = buffer[1]; + un.valueBuffer[2] = buffer[2]; + un.valueBuffer[3] = buffer[3]; + return un.value; +} + +/*! \fn unsigned int UnpackUnsignedInt(char* buffer) + \brief reads an unsigned integer value from byte buffer + + This is an overloaded function. + + \param buffer source byte buffer + \return the (unsigned int) value read from the buffer +*/ +API_EXPORT inline unsigned int UnpackUnsignedInt(char* buffer) { + return UnpackUnsignedInt( (const char*)buffer ); +} + +/*! \fn unsigned short UnpackUnsignedShort(const char* buffer) + \brief reads an unsigned short integer value from byte buffer + + \param buffer source byte buffer + \return the (unsigned short) value read from the buffer +*/ +API_EXPORT inline unsigned short UnpackUnsignedShort(const char* buffer) { + union { unsigned short value; unsigned char valueBuffer[sizeof(unsigned short)]; } un; + un.value = 0; + un.valueBuffer[0] = buffer[0]; + un.valueBuffer[1] = buffer[1]; + return un.value; +} + +/*! \fn unsigned short UnpackUnsignedShort(char* buffer) + \brief reads an unsigned short integer value from byte buffer + + This is an overloaded function. + + \param buffer source byte buffer + \return the (unsigned short) value read from the buffer +*/ +API_EXPORT inline unsigned short UnpackUnsignedShort(char* buffer) { + return UnpackUnsignedShort( (const char*)buffer ); +} + +} // namespace BamTools + +#endif // BAMAUX_H diff --git a/src/utils/BamTools/include/api/BamConstants.h b/src/utils/BamTools/include/api/BamConstants.h new file mode 100644 index 00000000..e433c8e7 --- /dev/null +++ b/src/utils/BamTools/include/api/BamConstants.h @@ -0,0 +1,128 @@ +// *************************************************************************** +// BamConstants.h (c) 2011 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 19 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides basic constants for handling BAM files. +// *************************************************************************** + +#ifndef BAM_CONSTANTS_H +#define BAM_CONSTANTS_H + +#include <string> + +/*! \namespace BamTools::Constants + \brief Provides basic constants for handling BAM files. +*/ + +namespace BamTools { +namespace Constants { + +const int BAM_SIZEOF_INT = 4; + +// header magic number +const char* const BAM_HEADER_MAGIC = "BAM\1"; +const unsigned int BAM_HEADER_MAGIC_LENGTH = 4; + +// BAM alignment core size +const int BAM_CORE_SIZE = 32; +const int BAM_CORE_BUFFER_SIZE = 8; + +// BAM alignment flags +const int BAM_ALIGNMENT_PAIRED = 0x0001; +const int BAM_ALIGNMENT_PROPER_PAIR = 0x0002; +const int BAM_ALIGNMENT_UNMAPPED = 0x0004; +const int BAM_ALIGNMENT_MATE_UNMAPPED = 0x0008; +const int BAM_ALIGNMENT_REVERSE_STRAND = 0x0010; +const int BAM_ALIGNMENT_MATE_REVERSE_STRAND = 0x0020; +const int BAM_ALIGNMENT_READ_1 = 0x0040; +const int BAM_ALIGNMENT_READ_2 = 0x0080; +const int BAM_ALIGNMENT_SECONDARY = 0x0100; +const int BAM_ALIGNMENT_QC_FAILED = 0x0200; +const int BAM_ALIGNMENT_DUPLICATE = 0x0400; + +// CIGAR constants +const char* const BAM_CIGAR_LOOKUP = "MIDNSHP=X"; +const int BAM_CIGAR_MATCH = 0; +const int BAM_CIGAR_INS = 1; +const int BAM_CIGAR_DEL = 2; +const int BAM_CIGAR_REFSKIP = 3; +const int BAM_CIGAR_SOFTCLIP = 4; +const int BAM_CIGAR_HARDCLIP = 5; +const int BAM_CIGAR_PAD = 6; +const int BAM_CIGAR_SEQMATCH = 7; +const int BAM_CIGAR_MISMATCH = 8; + +const char BAM_CIGAR_MATCH_CHAR = 'M'; +const char BAM_CIGAR_INS_CHAR = 'I'; +const char BAM_CIGAR_DEL_CHAR = 'D'; +const char BAM_CIGAR_REFSKIP_CHAR = 'N'; +const char BAM_CIGAR_SOFTCLIP_CHAR = 'S'; +const char BAM_CIGAR_HARDCLIP_CHAR = 'H'; +const char BAM_CIGAR_PAD_CHAR = 'P'; +const char BAM_CIGAR_SEQMATCH_CHAR = '='; +const char BAM_CIGAR_MISMATCH_CHAR = 'X'; + +const int BAM_CIGAR_SHIFT = 4; +const int BAM_CIGAR_MASK = ((1 << BAM_CIGAR_SHIFT) - 1); + +// BAM tag types +const char BAM_TAG_TYPE_ASCII = 'A'; +const char BAM_TAG_TYPE_UINT8 = 'c'; +const char BAM_TAG_TYPE_INT8 = 'C'; +const char BAM_TAG_TYPE_UINT16 = 's'; +const char BAM_TAG_TYPE_INT16 = 'S'; +const char BAM_TAG_TYPE_UINT32 = 'i'; +const char BAM_TAG_TYPE_INT32 = 'I'; +const char BAM_TAG_TYPE_FLOAT = 'f'; +const char BAM_TAG_TYPE_STRING = 'Z'; +const char BAM_TAG_TYPE_HEX = 'H'; +const char BAM_TAG_TYPE_ARRAY = 'B'; + +const size_t BAM_TAG_TAGSIZE = 2; +const size_t BAM_TAG_TYPESIZE = 1; +const int BAM_TAG_ARRAYBASE_SIZE = 8; + +// DNA bases +const char* const BAM_DNA_LOOKUP = "=ACMGRSVTWYHKDBN"; +const unsigned char BAM_BASECODE_EQUAL = 0; +const unsigned char BAM_BASECODE_A = 1; +const unsigned char BAM_BASECODE_C = 2; +const unsigned char BAM_BASECODE_G = 4; +const unsigned char BAM_BASECODE_T = 8; +const unsigned char BAM_BASECODE_N = 15; + +const char BAM_DNA_EQUAL = '='; +const char BAM_DNA_A = 'A'; +const char BAM_DNA_C = 'C'; +const char BAM_DNA_G = 'G'; +const char BAM_DNA_T = 'T'; +const char BAM_DNA_N = 'N'; +const char BAM_DNA_DEL = '-'; +const char BAM_DNA_PAD = '*'; + +// zlib constants +const int GZIP_ID1 = 31; +const int GZIP_ID2 = 139; +const int CM_DEFLATE = 8; +const int FLG_FEXTRA = 4; +const int OS_UNKNOWN = 255; +const int BGZF_XLEN = 6; +const int BGZF_ID1 = 66; +const int BGZF_ID2 = 67; +const int BGZF_LEN = 2; +const int GZIP_WINDOW_BITS = -15; +const int Z_DEFAULT_MEM_LEVEL = 8; + +// BZGF constants +const int BGZF_BLOCK_HEADER_LENGTH = 18; +const int BGZF_BLOCK_FOOTER_LENGTH = 8; +const int BGZF_MAX_BLOCK_SIZE = 65536; +const int BGZF_DEFAULT_BLOCK_SIZE = 65536; + +} // namespace Constants +} // namespace BamTools + +#endif // BAM_CONSTANTS_H diff --git a/src/utils/BamTools/include/api/BamIndex.h b/src/utils/BamTools/include/api/BamIndex.h new file mode 100644 index 00000000..00a8f017 --- /dev/null +++ b/src/utils/BamTools/include/api/BamIndex.h @@ -0,0 +1,80 @@ +// *************************************************************************** +// BamIndex.h (c) 2009 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 5 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides basic BAM index interface +// *************************************************************************** + +#ifndef BAM_INDEX_H +#define BAM_INDEX_H + +#include <api/api_global.h> +#include <api/BamAux.h> +#include <string> + +namespace BamTools { + +namespace Internal { + class BamReaderPrivate; +} // namespace Internal + +/*! \class BamTools::BamIndex + \brief Provides methods for generating & loading BAM index files. + + This class straddles the line between public API and internal + implementation detail. Most client code should never have to use this + class directly. + + It is exposed to the public API to allow advanced users to implement + their own custom indexing schemes. + + More documentation on methods & enums coming soon. +*/ + +class API_EXPORT BamIndex { + + // enums + public: + // specify index-caching behavior + enum IndexCacheMode { FullIndexCaching = 0 // store entire index file contents in memory + , LimitedIndexCaching // store only index data for current reference + , NoIndexCaching // do not store any index data between jumps + }; + + // list of supported BamIndex types + enum IndexType { BAMTOOLS = 0 + , STANDARD + }; + + // ctor & dtor + public: + BamIndex(Internal::BamReaderPrivate* reader) : m_reader(reader) { } + virtual ~BamIndex(void) { } + + // index interface + public: + // builds index from associated BAM file & writes out to index file + virtual bool Create(void) =0; // creates index file from BAM file + // returns whether reference has alignments or no + virtual bool HasAlignments(const int& referenceID) const =0; + // attempts to use index data to jump to @region, returns success/fail + // a "successful" jump indicates no error, but not whether this region has data + // * thus, the method sets a flag to indicate whether there are alignments + // available after the jump position + virtual bool Jump(const BamTools::BamRegion& region, bool* hasAlignmentsInRegion) =0; + // loads existing data from file into memory + virtual bool Load(const std::string& filename) =0; + // change the index caching behavior + virtual void SetCacheMode(const BamIndex::IndexCacheMode& mode) =0; + + // data members + protected: + Internal::BamReaderPrivate* m_reader; // copy, not ownedprivate: +}; + +} // namespace BamTools + +#endif // BAM_INDEX_H diff --git a/src/utils/BamTools/include/api/BamMultiReader.h b/src/utils/BamTools/include/api/BamMultiReader.h new file mode 100644 index 00000000..cc49ec8e --- /dev/null +++ b/src/utils/BamTools/include/api/BamMultiReader.h @@ -0,0 +1,127 @@ +// *************************************************************************** +// BamMultiReader.h (c) 2010 Erik Garrison, Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 15 March 2011 (DB) +// --------------------------------------------------------------------------- +// Convenience class for reading multiple BAM files. +// *************************************************************************** + +#ifndef BAMMULTIREADER_H +#define BAMMULTIREADER_H + +#include <api/api_global.h> +#include <api/BamReader.h> +#include <map> +#include <sstream> +#include <string> +#include <utility> + +namespace BamTools { + +namespace Internal { + class BamMultiReaderPrivate; +} // namespace Internal + +class API_EXPORT BamMultiReader { + + public: + enum SortOrder { SortedByPosition = 0 + , SortedByReadName + , Unsorted + }; + + // constructor / destructor + public: + BamMultiReader(void); + ~BamMultiReader(void); + + // public interface + public: + + // ---------------------- + // BAM file operations + // ---------------------- + + // closes all open BAM files + void Close(void); + // close only the requested BAM file + void CloseFile(const std::string& filename); + // returns list of filenames for all open BAM files + const std::vector<std::string> Filenames(void) const; + // returns true if multireader has any open BAM files + bool HasOpenReaders(void) const; + // performs random-access jump within current BAM files + bool Jump(int refID, int position = 0); + // opens BAM files + bool Open(const std::vector<std::string>& filenames); + // opens a single BAM file, adding to any other current BAM files + bool OpenFile(const std::string& filename); + // returns file pointers to beginning of alignments + bool Rewind(void); + // sets the target region of interest + bool SetRegion(const BamRegion& region); + // sets the target region of interest + bool SetRegion(const int& leftRefID, + const int& leftPosition, + const int& rightRefID, + const int& rightPosition); + + // ---------------------- + // access alignment data + // ---------------------- + + // retrieves next available alignment + bool GetNextAlignment(BamAlignment& alignment); + // retrieves next available alignmnet (without populating the alignment's string data fields) + bool GetNextAlignmentCore(BamAlignment& alignment); + + // sets the expected sorting order for reading across multiple BAM files + void SetSortOrder(const SortOrder& order); + + // ---------------------- + // access auxiliary data + // ---------------------- + + // returns unified SAM header for all files + SamHeader GetHeader(void) const; + // returns unified SAM header text for all files + std::string GetHeaderText(void) const; + // returns number of reference sequences + int GetReferenceCount(void) const; + // returns all reference sequence entries. + const BamTools::RefVector GetReferenceData(void) const; + // returns the ID of the reference with this name. + int GetReferenceID(const std::string& refName) const; + + // ---------------------- + // BAM index operations + // ---------------------- + + // creates index files for current BAM files + bool CreateIndexes(const BamIndex::IndexType& type = BamIndex::STANDARD); + // returns true if all BAM files have index data available + bool HasIndexes(void) const; + // looks for index files that match current BAM files + bool LocateIndexes(const BamIndex::IndexType& preferredType = BamIndex::STANDARD); + // opens index files for current BAM files. + bool OpenIndexes(const std::vector<std::string>& indexFilenames); + // changes the caching behavior of the index data + void SetIndexCacheMode(const BamIndex::IndexCacheMode& mode); + + // deprecated methods + public: + // returns \c true if all BAM files have index data available. + bool IsIndexLoaded(void) const; + // convenience method for printing filenames to stdout + void PrintFilenames(void) const; + + // private implementation + private: + Internal::BamMultiReaderPrivate* d; +}; + +} // namespace BamTools + +#endif // BAMMULTIREADER_H diff --git a/src/utils/BamTools/include/api/BamReader.h b/src/utils/BamTools/include/api/BamReader.h new file mode 100644 index 00000000..85b0c0d5 --- /dev/null +++ b/src/utils/BamTools/include/api/BamReader.h @@ -0,0 +1,118 @@ +// *************************************************************************** +// BamReader.h (c) 2009 Derek Barnett, Michael Str�mberg +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 4 March 2011 (DB) +// --------------------------------------------------------------------------- +// Provides read access to BAM files. +// *************************************************************************** + +#ifndef BAMREADER_H +#define BAMREADER_H + +#include <api/api_global.h> +#include <api/BamAlignment.h> +#include <api/BamIndex.h> +#include <api/SamHeader.h> +#include <string> + +namespace BamTools { + +namespace Internal { + class BamReaderPrivate; +} // namespace Internal + +class API_EXPORT BamReader { + + // constructor / destructor + public: + BamReader(void); + ~BamReader(void); + + // public interface + public: + + // ---------------------- + // BAM file operations + // ---------------------- + + // closes the current BAM file + void Close(void); + // returns filename of current BAM file + const std::string GetFilename(void) const; + // returns true if a BAM file is open for reading + bool IsOpen(void) const; + // performs random-access jump within BAM file + bool Jump(int refID, int position = 0); + // opens a BAM file + bool Open(const std::string& filename); + // returns internal file pointer to beginning of alignment data + bool Rewind(void); + // sets the target region of interest + bool SetRegion(const BamRegion& region); + // sets the target region of interest + bool SetRegion(const int& leftRefID, + const int& leftPosition, + const int& rightRefID, + const int& rightPosition); + + // ---------------------- + // access alignment data + // ---------------------- + + // retrieves next available alignment + bool GetNextAlignment(BamAlignment& alignment); + // retrieves next available alignmnet (without populating the alignment's string data fields) + bool GetNextAlignmentCore(BamAlignment& alignment); + + // ---------------------- + // access header data + // ---------------------- + + // returns SAM header data + SamHeader GetHeader(void) const; + // returns SAM header data, as SAM-formatted text + std::string GetHeaderText(void) const; + + // ---------------------- + // access reference data + // ---------------------- + + // returns the number of reference sequences + int GetReferenceCount(void) const; + // returns all reference sequence entries + const RefVector& GetReferenceData(void) const; + // returns the ID of the reference with this name + int GetReferenceID(const std::string& refName) const; + + // ---------------------- + // BAM index operations + // ---------------------- + + // creates an index file for current BAM file, using the requested index type + bool CreateIndex(const BamIndex::IndexType& type = BamIndex::STANDARD); + // returns true if index data is available + bool HasIndex(void) const; + // looks in BAM file's directory for a matching index file + bool LocateIndex(const BamIndex::IndexType& preferredType = BamIndex::STANDARD); + // opens a BAM index file + bool OpenIndex(const std::string& indexFilename); + // sets a custom BamIndex on this reader + void SetIndex(BamIndex* index); + // changes the caching behavior of the index data + void SetIndexCacheMode(const BamIndex::IndexCacheMode& mode); + + // deprecated methods + public: + // returns true if index data is available + bool IsIndexLoaded(void) const; + + // private implementation + private: + Internal::BamReaderPrivate* d; +}; + +} // namespace BamTools + +#endif // BAMREADER_H diff --git a/src/utils/BamTools/include/api/BamWriter.h b/src/utils/BamTools/include/api/BamWriter.h new file mode 100644 index 00000000..476dbecf --- /dev/null +++ b/src/utils/BamTools/include/api/BamWriter.h @@ -0,0 +1,64 @@ +// *************************************************************************** +// BamWriter.h (c) 2009 Michael Str�mberg, Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 4 March 2011 (DB) +// --------------------------------------------------------------------------- +// Provides the basic functionality for producing BAM files +// *************************************************************************** + +#ifndef BAMWRITER_H +#define BAMWRITER_H + +#include <api/api_global.h> +#include <api/BamAux.h> +#include <string> + +namespace BamTools { + +class BamAlignment; +class SamHeader; + +namespace Internal { + class BamWriterPrivate; +} // namespace Internal + +class API_EXPORT BamWriter { + + public: enum CompressionMode { Compressed = 0 + , Uncompressed + }; + + // ctor & dtor + public: + BamWriter(void); + ~BamWriter(void); + + // public interface + public: + // closes the current BAM file + void Close(void); + // returns true if BAM file is open for writing + bool IsOpen(void) const; + // opens a BAM file for writing + bool Open(const std::string& filename, + const std::string& samHeaderText, + const RefVector& referenceSequences); + // opens a BAM file for writing + bool Open(const std::string& filename, + const SamHeader& samHeader, + const RefVector& referenceSequences); + // saves the alignment to the alignment archive + void SaveAlignment(const BamAlignment& alignment); + // sets the output compression mode + void SetCompressionMode(const CompressionMode& compressionMode); + + // private implementation + private: + Internal::BamWriterPrivate* d; +}; + +} // namespace BamTools + +#endif // BAMWRITER_H diff --git a/src/utils/BamTools/include/api/SamConstants.h b/src/utils/BamTools/include/api/SamConstants.h new file mode 100644 index 00000000..d3459202 --- /dev/null +++ b/src/utils/BamTools/include/api/SamConstants.h @@ -0,0 +1,96 @@ +// *************************************************************************** +// SamConstants.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 19 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides constants for SAM header +// *************************************************************************** + +#ifndef SAM_CONSTANTS_H +#define SAM_CONSTANTS_H + +#include <api/api_global.h> +#include <string> + +namespace BamTools { +namespace Constants { + +// basic char constants used in SAM format +const char SAM_COLON = ':'; +const char SAM_EQUAL = '='; +const char SAM_PERIOD = '.'; +const char SAM_STAR = '*'; +const char SAM_TAB = '\t'; +const std::string SAM_DIGITS = "0123456789"; + +// HD entries +const std::string SAM_HD_BEGIN_TOKEN = "@HD"; +const std::string SAM_HD_VERSION_TAG = "VN"; +const std::string SAM_HD_SORTORDER_TAG = "SO"; +const std::string SAM_HD_GROUPORDER_TAG = "GO"; + +// SQ entries +const std::string SAM_SQ_BEGIN_TOKEN = "@SQ"; +const std::string SAM_SQ_ASSEMBLYID_TAG = "AS"; +const std::string SAM_SQ_CHECKSUM_TAG = "M5"; +const std::string SAM_SQ_LENGTH_TAG = "LN"; +const std::string SAM_SQ_NAME_TAG = "SN"; +const std::string SAM_SQ_SPECIES_TAG = "SP"; +const std::string SAM_SQ_URI_TAG = "UR"; + +// RG entries +const std::string SAM_RG_BEGIN_TOKEN = "@RG"; +const std::string SAM_RG_DESCRIPTION_TAG = "DS"; +const std::string SAM_RG_FLOWORDER_TAG = "FO"; +const std::string SAM_RG_ID_TAG = "ID"; +const std::string SAM_RG_KEYSEQUENCE_TAG = "KS"; +const std::string SAM_RG_LIBRARY_TAG = "LB"; +const std::string SAM_RG_PLATFORMUNIT_TAG = "PU"; +const std::string SAM_RG_PREDICTEDINSERTSIZE_TAG = "PI"; +const std::string SAM_RG_PRODUCTIONDATE_TAG = "DT"; +const std::string SAM_RG_PROGRAM_TAG = "PG"; +const std::string SAM_RG_SAMPLE_TAG = "SM"; +const std::string SAM_RG_SEQCENTER_TAG = "CN"; +const std::string SAM_RG_SEQTECHNOLOGY_TAG = "PL"; + +// PG entries +const std::string SAM_PG_BEGIN_TOKEN = "@PG"; +const std::string SAM_PG_COMMANDLINE_TAG = "CL"; +const std::string SAM_PG_ID_TAG = "ID"; +const std::string SAM_PG_NAME_TAG = "PN"; +const std::string SAM_PG_PREVIOUSPROGRAM_TAG = "PP"; +const std::string SAM_PG_VERSION_TAG = "VN"; + +// CO entries +const std::string SAM_CO_BEGIN_TOKEN = "@CO"; + +// HD:SO values +const std::string SAM_HD_SORTORDER_COORDINATE = "coordinate"; +const std::string SAM_HD_SORTORDER_QUERYNAME = "queryname"; +const std::string SAM_HD_SORTORDER_UNKNOWN = "unknown"; +const std::string SAM_HD_SORTORDER_UNSORTED = "unsorted"; + +// HD:GO values +const std::string SAM_HD_GROUPORDER_NONE = "none"; +const std::string SAM_HD_GROUPORDER_QUERY = "query"; +const std::string SAM_HD_GROUPORDER_REFERENCE = "reference"; + +// SQ:LN values +const unsigned int SAM_SQ_LENGTH_MIN = 1; +const unsigned int SAM_SQ_LENGTH_MAX = 536870911; // 2^29 - 1 + +// RG:PL values +const std::string SAM_RG_SEQTECHNOLOGY_CAPILLARY = "CAPILLARY"; +const std::string SAM_RG_SEQTECHNOLOGY_HELICOS = "HELICOS"; +const std::string SAM_RG_SEQTECHNOLOGY_ILLUMINA = "ILLUMINA"; +const std::string SAM_RG_SEQTECHNOLOGY_IONTORRENT = "IONTORRENT"; +const std::string SAM_RG_SEQTECHNOLOGY_LS454 = "LS454"; +const std::string SAM_RG_SEQTECHNOLOGY_PACBIO = "PACBIO"; +const std::string SAM_RG_SEQTECHNOLOGY_SOLID = "SOLID"; + +} // namespace Constants +} // namespace BamTools + +#endif // SAM_CONSTANTS_H diff --git a/src/utils/BamTools/include/api/SamHeader.h b/src/utils/BamTools/include/api/SamHeader.h new file mode 100644 index 00000000..5c7a1019 --- /dev/null +++ b/src/utils/BamTools/include/api/SamHeader.h @@ -0,0 +1,69 @@ +// *************************************************************************** +// SamHeader.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 18 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides direct read/write access to the SAM header data fields. +// *************************************************************************** + +#ifndef SAM_HEADER_H +#define SAM_HEADER_H + +#include <api/api_global.h> +#include <api/SamProgramChain.h> +#include <api/SamReadGroupDictionary.h> +#include <api/SamSequenceDictionary.h> +#include <string> +#include <vector> + +namespace BamTools { + +struct API_EXPORT SamHeader { + + // ctor & dtor + SamHeader(const std::string& headerText = ""); + SamHeader(const SamHeader& other); + ~SamHeader(void); + + // query/modify entire SamHeader + void Clear(void); // clears all header contents + bool IsValid(bool verbose = false) const; // returns true if SAM header is well-formed + void SetHeaderText(const std::string& headerText); // replaces data fields with contents of SAM-formatted text + std::string ToString(void) const; // returns the printable, SAM-formatted header text + + // convenience query methods + bool HasVersion(void) const; // returns true if header contains format version entry + bool HasSortOrder(void) const; // returns true if header contains sort order entry + bool HasGroupOrder(void) const; // returns true if header contains group order entry + bool HasSequences(void) const; // returns true if header contains any sequence entries + bool HasReadGroups(void) const; // returns true if header contains any read group entries + bool HasPrograms(void) const; // returns true if header contains any program record entries + bool HasComments(void) const; // returns true if header contains comments + + // -------------- + // data members + // -------------- + + // header metadata (@HD line) + std::string Version; // VN:<Version> *Required for valid SAM header, if @HD record is present* + std::string SortOrder; // SO:<SortOrder> + std::string GroupOrder; // GO:<GroupOrder> + + // header sequences (@SQ entries) + SamSequenceDictionary Sequences; + + // header read groups (@RG entries) + SamReadGroupDictionary ReadGroups; + + // header program data (@PG entries) + SamProgramChain Programs; + + // header comments (@CO entries) + std::vector<std::string> Comments; +}; + +} // namespace BamTools + +#endif // SAM_HEADER_H diff --git a/src/utils/BamTools/include/api/SamProgram.h b/src/utils/BamTools/include/api/SamProgram.h new file mode 100644 index 00000000..3c89059b --- /dev/null +++ b/src/utils/BamTools/include/api/SamProgram.h @@ -0,0 +1,62 @@ +// *************************************************************************** +// SamProgram.h (c) 2011 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 19 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides direct read/write access to the SAM header program records. +// *************************************************************************** + +#ifndef SAM_PROGRAM_H +#define SAM_PROGRAM_H + +#include "api/api_global.h" +#include <string> + +namespace BamTools { + +class SamProgramChain; + +struct API_EXPORT SamProgram { + + // ctor & dtor + SamProgram(void); + SamProgram(const std::string& id); + SamProgram(const SamProgram& other); + ~SamProgram(void); + + // query/modify entire program record + void Clear(void); // clears all data fields + + // convenience query methods + bool HasCommandLine(void) const; // returns true if program record has a command line entry + bool HasID(void) const; // returns true if program record has an ID + bool HasName(void) const; // returns true if program record has a name + bool HasPreviousProgramID(void) const; // returns true if program record has a 'previous program ID' + bool HasVersion(void) const; // returns true if program record has a version + + // data members + std::string CommandLine; // CL:<CommandLine> + std::string ID; // ID:<ID> *Required for valid SAM header* + std::string Name; // PN:<Name> + std::string PreviousProgramID; // PP:<PreviousProgramID> + std::string Version; // VN:<Version> + + // internal (non-standard) methods & fields + private: + bool HasNextProgramID(void) const; + std::string NextProgramID; + friend class BamTools::SamProgramChain; +}; + +/*! \fn bool operator==(const SamProgram& lhs, const SamProgram& rhs) + \brief tests equality by comparing program IDs +*/ +API_EXPORT inline bool operator==(const SamProgram& lhs, const SamProgram& rhs) { + return lhs.ID == rhs.ID; +} + +} // namespace BamTools + +#endif // SAM_PROGRAM_H diff --git a/src/utils/BamTools/include/api/SamProgramChain.h b/src/utils/BamTools/include/api/SamProgramChain.h new file mode 100644 index 00000000..4cb16fc3 --- /dev/null +++ b/src/utils/BamTools/include/api/SamProgramChain.h @@ -0,0 +1,86 @@ +// *************************************************************************** +// SamProgramChain.h (c) 2011 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 19 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides methods for operating on a SamProgram record "chain" +// *************************************************************************** + +#ifndef SAM_PROGRAMCHAIN_H +#define SAM_PROGRAMCHAIN_H + +#include <api/api_global.h> +#include <api/SamProgram.h> +#include <string> +#include <vector> + +namespace BamTools { + +// chain is *NOT* sorted in any order +// use First()/Last() to retrieve oldest/newest programs, respectively +typedef std::vector<SamProgram> SamProgramContainer; +typedef SamProgramContainer::iterator SamProgramIterator; +typedef SamProgramContainer::const_iterator SamProgramConstIterator; + +class API_EXPORT SamProgramChain { + + // ctor & dtor + public: + SamProgramChain(void); + SamProgramChain(const SamProgramChain& other); + ~SamProgramChain(void); + + // query/modify program data + public: + // appends a program record to the chain + void Add(SamProgram& program); + void Add(std::vector<SamProgram>& programs); + + // clears all read group entries + void Clear(void); + + // returns true if chain contains this program record (matches on ID) + bool Contains(const SamProgram& program) const; + bool Contains(const std::string& programId) const; + + // returns the first (oldest) program in the chain + SamProgram& First(void); + const SamProgram& First(void) const; + + // returns true if chain is empty + bool IsEmpty(void) const; + + // returns last (most recent) program in the chain + SamProgram& Last(void); + const SamProgram& Last(void) const; + + // returns number of program records in the chain + int Size(void) const; + + // retrieves a modifiable reference to the SamProgram object associated with this ID + SamProgram& operator[](const std::string& programId); + + // retrieve STL-compatible iterators + public: + SamProgramIterator Begin(void); // returns iterator to begin() + SamProgramConstIterator Begin(void) const; // returns const_iterator to begin() + SamProgramConstIterator ConstBegin(void) const; // returns const_iterator to begin() + SamProgramIterator End(void); // returns iterator to end() + SamProgramConstIterator End(void) const; // returns const_iterator to end() + SamProgramConstIterator ConstEnd(void) const; // returns const_iterator to end() + + // internal methods + private: + int IndexOf(const std::string& programId) const; + const std::string NextIdFor(const std::string& programId) const; + + // data members + private: + SamProgramContainer m_data; +}; + +} // namespace BamTools + +#endif // SAM_PROGRAMCHAIN_H diff --git a/src/utils/BamTools/include/api/SamReadGroup.h b/src/utils/BamTools/include/api/SamReadGroup.h new file mode 100644 index 00000000..b203d3cd --- /dev/null +++ b/src/utils/BamTools/include/api/SamReadGroup.h @@ -0,0 +1,69 @@ +// *************************************************************************** +// SamReadGroup.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 18 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides direct read/write access to the SAM read group data fields. +// *************************************************************************** + +#ifndef SAM_READGROUP_H +#define SAM_READGROUP_H + +#include "api/api_global.h" +#include <string> + +namespace BamTools { + +struct API_EXPORT SamReadGroup { + + // ctor & dtor + SamReadGroup(void); + SamReadGroup(const std::string& id); + SamReadGroup(const SamReadGroup& other); + ~SamReadGroup(void); + + // query/modify entire read group + void Clear(void); // clears all data fields + + // convenience query methods + bool HasDescription(void) const; // returns true if read group has a description + bool HasFlowOrder(void) const; // returns true if read group has a flow order entry + bool HasID(void) const; // returns true if read group has a group ID + bool HasKeySequence(void) const; // returns true if read group has a key sequence + bool HasLibrary(void) const; // returns true if read group has a library name + bool HasPlatformUnit(void) const; // returns true if read group has a platform unit ID + bool HasPredictedInsertSize(void) const; // returns true if read group has a predicted insert size + bool HasProductionDate(void) const; // returns true if read group has a production date + bool HasProgram(void) const; // returns true if read group has a program entry + bool HasSample(void) const; // returns true if read group has a sample name + bool HasSequencingCenter(void) const; // returns true if read group has a sequencing center ID + bool HasSequencingTechnology(void) const; // returns true if read group has a sequencing technology ID + + + // data fields + std::string Description; // DS:<Description> + std::string FlowOrder; // FO:<FlowOrder> + std::string ID; // ID:<ID> *Required for valid SAM header* + std::string KeySequence; // KS:<KeySequence> + std::string Library; // LB:<Library> + std::string PlatformUnit; // PU:<PlatformUnit> + std::string PredictedInsertSize; // PI:<PredictedInsertSize> + std::string ProductionDate; // DT:<ProductionDate> + std::string Program; // PG:<Program> + std::string Sample; // SM:<Sample> + std::string SequencingCenter; // CN:<SequencingCenter> + std::string SequencingTechnology; // PL:<SequencingTechnology> +}; + +/*! \fn bool operator==(const SamReadGroup& lhs, const SamReadGroup& rhs) + \brief tests equality by comparing read group IDs +*/ +API_EXPORT inline bool operator==(const SamReadGroup& lhs, const SamReadGroup& rhs) { + return lhs.ID == rhs.ID; +} + +} // namespace BamTools + +#endif // SAM_READGROUP_H diff --git a/src/utils/BamTools/include/api/SamReadGroupDictionary.h b/src/utils/BamTools/include/api/SamReadGroupDictionary.h new file mode 100644 index 00000000..8ec40e22 --- /dev/null +++ b/src/utils/BamTools/include/api/SamReadGroupDictionary.h @@ -0,0 +1,87 @@ +// *************************************************************************** +// SamReadGroupDictionary.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 18 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides methods for operating on a collection of SamReadGroup entries. +// *************************************************************************** + +#ifndef SAM_READGROUP_DICTIONARY_H +#define SAM_READGROUP_DICTIONARY_H + +#include <api/api_global.h> +#include <api/SamReadGroup.h> +#include <string> +#include <vector> + +namespace BamTools { + +typedef std::vector<SamReadGroup> SamReadGroupContainer; +typedef SamReadGroupContainer::iterator SamReadGroupIterator; +typedef SamReadGroupContainer::const_iterator SamReadGroupConstIterator; + +class API_EXPORT SamReadGroupDictionary { + + // ctor & dtor + public: + SamReadGroupDictionary(void); + SamReadGroupDictionary(const SamReadGroupDictionary& other); + ~SamReadGroupDictionary(void); + + // query/modify read group data + public: + // adds a read group + void Add(const SamReadGroup& readGroup); + void Add(const std::string& readGroupId); + + // adds multiple read groups + void Add(const std::vector<SamReadGroup>& readGroups); + void Add(const std::vector<std::string>& readGroupIds); + + // clears all read group entries + void Clear(void); + + // returns true if dictionary contains this read group + bool Contains(const SamReadGroup& readGroup) const; + bool Contains(const std::string& readGroupId) const; + + // returns true if dictionary is empty + bool IsEmpty(void) const; + + // removes read group, if found + void Remove(const SamReadGroup& readGroup); + void Remove(const std::string& readGroupId); + + // removes multiple read groups + void Remove(const std::vector<SamReadGroup>& readGroups); + void Remove(const std::vector<std::string>& readGroupIds); + + // returns number of read groups in dictionary + int Size(void) const; + + // retrieves a modifiable reference to the SamReadGroup object associated with this ID + SamReadGroup& operator[](const std::string& readGroupId); + + // retrieve STL-compatible iterators + public: + SamReadGroupIterator Begin(void); // returns iterator to begin() + SamReadGroupConstIterator Begin(void) const; // returns const_iterator to begin() + SamReadGroupConstIterator ConstBegin(void) const; // returns const_iterator to begin() + SamReadGroupIterator End(void); // returns iterator to end() + SamReadGroupConstIterator End(void) const; // returns const_iterator to end() + SamReadGroupConstIterator ConstEnd(void) const; // returns const_iterator to end() + + // internal methods + private: + int IndexOf(const std::string& readGroupId) const; + + // data members + private: + SamReadGroupContainer m_data; +}; + +} // namespace BamTools + +#endif // SAM_READGROUP_DICTIONARY_H diff --git a/src/utils/BamTools/include/api/SamSequence.h b/src/utils/BamTools/include/api/SamSequence.h new file mode 100644 index 00000000..054e58f9 --- /dev/null +++ b/src/utils/BamTools/include/api/SamSequence.h @@ -0,0 +1,61 @@ +// *************************************************************************** +// SamSequence.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 18 April 2011 (DB) +// --------------------------------------------------------------------------- +// Provides direct read/write access to the SAM sequence data fields. +// *************************************************************************** + +#ifndef SAM_SEQUENCE_H +#define SAM_SEQUENCE_H + +#include <api/api_global.h> +#include <string> + +namespace BamTools { + +struct API_EXPORT SamSequence { + + // ctor & dtor + SamSequence(void); + SamSequence(const std::string& name, const int& length); + SamSequence(const std::string& name, const std::string& length); + SamSequence(const SamSequence& other); + ~SamSequence(void); + + // query/modify entire sequence + void Clear(void); // clears all contents + + // convenience query methods + bool HasAssemblyID(void) const; // returns true if sequence has an assembly ID + bool HasChecksum(void) const; // returns true if sequence has an MD5 checksum + bool HasLength(void) const; // returns true if sequence has a length + bool HasName(void) const; // returns true if sequence has a name + bool HasSpecies(void) const; // returns true if sequence has a species ID + bool HasURI(void) const; // returns true if sequence has a URI + + // data members + std::string AssemblyID; // AS:<AssemblyID> + std::string Checksum; // M5:<Checksum> + std::string Length; // LN:<Length> *Required for valid SAM header* + std::string Name; // SN:<Name> *Required for valid SAM header* + std::string Species; // SP:<Species> + std::string URI; // UR:<URI> +}; + +/*! \fn bool operator==(const SamSequence& lhs, const SamSequence& rhs) + \brief tests equality by comparing sequence names, lengths, & checksums (if available) +*/ +API_EXPORT inline bool operator==(const SamSequence& lhs, const SamSequence& rhs) { + if ( lhs.Name != rhs.Name ) return false; + if ( lhs.Length != rhs.Length ) return false; + if ( lhs.HasChecksum() && rhs.HasChecksum() ) + return (lhs.Checksum == rhs.Checksum); + else return true; +} + +} // namespace BamTools + +#endif // SAM_SEQUENCE_H diff --git a/src/utils/BamTools/include/api/SamSequenceDictionary.h b/src/utils/BamTools/include/api/SamSequenceDictionary.h new file mode 100644 index 00000000..1ac73261 --- /dev/null +++ b/src/utils/BamTools/include/api/SamSequenceDictionary.h @@ -0,0 +1,89 @@ +// *************************************************************************** +// SamSequenceDictionary.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 18 April 2011 +// --------------------------------------------------------------------------- +// Provides methods for operating on a collection of SamSequence entries. +// *************************************************************************** + +#ifndef SAM_SEQUENCE_DICTIONARY_H +#define SAM_SEQUENCE_DICTIONARY_H + +#include <api/api_global.h> +#include <api/SamSequence.h> +#include <string> +#include <map> +#include <vector> + +namespace BamTools { + +typedef std::vector<SamSequence> SamSequenceContainer; +typedef SamSequenceContainer::iterator SamSequenceIterator; +typedef SamSequenceContainer::const_iterator SamSequenceConstIterator; + +class API_EXPORT SamSequenceDictionary { + + // ctor & dtor + public: + SamSequenceDictionary(void); + SamSequenceDictionary(const SamSequenceDictionary& other); + ~SamSequenceDictionary(void); + + // query/modify sequence data + public: + // adds a sequence + void Add(const SamSequence& sequence); + void Add(const std::string& name, const int& length); + + // adds multiple sequences + void Add(const std::vector<SamSequence>& sequences); + void Add(const std::map<std::string, int>& sequenceMap); + + // clears all sequence entries + void Clear(void); + + // returns true if dictionary contains this sequence + bool Contains(const SamSequence& sequence) const; + bool Contains(const std::string& sequenceName) const; + + // returns true if dictionary is empty + bool IsEmpty(void) const; + + // removes sequence, if found + void Remove(const SamSequence& sequence); + void Remove(const std::string& sequenceName); + + // removes multiple sequences + void Remove(const std::vector<SamSequence>& sequences); + void Remove(const std::vector<std::string>& sequenceNames); + + // returns number of sequences in dictionary + int Size(void) const; + + // retrieves a modifiable reference to the SamSequence object associated with this name + SamSequence& operator[](const std::string& sequenceName); + + // retrieve STL-compatible iterators + public: + SamSequenceIterator Begin(void); // returns iterator to begin() + SamSequenceConstIterator Begin(void) const; // returns const_iterator to begin() + SamSequenceConstIterator ConstBegin(void) const; // returns const_iterator to begin() + SamSequenceIterator End(void); // returns iterator to end() + SamSequenceConstIterator End(void) const; // returns const_iterator to end() + SamSequenceConstIterator ConstEnd(void) const; // returns const_iterator to end() + + // internal methods + private: + int IndexOf(const std::string& name) const; + + // data members + private: + SamSequenceContainer m_data; +}; + +} // namespace BamTools + +#endif // SAM_SEQUENCE_DICTIONARY_H + diff --git a/src/utils/BamTools/include/api/api_global.h b/src/utils/BamTools/include/api/api_global.h new file mode 100644 index 00000000..84fcad21 --- /dev/null +++ b/src/utils/BamTools/include/api/api_global.h @@ -0,0 +1,22 @@ +// *************************************************************************** +// api_global.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 19 November 2010 (DB) +// --------------------------------------------------------------------------- +// Provides macros for exporting & importing BamTools API library symbols +// *************************************************************************** + +#ifndef API_GLOBAL_H +#define API_GLOBAL_H + +#include "shared/bamtools_global.h" + +#ifdef BAMTOOLS_API_LIBRARY +# define API_EXPORT BAMTOOLS_LIBRARY_EXPORT +#else +# define API_EXPORT BAMTOOLS_LIBRARY_IMPORT +#endif + +#endif // API_GLOBAL_H diff --git a/src/utils/BamTools/include/shared/bamtools_global.h b/src/utils/BamTools/include/shared/bamtools_global.h new file mode 100644 index 00000000..6e3cb39e --- /dev/null +++ b/src/utils/BamTools/include/shared/bamtools_global.h @@ -0,0 +1,79 @@ +// *************************************************************************** +// bamtools_global.h (c) 2010 Derek Barnett +// Marth Lab, Department of Biology, Boston College +// All rights reserved. +// --------------------------------------------------------------------------- +// Last modified: 3 March 2011 (DB) +// --------------------------------------------------------------------------- +// Provides the basic definitions for exporting & importing library symbols. +// Also provides some platform-specific rules for definitions. +// *************************************************************************** + +#ifndef BAMTOOLS_GLOBAL_H +#define BAMTOOLS_GLOBAL_H + +/*! \brief Library export macro + \internal +*/ +#ifndef BAMTOOLS_LIBRARY_EXPORT +# if defined(WIN32) +# define BAMTOOLS_LIBRARY_EXPORT __declspec(dllexport) +# else +# define BAMTOOLS_LIBRARY_EXPORT __attribute__((visibility("default"))) +# endif +#endif // BAMTOOLS_LIBRARY_EXPORT + +/*! \brief Library import macro + \internal +*/ +#ifndef BAMTOOLS_LIBRARY_IMPORT +# if defined(WIN32) +# define BAMTOOLS_LIBRARY_IMPORT __declspec(dllimport) +# else +# define BAMTOOLS_LIBRARY_IMPORT +# endif +#endif // BAMTOOLS_LIBRARY_IMPORT + +/*! \brief Platform-specific type definitions + \internal +*/ +#ifndef BAMTOOLS_LFS +#define BAMTOOLS_LFS + #ifdef WIN32 + #define ftell64(a) _ftelli64(a) + #define fseek64(a,b,c) _fseeki64(a,b,c) + #else + #define ftell64(a) ftello(a) + #define fseek64(a,b,c) fseeko(a,b,c) + #endif +#endif // BAMTOOLS_LFS + +/*! \def ftell64(a) + \brief Platform-independent tell() operation. + \internal +*/ +/*! \def fseek64(a,b,c) + \brief Platform-independent seek() operation. + \internal +*/ + +/*! \brief Platform-specific type definitions + \internal +*/ +#ifndef BAMTOOLS_TYPES +#define BAMTOOLS_TYPES + #ifdef _MSC_VER + typedef char int8_t; + typedef unsigned char uint8_t; + typedef short int16_t; + typedef unsigned short uint16_t; + typedef int int32_t; + typedef unsigned int uint32_t; + typedef long long int64_t; + typedef unsigned long long uint64_t; + #else + #include <stdint.h> + #endif +#endif // BAMTOOLS_TYPES + +#endif // BAMTOOLS_GLOBAL_H diff --git a/src/utils/BamTools/lib/libbamtools.a b/src/utils/BamTools/lib/libbamtools.a new file mode 100644 index 0000000000000000000000000000000000000000..ecf2d8ef5c48c40969a454a3b7ea5f34d422c7ba GIT binary patch literal 595320 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%0DV-$i&ia3?SXJQ4OQfd7qf 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%0DrFTBs!AkdlYo*sBJuAHp{o6{Pk8)Y*_mEF3 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%0D9IgWcRg^E7I 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 ba-Ddt6VELW8!>`h5gSn;90C8n4X^(X)ZC|& literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/BamAlignment.o b/src/utils/BamTools/src/api/BamAlignment.o new file mode 100644 index 0000000000000000000000000000000000000000..36be1eced244916a6535ffda1c4eecb49d5bfcd9 GIT binary patch literal 43388 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 MY7)|-py|8xKVM9q*8l(j literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/BamMultiReader.o b/src/utils/BamTools/src/api/BamMultiReader.o new file mode 100644 index 0000000000000000000000000000000000000000..f053ec2ab82d48b489244296b413cd1e6091c4f4 GIT binary patch literal 11880 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 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/BamReader.o b/src/utils/BamTools/src/api/BamReader.o new file mode 100644 index 0000000000000000000000000000000000000000..1fd86c23022b6a281f4a1135690e3477e21e989e GIT binary patch literal 10244 zcmeHNe{5S<6@G2Q>cOjHpc{p?G;G;gSX1IOOB2{=(!`Ckx~Yj%7E17|>%26U96O4g zHXRa5)iG*$6A?_J2>z(Vgo=c!3Zbb;(;Cr2H)&#%_@}@G<(FE}kb+cD7*)gfy?379 z^NaK9xYHyguKfJ@obR4<&$;)$d+)RT#yfw%y;f0Htx@oXi`dM!23#l~#r5iH<736Q z)cZ|!lr|`1BEzS`%SR=OrsehNy!qLb2SY=HwrqXcCw}O!4$2GbB$PU3#;QZqwDIhS zmdd2^+UQg!3Av|hu*<Gt#bdR9<{mS*3w|@td+n;mCryjx6ZurK4<4z|wDR~4NnBRQ z=i!g>&A}f&QkWrFMbnNXlbSxA)F<*<K5^LX?<eB#Q8B1vXL%G&JDkfocz3>5zjF*L z6}Mi~^f7I8GBK{3wcYVullV><$ze_)KC0%C?=j#9Fx1X=G%cCU<nohK$$WMagxjAL zpJl^w^(vY+qC4DG<<Fg?(?6&123%)9q$mf0VF)kR8+j;EsmM9Os}<K1xHjQhX*m!s z{3ZN6t(DjQ%J<p&%`-#+gFpFppm<LqG+$g@2;D5MDufogib^4LEByS_e7LylhEe~e zxz{d@&KmWds!INfyQHmBeYb48tZe_k&b#xylYCeC#=<Ax_Js@o2^ZT8KjFgF@X5=* zFInStw|v<Ys61Zf`4zrAA1UYy2rJN6xD_sL4u9>p`9QevdkN3PzAJT&oLS-G#>Pl- zq|s-^YdRaP-`t}p#(Z=5Lz)+TxUmdReTB>6!tcU`D~1#)Jmhc{E?kNfu9r1fzq!-! zx5Pi<EKJQ84&1yFT3AH661qiLGW{8?t1!OBH}Z_#i1)<p#YIKIZDZbZX8XnaXchcd z*^OxD_X<rea<wocTU=bTg=@q6XvOjfE(#qKdPU%8McHVAvg+w*WI$Op9a#HaZUcdU zy4E)fms~rjF!Dl9pON}LL8XrE`UB6duH$mLPL|gtcI#`j`(TZB+iSF|wLNS3UunP8 zYFBHV|F<(IhI?Mu+Ap<^-+OIWYksxbef&=MUmX{ulWW}L@Lt>1nqRf!_c*e2uAiT~ zW51}V@!Xn|G(vIrk35c)o<o*ff8FgyOm~X!I(H@%_qtv8?zHQUx5;W(aJhJUuzQ3R zrRjd)!$2Ppr_LrG(hmTy<G|Yo{59|kz?XoZ1b!Px{u{t2fhk}QFbqUrH#Gx44-5eJ z0_U+^p)Z<V1$F|@0(S$y1KbZR0Q-T*f%||%zyV;p;07Sh*G&t^XBY4)up4**h@G|R zG%y4#0QUfo1G|7jK;{R|K+c~*$b3vfXx7o(&$Bz4XlesK1#AYQ3pQ;5!p9R0z!>xo z0BJXb4R^hw#EBoqMmz|_oi$8^UTpw2f+s!%exvY2=+%Fq@+07hm~#GWA`>5m{1y<e zVIu0OXMtN$pNN?JF9PuzCPJ@{0Y3$vi1G1{0Pz|oLa#OhH-IO81pGE2Uc*G_)dd8B zIUXn83;rgMJP~?z4!8|G5zm_bmxU)nubu*8?#GFr1^<ljMCjEh5NCrp5p&ZY5uOOW zx&i11PsAAc*9%XCUgdKn9=YN~tR4QhfQ*j_y?Pdiv5ONQ1OKA%MCjECAnuVkaR>Oc z@I>g<c3=y5Vi0_*@I>fUP6nL8;zS(h{I@U(*gg?@mEUb(&cunI27g(2BJ}DkupK;c zC-~=tCql0d0kIOqiFhXV4+>9&UTpy051xoqsehyJMCjEUn7mlS<3vnq|DS=3j|jbb z9{4fvM0^+H|B>)S=+$Z9M({+;aerQTBJ^q}FaVy2$6f#9!V{raeL&nJapGq1T;|w5 z5qkAa+&2$`Cw>C_>p=2E=+)CeA9y0V*#Cm?MCjE+K-{x&B8q<)Z?q>uui_ry_a|{8 zn)EjcPlR5@J*s>WOUorpCO;ZDgNx;FA|Dd@0VW5>*7ppLQiemTv{J^Lw7z%QLm3TR z6Z@#h#^wW~XGCs?4a+%^Cq!O@<m%zS6XVEo5tF|j{@#S1Wj*|opEpG%jmbg285hd| zAo)3o@irz4`FV5-%Rh0EpD-jvna0gbegkr3nFEqPBlbTP`wL?K8!QIo8zjFo=r5yv z_+hz-xXE)|S$ZYD1@Zq)$?uTlw@U1N@XNAJ>}O3;`M1P(O6<P}-}FBt{4a!$3Qxb} z&kMgv+Gk!YKf^^nYDm~~#QvJ}|9;^cgbxURR`^#W|A6FwLgHVL_@lzlNq&cgzaV_8 z@aKi^7Jf$fKS}>g2;V4tr|>_(I57SO;a`yXaa!ibA7%Wnp$^L~;kOFEAoHhL_+Lr? zoPiz7SCA+DPYAz7#y=qAe?#~g;fI6|3m-#2(|%U?Q^L;(|9xpcApALLe@xncO8iHK z=VHhCbyfIY$zPHD(~{pI$?qKc$uea=yP<c=F|_ZLzXiWexf6m@UhU%lfOehyk6r$^ zyZF~#{=V+wzls>0{&KGP7hV3-$lqCCb;&<O|2g^lFdk0%giHRpt3Q6}^7o+2AALFf zVJ|I{x4Gg^yX38|`q*pA?B8+K#}~8*`(yd`R5qs_PUQ4fev#fC3>^ibjpVZ0SRyl$ z)+r^Y6Iuel2H=bKN=7}V(ZT-q-HGwRY&M<iz=r`nF``d)#Ps}tek7I6ga-DeVlA5a zGW?XPxA$f8`eY`N4z`sHqm!wlXtT_|Kc<<U4S(f6mT9s&li*H-*_Rp7r@Ir$F@0Zl zL`S%=Wr&78i0&z)%Uk!z;I4h!nYCL{hN8~cLRH67oddhUwgLTEDl=lt3CHkyWV?)o z?XqM4gq|__5<MKtRUNvgo$bDr?pNk{ITPDyFc`@uF&V9}ot@udC<l*E=+zIyO8o6D z-6eKBZGAZ-P2Q>p`|TQD<Fbs2?KHTfFK6Tu$>PSf#=I)$?cs!JDig&vvfWoxC)nD{ z)nZhi)H6xFug4xo+oMO0)tK7>1>2mB^(69%CDD7eb!TfwQ#+kab!VqC`4zRbta*jG z(b9~z`ti$cS2}ehGp=Xy-PuX3W|*_V7OZ9^b@kJ=R+o+rU~iQLbyooyLsy+Ud*V2v z*@0-n#`ZLbj#|-B+`-gtq@&cviu||0ES4BIqg!HWyAK9YaZf6(XYhmYl6oE!x7}q_ zVG0F<-IMyey4=;^&rbER?sPV1<yZ>WBgM)Fw!@wl>9A^?S%;gEbktmKOGXZd9tWUq zX)JSWyz0FUr!a2tb_2Xu4`jF%YXf?23V#9M!e1d0IloopTA!R6p9rN=u+@%CPiqtU zWG;(CS1Ny8JKDUQ$Fc*MeSq7pk5y$+O2as^d05qOO!Dxy+(E~~q;zuesN*_>c+|8H z6&{tUJO@}FDy?OuqkvbXC0n~!WyePCRjuM?>uFG7$MmdUY1gw1Dop+AcPS4i)$J^n zgGvJubng&em7SY}S3TEiZ&j_(3stV&9v-aK)1wL(P%j$Gp$E+s(Tn!BwpKCILvLjN z?yiWY^)0s^%Ie!1)U=%OcQNB1Xeq3EPvg&H*^GvV+|nPHC^s7m<iS`z(ynQ#EdQ^@ p1v8%<)tZ&w?rz6F#L{}R5(=CD$qI5cTv034Ct%hzL*Qpc`7crm2ulC} literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/BamWriter.o b/src/utils/BamTools/src/api/BamWriter.o new file mode 100644 index 0000000000000000000000000000000000000000..9f7e8a4a859cf95c05edeb768a381936c4c96eba GIT binary patch literal 5672 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 ZCPsAUyIqWKI*PmgAvryrr1&hv{{c8Oz5xIL literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/SamHeader.o b/src/utils/BamTools/src/api/SamHeader.o new file mode 100644 index 0000000000000000000000000000000000000000..10e49204ad057a11f159aec86122566f75b9c651 GIT binary patch literal 29680 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 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/SamProgram.o b/src/utils/BamTools/src/api/SamProgram.o new file mode 100644 index 0000000000000000000000000000000000000000..b7d6c41bd895efdfc342560e2d97daca9cded631 GIT binary patch literal 7172 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 MUHx~e1Uv120LLKB1ONa4 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/SamProgramChain.o b/src/utils/BamTools/src/api/SamProgramChain.o new file mode 100644 index 0000000000000000000000000000000000000000..ddda8067930d6db4f4bf7e095d82278b12ab1146 GIT binary patch literal 14212 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 Ua%fsJFoQXb7?}#@Ea|iKKO{_F<^TWy literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/SamReadGroup.o b/src/utils/BamTools/src/api/SamReadGroup.o new file mode 100644 index 0000000000000000000000000000000000000000..644aff69b9462791a36b3276be9da5f3eb5ad553 GIT binary patch literal 11616 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 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/SamReadGroupDictionary.o b/src/utils/BamTools/src/api/SamReadGroupDictionary.o new file mode 100644 index 0000000000000000000000000000000000000000..d30ca9b094b895cb8bbf27e8565b3ab58d1d2e48 GIT binary patch literal 14844 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 Lo)Z9m*0lcxgd(wT literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/SamSequence.o b/src/utils/BamTools/src/api/SamSequence.o new file mode 100644 index 0000000000000000000000000000000000000000..2ecce255d2c6d056bd1a8ff79ecb5b29b3f64106 GIT binary patch literal 11956 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 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/SamSequenceDictionary.o b/src/utils/BamTools/src/api/SamSequenceDictionary.o new file mode 100644 index 0000000000000000000000000000000000000000..972c52becc0169c84f19efa0ba3b09057c1f1e72 GIT binary patch literal 14632 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 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamHeader_p.o b/src/utils/BamTools/src/api/internal/BamHeader_p.o new file mode 100644 index 0000000000000000000000000000000000000000..b2bbda4485bec554f64bc899b7c2e02e0fdf26ec GIT binary patch literal 7276 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 V{-Fuc{awW~gPbiBD{9_j{2!y<MHB!4 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamIndexFactory_p.o b/src/utils/BamTools/src/api/internal/BamIndexFactory_p.o new file mode 100644 index 0000000000000000000000000000000000000000..728bae8935b88c0924dce74d4e11bb7f2bcb02c2 GIT binary patch literal 12672 zcmcgy4|G)3nSUVxqQ*>Y{Sy=<wy|K{V21D~plC)Cc%y^FB&ds!=P;R&lw>B(9|ErY zv6Jcgd^}B0O^=?c$EviRuDCs(=E$)kQQAVcU14k2!>+Z3t<<Ec!Z{XUtCIcw?!9lA zyd;=xyL%5azxnR>-S2+icfb4Ho5wr&mk-WN)wG;k4PW>W5Amx6AGB%sw2&U7O}k7o zPAHjTMMI~?&-rScVI;zv5{dvAMnlbA4QFZR*W!!hFY3#~&-^Pi?J0KUY1;`-GmQ3V zlhGP!O&HC|NC^6>eGNW`t7%nAPrm9ZzeM_WdZzUAytAU>mtoW=f{E6U9~#-=wy##{ zb4;#+KHA4PO(Bl3FBDJ2S|jVpLv!nUUg?WTw)U8^Pm$Ur=Z8YWSRV=*;Z31%N5V)1 z*SYmw{sk#msRo{ZsY`*2l<N_S2HT7X9d_%x=VCcvgBn*`Ed4Dn(X`3vyI_RB>*8@G zOK`7;lNZdf(VDy8Fv2ZHb1c{%meOwf4k`O|<!>MCV+!6?qG{IwFF@MLk@DLxLeU6T zBpFIX8FRNj$3ABa^X^>DFq*<y>c*wd?PIonx&aroLsx0qGGO^vG_4j+;Gb5D4_lG? z6ac5=^HqE%+E(f2G2LFmVLu<>ceiKecA^5oH`ksBnBmiU>Q6;}^HbgYNVlfwR#m^A z?n_M3Q>XJfXX_TTK+{uw#eOrdG+-Xlt?8u!tEn{q=leV}t2M1zeCzw)7(#n(4u#F% z^@~B~8&EQo__1!~>etuycV4XTf1Ogg`P+c`zK|K*rK}WG^Bm92E)La{ef_WxHn!8o z62Ez}+L~39elO|Wt3yUjvM*qMsGIv0by&C7_6IDCvf5A6M5)i0`ZOo8_!Wjyx94*P z-I^gl8Cz}s;jG<KnYVB7C1?Ct6As#b^C!;0j8lW%%Kjs;A3n6hha`Qd@|$Ob8(*Ru zt95&ApEFoD{}YY`%u~`4YfGP=I$o?_FV@hL{#O{A74Lv~0*)Smqi`1Lt)y@^vmV0V zTVA<_j*i#gVQW2Q@CmuHYJKgshsLz@P`0IAL9VcUXVGph^$E}GlhS>jM*^ZV`CH-K zz>TAcTq8w(BSo$tW$x35$01pH)(G;lXHLB5nswV-x}B7%IC#L#dl|fU#Z-eYbT^Cj z^4;mX!?()UP_IAmr~EwT@t(t<(2Cwe1ho^aBHdhd!22uR^5~}B4^F_|RrTr6&<cC! zc5H7a33Lmkp3%P<1JZqGhKBt6yGjqU56$<puF@mUkE8rSuCPb_KEX~j_MetN#cy$Z zgI4+j)_wT_a}N#h+bjEF(g~R4x0d(oRvl*UIW1gxbTTFM{b?OQZ2?Q{0>8bi80N|0 z%c>kp?X?){?BdL3eI;Ma+e@c2Y^-kA8ThSRLW`d2FAkW;_1sGD$HE=UJ_6rUM<<*1 zd$er$ge)pfWK(^NRITu2OOY7txA$~oPVswGF<r1!0CY<@uUk2~CH(fA4U@Gjr*-Q> z`mWnP6g*ZlS%kdrSZUgZvbRt-Q9<O&St}0c73X`>Yw6tsKVeGT?OWqp>udBGtSsB9 zOM!0hDQAGKUZ#w)H!Zpl5It3?dAeF~FhH&Zasf+hYqwm$DhZf7HK8a?IYv{rutHDf zld{tidMFZD^n2a2^bH*eY4r+WOV}Wk`ploE`;yZj<4HY$d40V(aw9wTTEY%)T$Kqc z%u|6yr#$Hdq-)Y2c)HG$<`!Y9(d`trSZNBJwNn^xrzP}IWSE^oc!Zr72|M3MIANze zPpmys@9|>)qBEX!9*pt61G|!QhLvKtE;gsC|AR%!KjoD79bHaFN2#c5I+D><3p|fZ z6`j2|IIa$S{MpdZuy~zw((g2PkH~(jvn2Iqo(SB)e?zaRhSi?s{R0nRva{3|QRifM z-6gYA8g)~~sOHg3e_u-7n2~xL9e(p?S$+o=4J8B4!2(uhxAd@7=+-3c8&(Ow8F1~E zOa;r{ErUOD#c$iQy4}0PF<`KVv#a7Ukc4}K9}0V%iv+e_O_AT;BDd~91QNsf=PCk& zFY`>Ua_$F*alYb=ZO0j##2LHgG)nh9xJ#jQ_x%~ZnZ3IO^!$+EuHd$<ourWcyx>Y9 z^PpIcfVGQEe`-s==1G^y0!J;W${bG@PviaRiy?r##HN1o1U1+_>`{9gnJMSalu;}R zCsLbfj~K%JXMTbe@}&RFBgg6$CZ)D=)|YY9#oBOID+glO(T#q4IVyrJy+fVbBjs^Z zSoDb}{gBX+7F<^q`<h^_J&Y>@t__Hog@{>O#I>Oc$AKtF`_o1604~v|Bhn}Ke6BM> zHp`h6ZfCldVx0r_&Jt)7=ZI5$tF2vqr-p`nsbiC!1+r^V@p>qUdneDNry<}l<tb4P zrr*B5)Hx<zEgkKg@SD}8NVWS*Wv)5p-}2={snBoL;+zzx0WPQM+0aVo{r0P+Jj=7@ z^qXCxOROI2V>-s2XZ6b55$Ps)11;$94%od_*byu2?}<BsjIQIdbHMx`Uk!BY7Wio& z;4+#v&Cyc>h^&2xJ(grxKIfuvSjdfXQ4pCS^3J&^EI)fuXdLsRAg<*q`FTk=!1E;g zl5i^PlJKOsB>aA|YnrjH2V0$We{J+-UxroR>MZ)O2v|MRdlo%<>^BRh47(u=uX)24 zF8z)teNxoS5zDUroEZ2T!t9x;A=7_&dSs^8V(`dJr=-gCa-ls_Dv_prVE&bvF7yx2 z^xe=p-c0Yh6sI9>RH6<|8i)%Mvo3pF$L!<oI&1)0<lIMEkVEa>%dySmUST|3r-|p0 zQ-2XsS7xOCAUa%sQ9LDeP0vW#?BHJvndqH!`~MX|$*Q_MTNBP{=brs<mWAq`s*3c$ z{V1g)qSh%od#}jEqnRD!kH<O6;lLnEow;uy*HL-)@KPHD2UyoJO1YQ(km&54nK5gx z)P)#k&I}HIezd{gl7nYt27lcdoLS?{Wnn@kAuWrdNaBHrR62-1p7ss?g1cg5<KOc` z2NQVcA+LqJ#A#acME27QRo1;9t4{ggMapyhYaFtd7Y51UEbD^t){r3|Aue7VPp-pH z_TL<A_eYw-o0bLnAZv3;O<mo}y2T~Q$c9L?Gg8t@UP)qeN4SL26Oh-2hH`zS7$G9a zp>q|nheR7be1;?1v-qai4@m7+1b<V>EIxV6D7i`z73AKM&Eb4y*&Wv_qK1)p0-q{; zL_3CWY7COI245NVQ1V313dII!+9irTfQyD!0%9?6D+fHKIE^GugSZ<g+D07dH=*NA zj(G!@D@v^4*VX7D3eG}B;5MvjcPc`teoqnT*R*HBro<2U1q0vBS%V)WM0)|>Bw~C# z{$oYlM`E)wP;eep#B1dIG@ElNtfhikVho6C5Ms>3%JkZN^gIq?0q_%wU8oG~;j`*{ zK`aG|F;qoumyr`vgy4Kz5kf&X*c2131o}y=;ylBfdcNg6Kg6>+JU@I(6!om9d*X2+ z9x_^CTr;t|{MHSnS<i}+xSpsB!tk=O?S0)&9v9jMe<LR5b5ORN`)UJqTF$1Tso#Nj zT2WEK)ckHlZ5{}A;8+ul*}#^uoPR)Sg+<?(l!tg}7cvTL?s4jI^MuE#$NZl=?gq@6 zZRfXz73Z)sk57Sj<fb?X%{_jv?AG$%SB|^=%qxO~ox3A1C6?7ae#7UEKll8*7*@2g z=VwG8&b9M)Oim%_?)hI($u{<Q+Mk-bV~Rcb;k-w3-Q!oQ1s;3+6&U|W?!$TZ<Q-E| zQ>S5}P~Xb(fzY)i2Z)EHWhXJswZNl5<j#^`0ly5oN8tuwDf(vt7XeFv)N>(_dd_&H z{9z#F{tbx2TJ|~+_va-$fRz6SAm#4`P6z$>K+5Sr%3TJe{vsgdKP!~-9|CF50fo;f zd;o|&Ue*ajE|*mUsjmV^eUpIH_sNA)Uq6uZ9|h9yUjym)ULgH`28aT^q#Ia<e+eM{ zX$Q^%T?eH8TU7t`K+ZD-I0yYFkuKE#A&~n23rPKM0;&I>fVA@=ARfk--3P>(Q5FUM z9dHGZ^J_rb{qzMSv?Y%Nz2JWnNP9K{Y0qjP?ePOCR}AF1i-5G}%=yxuQ$X7DN8q)< ze+SZ@-9XOwJzyFBwF18aTn)qlS5^V!e3OCIz$ea=d>csqRv`IH6nz<xa=%7iUIYFC zAm{rLkn`;X(ym8=j8h7DBj}AluJ4^d`m-EJe=Y$sPfnt`lYda*i$JdXgFwc!1y};S z19%f~F_7}PK-%{a_TH7Cj{?bm4p;+R37i3(1Ek!i*pKZ0K5!=R86f+&0g>uuHv#G2 zH9*=q4M;oxm?!;u8%Vzn0_p!gApQSmApQRakoJawUj^O{<oYiIa{WtzT#sY9avjq^ z>fZ|F`mX|3gPsNaGUy8w9>@7us%b0U1u|Z5Df(3)<sMg<RQ=7s%h7)qkbW+d{Y%P$ zm7r$>zXY5C#Dns(OMnY8Zy^v%GUFGhdz|l8AoaWmWE^?6bN+jQT-PR`SQjAUUInE7 zN+9)@0jd9LAoX7fL`Y|RgsR2$ItJvpmw-6s%XR?~q8ZNtXM^4jyb5?L5cVv=Hq^>N zW7##B3X?=DtOY=I8FXk>K*;d_QD@8o`Y^5pcpdt$0CHRy$hc82{eg_|7dC5GgXVw# zV{F+~5XN83jl>Ihz$%(}G3Wvyw(=Sx<O+_$h-r`~VoMbsQZ%s`^e=&wCqk~^yFkp< zNW|7E<XKOei2YZ%14wxy`U`?U_|Qm13<_%%O~g7C27r_&LayK{;1?lJ#1<$lQZ(@k zpbLP)e%W7e2!7+pXe1Va|4ShGMD!Ot21My@BqF|rk19S9{RQ^`QIZ>pXoYL=#qmV+ z7hp{_tYIS&Qx;-P1)qri0@$kEjJ*3t1_KjxV^X#c6z#mfa3zC_0672OJ%=<DI&C58 zJWX@nPq<#ueM;X=q>+fu`v$iw+CWg)LQ4LGl3%a*4=Mg;MIThOrRWYifc7M5Y$WIZ z_rI^`6G$4icN9GvNyApn<bwP?ie8C65Bw=16Riurdcf!V6>J~kLw+9#w0(+ySn>B_ zvB^JzF>Kc&ejI-oNyT;<VoUyZeAwE+BmXYN{}0742eSQ(;y<SNPb1$wQ?_f)`xO;} zzg;U<{BH1-YB4?rJ=yd+5ZUx|E`GIZ{EN_%E&rKo{3(~b<&uBT#V<y@vh}^~;_r2h zpO1KE%j5suhS8H;{NEw>vgNOJ&9}`ZPuXnw1ups)m%eYh#xs|*$3O0(S--RS2VMG~ zb@B6E@kqPof7_-1B^Up8mwk;c{(~<4cf01F?XnNGZJ7NLS3GyQ=HuVE+5YZy@$sU| z>f7oQm95dZfoBxqd3<4Nskde$7)Db(YP19+O>JRPp-n*}h_}A*Le*%4s^y^7w^ibq zMng2(7O(V265&`R*yf$@dd%UiSk~GWuGy3bN8+u~NKM_X^>L{*KF_ENcg!s}>Wy%F zM`E)P3wPkLNi-H*AFdH15S<@u#)FZXP`erfd#Rya(Dez7HWDqdXr~cPCX8sa5er7v zhih-;TV>-jZ{gBd7_N#ZGb@`L@c0E2+*WVUHPN|9d<#bHZT01bcL6wc;b2oZRvT;G zh_S-hNT)P$l#o<7Q4*Tq!MXI*C+3C1u^8>IPk0v?Mih^a!ohaDFc%NU68;c+y`h$1 z%t*w7t%<llR8v!jz6$x+NlE(~jD~Wfrhb7@dux4#(I%sZg{o<ln&*YF))Q7XR#X`h zyo48N3dWko<787?EwgS_q_Z{Bge-_B@v@lkxMNhK>VtH%ew}oy!D}!H78v!FhOnqU zuF^tL3xXXT@NYz}dCQFz^5w7SW-_T&3>jt7M&$9LtVCf-NAQB1m|@Ix8B6u>d{}gL zZ!jjKX6=ahj%SeDgSi#i9>k*U!@M|0PGVCALmP}x%LZe85-TjDe72A*ohxd{>V`Y& z6N_XTqQ;DxTpZfafOMUw<eFu6k1Y(H;}%ABbM`?qR%l(ac~rfs=CK%lj=A&rmTFBc z)XtaoN^7NJWTA@0cqW|}MM~D7GSNoEj~cuZ9e5K~B>v}{GC$N74#sLQdaf7^4S4HS z3})QNW5NWi#ca`dSS~B0I@jQlfydg6D|U@@0*I+ciOt9wr6ym{77Yd4!p?Z;&YVZp zB8}R^?V<J#NM~hTbFfubu<`8Eh09P=L=hU6-{;<?_3;J4c)WFe_W3lvykj{ZeNm0| zn>HC8;aEJ1bFmfY+s1Mcgz-2r%Aq+Y+%oRre~Uv+%~zk8Xi1)kp%X8v6VU#@D|i!_ zz&p`gle(7&R^IFj7>0k0YVR)G-ib$vnKI8S_7L8T7cbklA_?!qd-BnUfrC2p4m9cV zR&^@~R2oKWltqslFcE4t%C*2!e!SZ9rAxD3Vs8tVkLdA2ZtjTQkv$b7Waeo#x_o8a RJ7LTJ-(o5!l2PIB{{i_U_S66X literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamMultiReader_p.o b/src/utils/BamTools/src/api/internal/BamMultiReader_p.o new file mode 100644 index 0000000000000000000000000000000000000000..c9099ab005622687bc8552bd18c7e738c6b35b22 GIT binary patch literal 62996 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 RoAhVxSvtM$1^n&t{C{I!(i;E( literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamRandomAccessController_p.o b/src/utils/BamTools/src/api/internal/BamRandomAccessController_p.o new file mode 100644 index 0000000000000000000000000000000000000000..7e96470d377a791f130ee6b21b1bd424831a55dc GIT binary patch literal 11260 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 aA#iTd_>H7MZ#Oyl^Z!VKp~DD+{{J7HsDQWt literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamReader_p.o b/src/utils/BamTools/src/api/internal/BamReader_p.o new file mode 100644 index 0000000000000000000000000000000000000000..14568a96d3b7e4b02056d723ea996d1d35001ecf GIT binary patch literal 26212 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 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamStandardIndex_p.o b/src/utils/BamTools/src/api/internal/BamStandardIndex_p.o new file mode 100644 index 0000000000000000000000000000000000000000..38afbbae0441bad94687b5146afcc17d303fa4da GIT binary patch literal 58364 zcmeHw3t&{$we~;)L>-xEec%I)6*W|`nGhf&wk9MaXJmpY0mTOnA(=olBr%zRpn$O< zE$5D-w3S<1uPuFZZF{A)Dwk?a07<Y^@lmCUHa?pes?=JgzVd(H-s{XOlVk>Md;kCb zN0V>XUVE>-_S$Q&{Wv?r<M03Z<8e0Is0<r^;fJ_*41VR{2hU0PIh3hBCjIq`r8>El zW$<hk8ZvGCaWD~&&lm8w1oUT3&v!4JAEm8Nr=O=kQ68(!U2e0LQn5^1tLEt6KHu_& zYF}-AZNOI(tgnLn(&G8W(HuD<CrgqxId$8NmAairM6;?-TED7>$~s>?)%5w|^~)1^ zU!p<qY=J!LR}Ohs1CJV{UsZFUskUCsF-YEeH>KEYU1Hm;Ia)uRYO{^DJ_!1J6@kh? zZIuTtW>TVl<(KG;Ka~7?FV*_x-C(oXnKnqjrBzive@m6WG2jbSE=iR4j>vn64uL07 zu65b~d5OA_@AK8w2K-Hxbp@mb>-Vd<I{i2ewu1Tba-<sJvV2v;^5qTnRzhO`T7G8r zFZ0F9pv%NQlvm%ZOsA3)<@Jbu>!r|Q=tq~{WZ5rP7(R<UNUf|RD^Xr6?9XSJ2Agex zmS?-sW;+sTM_K8DgXP8hU$4kJUh*%4yx3>3yd}-eF&Pr|+aivcXeX;kV!F@gU*@Z6 zs$A~ZITHQF2LIr*`9zJa(2xC5j`scp!k}No6wD#*Z3<Qe8k!Ux-(IVKnU@daz;KVx zSMA4uv&2FE$np}~7%QJXJ^?@L;Sd)fWA1<0Y){YD{U%MdO#`1lzr_!O=LN(xp9O~b znqjWYGQwlBQPeQU8C|pa$<{UdR4NEEha@mpFi)_M*fqO|P}Al9c$BSm&Br#!?XxHB z-r+cX9g}U8zq^m0Y8<DRYTDUhwB3|#b8PI`y@UMFSabHNEFyd(`~?=!#WpxjZzUzb z{KfMtjJ5;WhWUXJx-@%RCb+**s_JsR%<eIF8ljS0<J^)Qqw`RPvF)dK>&I~1v)$}8 z-3MB4oL~!_)!8$_e6;iZ2}kS&yqtCO%QoA9?TEddf6u!4C490S(T%J|Xil~fUUOg@ zYxxc9Q+0Sp^%!l3#yD>8aNLh3?aaQa_-Zzz6&YgnH9|LKiw!m?dxH)gYlNmNDeWCv z0817rd$E1y2Ojes)x1cZUh_|?fMM=Zx}RGdI&PBrMCVHr%)On5CLGZT=*c=uHK4Qe zeYS-Sc%s;}Pol{`9)*gOiW_RqkL{oTU*D%|Ps3bv&};e+iIWb~k=s?pM;3=NCpo%{ z%}mu#@3Wtb(5aKWq3TIlyLW8RBPTk3=>1vr{xC<s_C>?o2M^4;Dw+RT`IYyq>j<8Q zk&$DV7#*P-3yt=Hz!>dUT_t)%mlRQ~h(n%i#qQs2`6t@fi}s<7%h^VVg0ue3V?M3& zdCk{7p*5CPB^aiEROuWeAruUuU}*Uvv}<U2e}yoQ`8y1pEUlW^6>82jsy<_cvW!qs zmNB^-qdL=YZEs#>biSPF?3fuiGV7+|VzXdUs3NQV$(GrnIrjG5Ek&UW*Y?0AM%7*; z<S;_BV@qDdlA+Qgvj$*#w{5EmA#oZyPPc_J`nSj0zt}9(Is2cMFr^ekTh`HNYWymD zd(6E?)p#ScG6&V>8j}wW4nu~kv-vb5e5waOFBXSvW=W>B7FN@pnNWwshs%l=NDPE; zm6^LrL!S$sH1ONb55|WpMj0X0x&r=jP+JKGSbLID^`z0|-bW2-v<f4f`Gm(Tos?DF z`O)~|@PbjUr&c?Ss_jPD{s=Rn$+|s;`Isl8V3N`HMO$#JCp6YD#|~^a+B&mbPpx@H zVqWp0;%j#AFv4Z~jLF-rDAoU?NdJb$qbDxbrnnrYc-!cFKf~A>6Os42o>+61QPm0E zR-6Idib9#Y5EsA8z`A=!to@y!V~xUinvT6E#@ai>GIv%Ib4SM;Z0!xz!0}G=x?Txf z>@|Cg$@|!y&L<K7M+Ht+GndY9z&cN0R2&)=e8(8|BnE@!|N0~2ubK{3Ag)pKLGk6q zksi(Um>(M^{Qp_Qd`79~f!BJ@9mo1OZ|x~=U7PB}wZ{{h%ZY1G!o=k<ABmOf?l!^; zx()M1ulb%-InFS5l!caNd0aaKbBwUN!!X@jIbMxW20nIZCB_*J6mxg58eK&e9W1nF zs}?ir5u<GfWb6-iD`BB=p2<5sogZd+!ljc&d0oAcsWTVmpc@tYlEk}+uYYKSPB6>` zy+-I___w>K^(I(iyy19MB`RHdJR$ESwz)T|kWvN>vRFNdtWk)ahek(~(erq;|A&j` zY_R3>hN<KEQ69u|n8q_iK#%oj%YSnbL_?!HdoqkWjEsvBG~GR2?gJc(=$ivZIM}0F zf#`iS=klGoD$=7rtWg~f?z22?T}R+~Bjo0Uz-)u&56(-@j?mo9_T7QgP-*XY)BR!S zvP{?B)j8o=1E%{B>O7?Ci<wR&9)uTs7~z!ac&FyMkXo}DZEsC5W~z_D(HyClXKx+A zbI{Q_y1nD3KcgW7QaozksQ=%5U^826-dBh+9`pAea}O4lkI@Lh#|-mvRn#!si@-L_ zjfR5ua)9H0MXlesP^G!I7@>9w31ykxoxLZA7mg|pEwEvQ)O+$khik`5zc;*QlQ$gP z6Irh5_SKk+_IS;Aqg^^uT^@7Xz>Zki`<j0pSNDnGg-5X76WcnDK*ftt@di}<sCa?7 z=+VQkPs!ZZye+Q6<H8Fu`E>Rk*Vf@dg;%4(R#e!nqm;R*`|#^iA`|O7CVYnn+Z9%M z%ou(`rM2GhLya&$>fNOqDt3l_cO8EHB7a}=)<}yx`^JaA<vG@7>wIH;_{;o&>V2qw zv95k+q=Q>Ino$4F!>QkG!!Q}6#IyZ3@1&!~1TAa6RO|cr^<Q*rrQJ7lV@}MX%lu<> zsi!6ewR4HhV)<fZK23;6L&(Q+$67)vxlwY*kX7jUC~?20)_9@WSm({o?Q-|fj9u<m z35Y(rO<nGTiViR6F{-8;ZCyDkUGMLr<Gbwu=C^kl#a)+WIoAD1i`XKfwhDF-;k8?w z7>7Dsl!fZEJfYJton(7lF9a@gJ73jq<*C|ZbiR~nWRzjV7iSrrz1c=+reVHsbiR>o zxb_CFF+#zu#>`*`KDECaILa`;h~+P)4@@C#?ycFy13N`(@LsR^u{8x^65A5fON^w^ z87g+ZSF(z;`nMV8bC$OKcVo6mkRYpI`bVriCSbnDB2HP$6T*Vbb1vo%tZhHNxxUK- zM=0Z7qWB@MaWNkUPPhCuX4Wr0gVQzayFb`hYQE9-@+fDAXW(&1Db{;CC&V;gB3E?3 z9={*R^OzqZc4JrX-mhlpF^+D0v}WJ^35yY!%4@!9IXRY81HTQ9b3VDQ!?AHY*3fYa z^1<sR+E1;Qo;E_Wa+T3kohfbXhh87SW~GyI%_J+Mt0ztHU~L{XWnNr-Gr|?QMz}f0 z@*^5mx}GZ#*UsPz!`fEjN8J7j_Cynn@MU^4RBS$iS_)Oq=@S90l8f6P!FkHyJ(jh; zfW!Z_Yb-+I05%5`jPQ-Ju?lm8hTULS$pnr%wJYo@(I-5i5>!%BBx_^cOy$37_i^)q zJLpU}r7)i|LZh%^+3N{G0M;GmGgfyRW+&HrS=j10+Bd=b5HU8P7;&?p9{%A4d$DTU z<a}2Rg;0j+Zp9jAlQ-nv>@~MzV}VUWCQ7ZBQX2%Rgw1Gw($T&G;=Q4=^<Hx~jz~PN zj(`g*vi|J&{xP31u<XGWX|!QtuQUsWLD&dih8<UDw%4^i_yT1ZW*H{wpK}fgxm(S4 zelW~Oy^|l+YP2syg4Up&^PGHau|86t9O&Z-1+j0ygm3Qlx*iV{c+E%q9a<s%+c2MC zSb{#V;8+#HRAkx?eRd&$JsW(%V+ONhMhKQaT<~D|BTF6hdOJU^cXwmsofQ+cLTlE? zQJYAWDg$E%qvh17#ttiT9%O{B&ogFTU+7r332dr{dBnX}>BgRA)GW@+jxTO(MfH3f z*ubq^O^4`wB{S;xZrIbk!5FmzGuItfulALHj8?>zoIR+dvNKvt8>{knwcrzbsPB6$ zuDoVdu4+=>Qn1t~-9i<DRg>j>BRUSzCCV}{s+|4UYhiPsP4}u!dZGW}*!ebgJTkti zkn{V{=$T_zoZi-PBzx{68h4y34e#wzAGiaEk6@e_1|AK->-4FJAvulE80AB49bEgv z-kR+W`EA>#vnTXfj}e-vvI)C1y1j(pZ4_Z;wB$<8hvAIYnGBZYYxXMr)UQ4o*P0L1 z_>P=EhF2CD;hPG*=F2K4&p~<U$a5og;;K?rifgalKEa{5<B0f^if7nwgvMfTgKY*D z@_PTEclP=`G-3Ww=SlB)!^`)>?Nt?=4g%+d-201hW)X2L9$;`}SjHM+(ipt|Nmk$Q zbz4lV4kH3pT-{mh*toMegau$vCZ;hoV82yi@fl#=kAvpeW3Bl0rm|<k{vL;A>aZy^ zz5U&_7ZyLru5mtZgfZJ-myLzbo~Zqd(1NWo%M#Rx-G*zC?WWgN&GGA!4SIgWD2wyg zA?$g!vL_r=TtuA*#k771a}I7_LVY=Ue26_U{o!0;#Ca;#{~)gi=Zk2=a-1;+dB%t_ z_mL4^1k39oOWlIUspUZrP84yfh^(O?P8C&kZ>h>Xp+z}mp<u3BaClrV1|A1fo4fx= zX$A(e*VNfzTO-^&!RvZA*azc2-M>lf8C|d4d|*BLO0_Sz0f!FjJ?3L&<|AG1ZY1O2 zLmf+ORi`Q8pgsh_I%eHX=wXDt4W%KQ8^>C=UJkm;jW;?Rt_wOKs1?1x6LF5w4N2JR zZse%+geg%6!SI4DNL3S2*u5F43w7R2Nache^GOJ@LiedCDORTjAEBy{duNU5ehgfS zwiYNJv&)#NYH+OkIdiS)XdiIg+KP|P=W8~Y`{?!^o{Z8-g$Abgkk-H)%>|OAC`HWC z#jUF+;XLL9v~-I;7{ZbqnyPb|&2VJ=U?y;7uRL94G2NRuJ$hyavjdlMroqY5SWlZf zD{EkfYf;Bd>!2y8S!-2og-XxB++0uF+FV=U*a7!{gcke<q-}6zJ8rWfvl>|aI44#% zvAVYZ=QuREc_%wBW*uvtKgafO7WS_m6N{vq)I@rOawPZ~;-ETgH}pA&N`^v`YLN<^ z&*Loq=AD!jQ<*1nmaPRLpxx^Y`>`_6W5W~TOSnboO&$3W{<a|Q#<(*ktxYlKD~|Sq zxZuFWg-Ud(Ll;N;{Y(rWkCx(G3d?FeBccVtAzBa$qMI)3wVIH;MW|*=Y&Gjnf~^xy zcO186s>I-<N><;yn4mXAnr*_r!$Cw>t&oMq=FZ}_S4VZZJ5Y8Yk{f|=J$^7O+SM|_ zY|rI%FOynVdmeM+F}l>!jIHfbCpG+pM4k+(kKv8XiXl>{%I`JQ1S=~jJ%qZH_e((z z4f)71#E)I=r6|j%_#yr-HGgg(0pO*~aC?su-97=}!NQa4wzdwA+ib<hfHXH|sgG<_ zyG^HJ*l#@a5d`3%iYdCtL8gQkJP2m5W~zp_brhgvk4n)^Y1@v)`Nn-nq0ul@m`@p= z<9z|%eTVL9MbgZ>sH|gM4pQ14;%5-E;G5o1dlo1o6jlm_M49`jL8Nya_wR>j>K92u zhn<m_7*drC?3k&lbcDCTY-krP0=4r1R(v<_Qr7Bf&xRt}x(C7LCv@8(`RFz8<6s74 z0l=6bx$!Y4`Y~5Nx*hl99qoOrE=Elw^bm{1u7K}j1xRPdC|kMP4{&-%z|orDb~Q_2 z$xjD#JkY)#8F9cJ+DKEH8|et<Q|4Z@3HeObYV8#5&pX!lpb?G-HnL33&F>q>I=*td zO4(lO>J41gwx(ksaBeDA7a2*^Xjf_|f5bep-b6Q+Iv#i<I&5aTTOGG<V+@Og8;qjR z#&t@4`fK0s(7$R%bmAc9p<E;>OPKBlqq=F=+o=8RK029YSJAESY_uP3zI7eya(1|# ze@4XB-Mx|B9hqNC&0hE|QqXgsa+klF(B)k3kKE&M-r|8r^w==>mAd*Jw{iaJn+zR8 z?aEH=MfmJ$r?nin-Ho|gcXS`yR~ib_3Eb_w9qW(ev>wK0k#o2nCD^oOdBg5j%UoDT zB#sqEyfgNP?xGlsm_<7s;ZAygB#zL2@o^*vDgVfU!x|$R^WwyiW~3$w0|yPb&4;G2 zsS&R`gMGotJ8twbDkHrRLU2SVClE0{*thZT@XdT>4Vi7@wma4gCR3y}9XOxw|C+h4 zZ|R2+oAN9@c=ARUmQyopGQ=tAHqN7#OqqN__t7yT(>5}lk}MN_C^i!grV}Ma7sh=~ zS|<KwiQ~3uhnN`LqYU164yc+9gED>ap33x?&h%$eY9OR-{Ddh!*l4Xplsvuk@P^Jp zGi+YhpMuk@l?R9b-i61%=)o2<_&cRi|5lWja{a$e%(o5s^jn?&dlGn#+ip}w3I0|$ zZ8<4(N1t+{VaGb%IpSY^2T7%ozXSREw({4#x@6zWB!0|a>dYYxSpgQR<F8rJzHbRW z;Z&iOHWc9gkngW2@U9Qme?2kRnZ(VvU5M<K6Sf`744j*A3Sf1V^GR%ocvP!ind|pi zN}N^L5{S5EYwrj=vF+@r<o>(=*PeF_-oJjtV@<t?R?dgzbImqa)L01};0fV|1j2^Z z5pcI;k;7uEeu_IYi0=2T9m_Ue=97NIRv|Z%&c1^>4{a-nW{7(q5f?Gj)Xb{I`DEV} zaM<X1!anTBu_s@SJ$Vp&@-^6#@5CAj_kNz??GDHKb<oQjx+%v9U7qWmjJGd?Z+JMu zK4z+V$?JOA@s*qLS&lr`W3RIZC&ga#4a-Da!@k4@cDc6#uv^yWyj|{1BvBCCZ>-YP zqM5s4zVIz;#U^uo%n8PvaAtK`cv2Sx$6Ulf<_=ETWw;@OGBF(1`Y^=vZBtq3>|aAg zTbb)Xpww&jdMEe9T=_WBTF(x;?-6;Ep>|(-Z>I#|J=7+|%vK#0XUO>9HcK@p>1-#% z)%ko(|6*$yTC@*G9ys<uZ-merp*1-6u=K%PxPRNc6lC_*spzV9jY=iP$jHQs={r{2 z*ZW_RQ?&T=teX#Xqbi(-sQX{f?iy_yv~fO7w!_RAvmLhdMF%H+{f7?1_BUco_RKF- ztJL}*n+mnGw+=b6hlMG&;^@Y)?m1>N|Jsi(!u^Ds=JN`Q*Y#J&x=zJ-(GyxdNiRJp z^j;*Y6wLk<sZ3G4ejE?{Txy#bd@$5LADoQ#T>LJc>CRmHGb3Db$Z##fF^7AfE-mL$ zj{DI+YW1W9^}Aw2Y(mu7c8+S0?)r%3|ELP$I8eWUbgcUgCJmL=_bYr-uGD|$aAGG9 zC$?`9yFD_6DZx^ebqz40%8vfmAS(V*=eeQFvBT}c4)+jVyadj1JTSihGm-POy+&wW zHq#w7u1j*7-vl`UWbiL|8DqG*0!KI=7+W)QR!%dHd)_z9z47<ElE^<hG`|11h`;d6 zPs<-q@o!n;-xl%XLSy5EN2XgnA1e8H=Q7i=7BY)$svR!J>h~=D+uqDFW{zL|p5gj< z1@7pcXz<P(u0x%`oc&#BGY1<yOP{wXd9IHGXItg@UTK_uuY}u%p;_5@YffuTfWY8O zgYMI)@;LiC-!T8~F%ND?crT^O7o&XV1kXTs@Fm=hTVaGRwA9e|0r?JTrej5Hdzup3 z)09?w!m|%yIRX!V47c*kxciUjFvG+vp-V6Wya5mBGF*ST31NGNSVi~WXv6hhAY0iN z#-OX9@$aCg^?83(ese1FS0>7De>Zqk|76t*%CdOzf>Xz&h97t=xIgy&7WIRjJusQ; znYDBA;t!)?FRl$-WP}T{jVC^ah2Jw~X5Dl~zmxiV!sW>_xU$w9i`SBn#6wXt^I4DU zFRP!r#I$!=?kxVm`YJqpdmETO8rjRtKcM0@7nPaM^-sk8Qm=^vS=%L$;0>2D$J=-Z zx%OnQxyu`#J8(%j^Km0I;S$%WU8{dj&HA78n12D&<Jub>Zw#Pp=6fjoxJt$SgU7Cl zT;7QKyWB2RG5TZA<c~a^A7yyjJ{q;Q$P-?Gx98IQQ_=hnyx~cI>_0lX9>LpqPslz= zP0i8!fxLg*{(SId3FxZLN$S(D$@Dcwgy7~9kNHB`<kwg~&NcfTXg^NeaY69i6}br6 zxVfrs&bd0*^crRc>f{9wJ%viXmHT3=#3<DMb}WyN@gn2zxb+$t@U4tohItHcs~Q+Q zSkYbhUb69<ia)Fz$sd~k$^OvvzsVn()A9%Fc61hA8gU^H-}sz0e|SQHNfWrteG2oS zCv-JmAj$!}xt~7$qPp(DyFPr6Ip}^aWg?j2oerGKx)p5x$(Z~{qjMm$EL4Wogge`7 z-B0gweDy74EDO1_yk<u<dF28ejI8~<5uTIn34aN5#K)2Oqxhg<&O%rzJ_JOR?L_p) zZ2$zaSJbtpmoq&X3$W%|0ExX3W%bor121cg@NpPjokr*1GjY>l?L`UWA(Y|ay@wJs zq!{n=ao>kE4D1fRrj*1zXU4U27hq<5`Jj<;g2(lAaD0Dz#C|wGFT>t(JmRg##By&I z1QkKhc3d2KI@r^<kn4-B_{9hJ0lHRR&nr%yuV==-aWenFtJKptXCn|C6BBRPR>VZC zA5aDEM2yyVB5+S5JQw#fUc!9{{B=R}SgFihgCP1gmijY1raQaukJfT2W`2%+w?0k> zNUJ?MevDC}LcJOoX9e(>@+MZ?gZ4iMiqyLI8C(_V_J$h}5Z?_{7OVH{59dOjURq(L z)pn={*Umx<x*ZRUuEAX!uh|EM(e6@t7vdSfT_gSh#}F&~R%$2R=yCl%@NLHfqukB` zE~1JZU+?PQknq0U@_$?d<-#0)e}Iz(9~A5eEQH0mT#K%!xWWJf_o}yZy;kJ-<}S>) zp;=h7bp$c-K2@~t-QXEDGw0;2ybK%VEzr~X<a)l#!%y4Jg(@EJ#?2;Nj0&EDw&5OJ zOxVU<26fonj}4w)+7>$=C_`9&4vSDqU2!+c#1-h!1@4TTM?~MxVcwB3%{xbzW2JU^ zc3?G~1#kQ?Xy`2%GbX%+T+D3rOAHm<SisL`jBw*Y@8s8w&W|xR-d+1SjFZUl(DRqk z)|U;BgD4CV4nYhO482~DiCu%o#N7v6{)*Yh80Vg-ZUn`6{C3B>kI`ZO&D|qZbFBM4 zKZNbadb+v}Vo(^aCme0uj95pmJnY5gWZso>Jsp^$9nXpfNiHjKh+xpF@g|p<Fyhsq z)|Z*C$c8*jt4{~=u)9r=_dEv{*0dS=bv3R+A_(ZqMsEju5(ifhk!DdAM%NcPx)K{7 z)9TKZxQh3<r}IyleUsS8n7_qSBOzx02savfJmK$%o{e<vm)Nx!JM2?*ExYttbSXMw zK6)c`I*tqvc_+VtP<6<d{4Dm1sw!xVz?5v4T(d#<7ykN$;R(;_xUu9|w=1r{c+|lD z!rrv|5b_vZT?*K5tHF~>&}ju&81);I|Ek=%OQmyYk9sbEzm>tJVYD}V1N6LlQkHje zzq%kAc_ZryT{tN=iWN-qgfmZ9cQ6<$K%AiNxAf&hgP8ajqj={^{58vkzk^2boi*Kk z)zo#6-6Ia(%8V-BCAa@#6)vzsTCf$@8gPkEId4A-c|!<qh$7y}y*vY<$-eSeren09 z>%dF{_bco6L{!66$G<&7wy$<!6yUT*--&QNW;ib1ZiEnyGLPZTKhC<Hj<2jmZm}-@ zLWS1-Al|y3@YNI1x7g}4g6e>R_hh&<Q-B*>%FZ7sJ4Y_^CffNt+W9oGvwMqo6oxjg z5n1!W5PlQ6&!pxgcegqaf>XLTbMSV4oZ)r7-CTucaje5GZyJ+v&HWAht&?@6MlCTt zXLv^8I;3K4=Q$ZX*E9L|>V}WLg@S{RZZ^;pE_lxh5PdcD0lnV|<Np5ScU2pu0RG&@ zJNZ4M^G_L`3>BpCi_sZEl`XM}_#3rSHOD()-_a4l;wD~K$I4^iRgbU)ylRU&zE*N# zT?@*@toP-w(XzNU;-8%zQeHC9z1HxCYtX(AWBfOK4fd9E4`G!A@fX8{&v5|bxR7&z zZV~^$if(4U=;20Vp!=rXk-!tPfo`RW^yk?50YT^)+}}{wQrC3HXw!Bm+i~kRQGzof zjw7z=`xXe?Pbi&)jqdi<xRTz<<%px~32kZpTb)7a^A}85@H+M_j-A$VtYOMN7nioE zE5xt85ZfD%xxWkxfg%s~W>27%4o~Pf?2(^X{qIs!=NdaMlJ@_^itjE|>D}A^O|&rf zjy0}+Aaq*}pg+cEQJ4Dl`t<(+`!_}GU-A#Je^bQ%&4cYf>l4~P=6)Z>z<a!sj`NRd zwdiua7|id#A~IgQ;p;Go!RO!R(1*vXc}rh<E;G-@bW-MeD=^s`I<su%*-cNN<E=2q zlA0ZSDP}yyFGsXL%*TlXu4P9?BApX^jqkR?<1woAJcaf5378K<Q>_a0LFp^O16bbd z-oanW#RktGvE%JiZSU&;neD}T1@AokyoZ>BITCAP9S@`LZyB*d$Q1Ic8;F>SFuBM4 zDIB_7=BkAEq<_NuPaX97_ea*dsILe0^~T(PEZ2895!`suID||4I>>q+vi^$J<GAM$ z!*$T{W!1@{W>jhQKUw(8gO#Vjn?!T0`a-BA?&hRsaiNTJ-E%V-)>x7*IC<B4{4J6B zwq&V5mc21q@K>FD)q?2{+qsgg{vTj&?|`rI^-Z_nUWHrbTNsWsT)S4TM1d9F@Of&k zv4TI36#0V2ba!Lo$_4J#bw`vB;SWy3^T%KrfWPxugPd5&qCF^Jn9wYQKO~@m)Gg`? zY;JJh$$@CCbnhEuePR%&O0aq>Q6R~Dg1^ssmVb=ij+YDjk#m>(@lg*K;e)n@?C`GT z8w2d_u=38v_8EVP#6MRk$wfYxLH?pb{=%N~PZcgx=i>gOTB_qnFmRTh--llBBU7-) zFz4iX!gI46_pf=}%ky(Rnmq#-!&Lj?XNVn<Rj#_1j}`pWp3YaX50@h~6W;(}mgIRx z?ev;eg?-m?N(<xA8h5$Zod_Z{3Oh{4*WHh+WrDO;Tg~!km57TH3N690^QW?>%ufpk z??<tv+>Yb@<0J7AYkjpJJsu2eJKB##wH?J0`YCuGccc?%8aXTHpp&;G-Hpync{hp^ z8;DwQUy_}xY(zH=)gHax`71a6=Nlp19LD-(KkViWRbdZ#V{UYLZ<)($zEalyY7l=m zE}O{RJLn&HW)*uz+0I{5S!-M2=U38PaDlH3UoX|{ZwmM-gDtVCO_lXa{l2PY{;KO@ zlWS`0>ZAnaRW8RDHq}>GHdTA-tNkrG?s@Yrop(V_LokrjP?NLVzr3MoRnE#~{`#EC zy1Irce795m(i~gPl2v~7wLL?XNBTT}WwpO4r?xq#z5&7-{q?r<aw?ZJG$|3as<x^o zKP2MolZKL0)ex+!Rsx#*D^VsVDmc)Pql)`;lq}oIbC(R=o~Rrug61`%fm#O`#D75! zjf-a}J!Tb`<uIewoW>@|X{uY5(~S1`t6`6vs)mN9>e~9sfZtXefVFCu)-U(h2Ov7< zf}F-C|BBj%U~^7mLvt-#jMOjY1eU=%k({wSWN7l&_?!IoRj9LiME$BN>#Blvx_26C zYMT9l=A4>JC|o^!yP|eMPgLjBG&C)*4CI`%ymD!6RZe|y`4WE<Uq23Mm)iOj(BCR( zYeE;OXDB;H>r?$uTR*5D2Kh)`LuK`l^#|+yEsYon=mOClkfdWr)@P}|9^VTV@aI(K zGzXV2uY}uU07P9RXZUti*3-+aZt$b5?gVtCWuqqlQo8!^aw7g76;*}tSzArjETL>; zlmGf4zDf!WPfzZ(!R3uMjKpAl<r4TaMp2U=-vH-dktkj%dmelgUYN785{?QlZa|sk zIn93mb&LbG^*PqS(9N>VErg}#H#F2W7kcXPMQinyb<XLD#&_%en7Yq2@Ho!oBA1cy zrbb86n{hmAvjty^-Ao$RA2s3NFfKj3;4SOwQp~Ximd^?KbT!tDt}BX}&ws-z)xoS@ z(c)eHIiE+n)TuAqca0D?l2|JQKjRW|#yKa%CY&L}RC4(pbrB)Rdh$d`;H3`RWkYdc zCY$YwMDB-3;FpZm;ta%AhhI_2cNS+9@caKl_)*X6_|5A`rz2a&=Ou3e3tkjk5TDnm z{Hh@*Q!Czgc#mmE#b$)=%Q(VWW#4H0S|i+NNSu#f<lIeSnGicj{JRkNXtQk+LS_3= zY_{LTW`izwIy26p`V?A@pHWu{0kGM)FK72WNdkJP?>U5q-x-|)q82~u;oWKqs5%0_ zek{b9BwohPQ~1f@7u`LEx?6xtNIaFH%jA=IUx+CrZp*aUzGr3I1-TUcI;9;D;;AeU zSB}+R%ci8+@uwEdc0aRC6(X0?<_V#)trlV_IqQW`x@`vWA`(@$ze7Hy{THR3hF>Jq zvtNi4D8P<i<eWlcp%8T>4%e<%HKA;zGG4d(GJgI>%g+-xc!LE0zV>LKdL9)*WqS=o zw#DJsGg8_(Aji+#$-szs)^#R+l*BH4ScsoTD1I`2ebM6F1>y{gL-7#-NWA3hHrse0 zt7NC}=YPr*HA89|rJFxBse^OH#BW4x4;N`}<~mifj=G`TJI^+%C41bR7zwuQZ2P#Z z4X}Fw2qy5PmJhp&PsHY#$YdLz{gu&~7*4jMF+S9jSWY=8IO&$N?2~S}qePE%%gsN` za$h>ka;g&!!!G#xSM{XZz6%et+~Mju^Dyf>?J&z7Zhib4Yd-1Pvq~3ByBxl@S3N`4 zr^Z!V2Ky^^{4E`^9Oe{T+t^#igfnl&h)gVhZJOm1$FaJt2pL1_E%Fn~{cp3=F(cVo z_=)}V{gKLLs{YNqh0zvIqMbP}@=3RUPSwRmESIQn*+}IwxtwVmb4zAeX`EPIz3U%N z-%Kt!+Q!{7HazCm%-b>&+dE;T`h}lZ?zj}oCF=X5k;-LKquVlW%?yvZWo+BH#PYu# zvHbA%@{d@aW^Rl4M`Hc|x0kONvHkqE@mn(57&P%D_WNgb^3Z;sIR-h}2Kkvc#d3-E zo-<-Ou5iK`w`8`l;z9bhS>^wv*IxsP>#ZU5JzW3Z&E*`PA>&8FcuZ{X^&^%aetd9C zz-Q?Chqo7Zl6;0PulqMq@7dg~3|nq^y??5U4^uB!q(jfk+!yf~TJPcG0!}#8Gj#d* zIGWi0e|G(e<8tvx`U^j?+?6Ahlkt(*-rGhjH@v;(jaYv8IDE|~EdQ_8|1%?w^Wp7x z!-(yVU*{zD-~18F4?ho7jaWYUJTPKB7rBXk%0K7hGvxTx>_O}G?h)e><6(4tlxU~x zL~hoQ^GCd$63a*8>0y?S_<4%u6YZAjxj~}dk$GsydXIx;Zp{d1-ZG{QhZc$T7Fl)^ zv?b2FlAc&^sWmQ!tatcvv2&z)M_5m1|HJDaUVnKFGPIv(#?Rl0_Ujq3{lnLP>4@cr zuYbgIoCNzP`pqRH)}MU+(Ql3OA^nEqbm)CluT}4m<%e&#+bS<O$lulRUUXlP*zQ!% zYZCi=<TyOM-b+T*d-(FpM=U?QzkSmBXOCF_@cM^GEFT}|679d=iWeehaKE$uq34(D zB|r~7zr>eM^qbI#`X?VRpVZ$crqu4}zAVvhM~paLhu<%}Wz|3Ic#Ycqg!5piQMM`L zfoB74z|p`r&Q)&#r@Rb20rYdg^KG_?j|sgCc-ko27aj(p$i$xjS^gV9ygi%}0<v5i za0>V<g>C?{+%h1`T?u4;bAXr%ryK*!03Q0BraOV7K>q-US9?>g1mgQ~rknxX4*D1% z^&bm71vm<b9nHkQPS$$#1F6R=K-Rk-h%6JoEBtQ?|2E;T2jc&U&G<$6mB1H)mjRyv z9s&F^@U2|+dUwhnfGwcE0lWx!Ebw;VkwDsEG?4Ybe-7*ex&1)W&kH^Uq+XpsWS#gk z;1ZPI1jPRnZ^y54(2YRKTLxtL#X!pYlF-G1E+FOQ1J45gvp|gHDHDN{K);1T=c4=@ zz~g~00-eC8ft0@oNclT~pF#fnfOgP#OZxYLlz%7iSnxx@&w+m<a1zo3!1F-Y0ogB? z0M7vy1J44E0e%+c4njE>=w2XpG!wgltiJ=u`nLjE&rgA8fd5?}UPMp10=NzBnFXZ3 z9WC^`XdLMmfaLEI`bWU=NN*Rc1v(&ik<d<|PX|)p<27A27D&H*|4c3K6(Hq53Z%Rr z34R%PH0Tx}^=<@W&YD;$=@pVb2Z*=$6EBqX^CkUk;HgMIQRqxy4&)5LNT(qEZ$R4R z&p@X40&#I*;)_E60Z2PN2|O9;9YE&aD*P=#=KoJ3(!U2}{%-?MN4g1QJJ$edw;CYZ zSpggaERggwB>iaMa^$N=rx33Kt_A)%N0)yN$nsr4^3MaV0FD8UMfwY<^a$Xif*XJ= z{{f7~`g?&a|1^;0X91T1rwDyAa4qP^VNAw}U%+^b58nV%?rPu{zz+Zy0{y@&q+bSP zzvTnb|7B+YX{VEbwCiy|+UZCl==WiKrvD8{d%X!f3H(=pVaVMFL?oX0TOj4#FZdJS zA@DZ>aTQ`pJMiB@2Z8t}<R;bwY1d1EtbaC;^~?gY{z9Rr0$J~Qz~hmA29R;@Wpwf{ zA@3d_?er5M{ynuRA3?ber2i2(AGip(9yktI4crH1X^(q>mjP>mtASSmOMxc>vG<=c z4tO{4Z74ev_){R|xq!2QCjoB&9tFGu*bSwx1a1Yg-1mXk1A{>3zX-^2I~jNh=m9i_ z@#lRY<IkHw#-CS#w8wrR?f*28@#hgB;}5_0hUvcq(k?#*GXC5NWc&#M8GqIR8Glv- zZNMvmj6YujGX8u9NW0Of#J7&q`ThhX{S5F#;1hyfz@I_yZvk_W?h||m$}#`zg8Kyj z3wS^Be*?;~+*QD>zz^`^W*e{*SOdHV_-)`);7O2kHSlYo&jro}9s`_#^jomZX$HL( zNO~ObI?yjTG`$|!0J;vy_ErO_*O!2-|Fc3L2mCM4KNzpmuLN!ZeFE@@z$1YyKN_go zb+pFEfVYFc3pfCK{{+Z<-xdC?f~y7Vfy`e6Wd0BA_?PWK-zfOOQJM}3o+5b9kvcs9 z<T$+y$Z<6XSOPiIfQuoA*HeglkH9Sw;7@_{a|1{}<K#~}y_ThMq2MvVR^<E3IGz3- z;MJgmz#d=?a3AmlAlDJc03mAPz*z0q4+5F~0FdbmfWJcipN!Gz-v=^%1MqI7mq_{- zCH?!ExVeJzHNYQ(e<g4#=(#}J>ug{?=y5>$>7O%nzMa5hK|c&Ef&3OA+c_{=<86Yc z3*LkEANgy6(}33krvnRtw9C^rjgJE%YT{kM<B<MMAVf^80e%Pipj%Y`0r-r+0C9wV zkuUff;>3f<w+A=@>HjTs4v_va0myNl4Ll!s6p-aJfE=$MAby+(>;iIJeFKQK^OU27 z{vF~4<vappzFz}bel75I)Vm1Ca*QXW88>=?oxlUY1wi`IOd#brf%K<ifjG;UG7d<) zzIdFv5H^M5{AHB8Pv{z<4Ipec<xPz1r@?;~_$u%bp;rjK5XgK-0pA7xZH)W9z?H!L zz#fd}J-`s~9bgmiG2nX`&(8rD10Mxu08fUTk1<~1>J#4svi*+&-vIv}AnUmm_$KJ< zC4G^kPZRvLjN_jJng2E*^WP|R6_ED(ImRjFZw9j79{@2_CRPAxZ#R(TCkl=MvfL(& zXQodBvV0zp<<AAO{2Oo}mM;e~|J7*BPSpQJ-~{Fqx}1ZCG?4k8Md6Pzh3^Ei`~yP& z7|43Ul7118`JWl9^Q{B!fqXacZQwCN-;43r4LX2v^(b%}@E~xM&_BQ+*adnM+yq&t z+ytb*Gy-sQY|3>&h??jF9s?S4of?M~K!})V0GSVC6UA&3X8=Esc_<Hvv+OD70y(a- zP|q3gzb(i_Y(@I}aM2dvM?lth<|y0v#lT|F3xQt&mIK!TS<hx*5%AxDg}_Zf*7JQ} zF7N{&fa6-pnF4u~L!=xc<q(SmDQB9<f$mBU^~yr}hd_Ysv&erl#$`LUJjBl<y-{c) z^{WFym#c}$XD<d`fc!+*V0@m?L>K7ufXq)sKKnt8=dU6^k?lSJB%g?Mdnd3AeBznl zZxNd41^qK1^AnNJ-U9p*@)OI!4+x)#bh`%_0-u-zexcAr+P45mc|_#1A40rnLw@3y z!G8xxJ`w5mt-vbqiA%u$mGFs3x3>WO)CX7%en9v{q}vODZt#hvtY7#<q}vZ64sBrl zz}r|qP}Q%~?OTBhSU+$+>j#ogM7q5NxQ6uuSF?WM6OnE&0$v3^@k;P76h0B@b{i1B za}9Ae_#Yz9Q9cpr_9uXIz$YTh_zt0omw<i{$oxd)vwsbUv33m+p>TYw&_t~7$FBx5 zKN0!t2Cx?SiOaw*6+RK^_AKD9!6$A5KU4Tbq}#g@hwH&7E(d=nkn)L0x334@2|n@L z;I9)t5$SdV_;uC~{2J>AvOE##_AFq4^#hw(KahMP((QjhBOAddW`o}?G_e8nP9XCW zk<Y#!_yF|*-Vgpd;S-T=zXJFW_(X*K@rKYu%**3Tfs{u?K6^Is3gjmuCXBZWpNMq( zOHk?;;1e<E$L|%IxCQhcU>@WVk<Wey@CV3GWc;}um<K))>GoRSkH9A$4gNx*i9ZBA zADD;yMC7wi27V9uiFWWO2u<7s`Z!=7@)MEI-iJp29r=kzfxk~^;vvva1DT(QeD*tl ztEexq1^nBEPei(XF|Yu9BI5n{tA$TQx;+<&Ip7-NHQ-MYJ`w5mgD_epSj5HP9{{p` zBGT<!fEC~q=Yjt-;S-T=Zv@tXPrMHNI^h$MZqEZQ1)o?0{&~VDBHexvM*bt~2foPq zfvSF;Zr=iYiuD7ZWc|V?BHi8yT*Uf;SF?WM6OnGu1HQ!ifjz8W_(Y`J52Dk4&-#H+ zvwoneU#Hu*0xt!hI2Zh137?2`dn@oi!6$A8f3@(5NVgXO{{TL5ANUsvpNMoj{^Q>t zTtj>p{14$2te=Q<dk64Y@QKfW|Df=RNVm5F|Hk@(@34O16OnE&0<L8Jz!j`t_(Y`J zZNU3jKk!$q|46AHh;(~5@MiFdt>EtzJ`w5m^}r(Vi5G#tPWVKm+YR8o;1hodeyQ+@ zNVjJJe-1wJXW(ZFpNMoj_e)d3C*m2u2T1!6k#7G_U_SW7ap2z}G;s{*+kwnaL_YgM z;H}6{41+&k_(Y`JbATJcC*BVJslq2B-QJsJvwahM;=hCcDv<JtNVjhWehYl!9pL{^ z_(Y`JmjQ1CpLhfK)xswt-JT1)5PafH@FxkMh;(}|8rj79f!DKspsHV|+xaIHm$QE0 zWvpNLM5No70Uu`lz~8Wb;S-T=&jmih`hh!Hzwn7jw;x21DFmN51N;L()=xybeJgM} z_{3@8|4R5oq}yA7_kd6QFYp7xCnDWm2;2caaXa`0!Y3l#&LC%kPh1cFhv;P1Pei)C z8~9W3iFbp)Q}{%r+t&lX2tM%(;I9)t5$X1Fpc8!JDDb_)CnDXR4SWK8;$HCW!Y3l# zzBkim`z!dwx53{7q<%!C+wTDW4t(Ms@NXAB5$X2Dz}?^zyTQL&_(Y`JbAfMxPka;n zNx~;0-QJsFvpo(z@iFjU1+so3((Rjpe*vF(5d0qspNMpOBk;H26CVY?PWVKm+Y5nR z;1hR&Um$!U((PQt{|S8J>)?MlTKWfwbUW{Fyaqn;Rq%HTpNMq(24Fw<#5cgdMfgOd z+ZO^~0iXCX`165m9}(&H9N-J!6ZeCEs_=<OxA&q`{|r9y0Qj#0m3?%&o%@_V@QJ<P z|4jHqq}yA7&x22V4*Y=diAc8>0sk9(;#Tl46h0B@_AFp0_{0wIGl8t1h;;j21i4w@ z6N|xzk0?G7>2|~v+fTqJ{uq43D8(lt-M$!j7x={g0RL(r<r9%^&jo%LeByV&pCo)D z((RuijeTB$8%+3g&m~B}b3JM3xIvS)8%W!+##*Wq{*5$za6OREtwM)|{yOO~*wcu- z9i$<z=t!M^59zU(!-W4LX~<(aJ}(QsS?Je=epu)?NTdAeb9DX>g}y}S@fU0UGNE&X z{)*7~LjO?cQlWc=zD($`UM+taY3R34>aP>p0p!yt`2&*w%fg=^{I3XovC#h}^kSiJ z75WE4e?#caLf;{Duh4f1eg14+|M!Ldg3vz^x<crm3Ed#{FN9t%^!=pAVof9ZcMHEm z_`egHn<zd{O8z}%nto0A=Lr7|q4R`(OXzEben;q5q5m#)htMAjo#oN;GoT0UUoLbO z>9OF=)%;V0zghS>Lhlv&ETInx{W&S`lk&9N_@g1KT+5p+w6Q?bv?KW&uF&*Xh3*!* zOX!6@%|H1F>~}I+Z9N5=Uio>@N4MIxV3Ou@sqi^z^4Tc-Ug1}tsm=jyIl00wWqF(> zE!A|^QJUX~ILGH@40`f&7Hay3<1~MZCT&yC*Zfv#Pu6(NZ-q_yoPxy_%eP*s=|2N- z4ry!Er0t4xG{0NybCC6C!Cyq5drs5&_nxQ=OhoXayga|AD<^@5PFuy^*G$y;vro|c zhl+ImLsgp2K1=8Cko@*jb^e^=HGie#-zxdv{H(}3Tk}s6du^`K^!dkVeg}O9&j9RB z{kAYr;@K?aTTw5cKa^;Gqm<u;KuLRWoyg~&Le1ZNjiw8w{X7@qv#D6*S8KWzagXIU z;D^su(qEgfNaJIooRW`z;WGn^LF$)Psp&h#UW-NkM@5=nDDo#BE9GHhKJQJ}{AG(Y zU3r}59~Aw|U7DXG{+cQLR^cC%_Vr5pu0CCt-!MVT+bjLMMfx{G_(j4G2)|MICyV`B zMZb@*m}L8MMgEDWX!$&U=Ck@D%`cMvy+r(Br})Eik+%sx$frW|T_*C*JX!P=d0+mb zme;XF=P!VswD)4M_tp!AFZSLg{bd`i^WP=?)g%4&T`Aw_(EPK%pv&`6jnCua?+=Q; zWyr_+wv5qyJK_S{UwD<KN5QYjr=RfIBK@;L`lndNdynXInp2lwyin(VUi_m~{G+H? z^BcuK8pOVN@Do1IihWzezQ2SWSbw?bcb&w84v7bMO8@4Zq{|;G<Kv+8?}KOR@_C=r z{DY;s{$&y$oWkd25k5ZQ_saO1h<;@Kjrig7{quGCLkl#$EJyQs*?`XvrT#oA|9P?Z zuf*Qmk5gV=rp`Y;U&||(c)jX0&0j3>>eXV+KUl5vABlFdd{MThZ<qcplK#Du^<k{^ zNPRP;zMc%7{~76@2~yv$rT?}F|2x9(k^XBJe!1}d!rvtP>qMU|qR%1Gr&aX19@SFc z#kzXivuEq}EG*XvU@5+^Z5xE2BYeK6X8CgXB%iVibouPXinNW9_>>Jl;q!ChZ&<8I z+de73Mar)ce!1}PLpI89)Y)yP!4K&F8>IffWNZH7u{y)U(=@+D;`6JB8>)S52%dWJ zkB$YJJ^`{g-)=(O<1<I~cdI%iCVemc3;Z1THJ|fkzHPir)A?*4_#28f{esfJ)z-aO z(`*;{jfI-tE%J-5)bxk23;73Kn%;_fINu)<{`cT#<S#DO{LiX*(`sw2)bvegm#Y6f zP5<Q_UB2*3n!fR5&Chdd`UMrwTGgRFQ+A8~*(I8P!%SViNaT-WJVX6^VOKucd78gi z;#sNGpC|R-EA{gw1fMI#etXewKF=xpx7zZ=e%E3wP=1cczgO&=Bl3TXaY+6_l;gAT zTwQ-&g{Ehs-^u5uo6ob*gZ5iEU(=sOTq1ul<nsBYlwT(0zb@q)rMz>BF26y_cS-qj zw42W&k>4ZbXN(j1(!TvtK1=+o?pV#wD^kU6o*7#H=0%!rI7ah}5Lfw>OxOHg@!!8O z{zLx`^gEwzD*m_Hwo3f}7X2UmBJ?YtYS@wOFO>3`i2LLpl>S+jtND%6Ke>n-N<Q@F z^W({yKVhDxJ4FAEB28}+{d-0K9isnU(f`|`f3EPqD)O_X|FRJ0sb9Isw@Lpt3jeFZ z?-2eq!rvnNUf~}SewDPZNc4YR+P7KS_nOpSF6C>b{CX+>qLgoy@>fXvd!+m+;vXH- z|G$#{&k_H)QT(Gv{EPQY*}hHUAN^APpi|o~EdJ3g<^NOqw@CW;I_cjQ>EANx-wwoW zKF3S{9uoeN<8}Y#6l?x*5`XskG=0?B;2(*2ajB-wvp^q#crCP-{G(cJy+YqdK5U+Q ziOxR_d0Bpw@ZCsec^+!>8GE!k|I!40zi>u8&3ktU5s~Mk1pY^7#`DJ}@XHd)FBl)6 ze|bXwpC!=W&WX=on81Jj)Oh|~3H7~nTs;3b3G^MX|ENgoaF%C}rza=S4<*nc#E;nW zGbYB<w<PFigY9GUUwULb{Wj+NSpL@%`sW)7_WN9deRd|uzd51)za`MWODOM6(Elv> zSFAoS!M|eZh6H(a3HJFZ=8xF?mnP)rxBtZQUri`qe_}j;Ljuivld<J%67;<}A^$T8 z@^47U?@VZaAR+(#3G~AW{WmY6J;x`|`xE?SAfbO>OYmQt&v#|aci0U59b_f>?((@6 zc|P^+WcsTL%bRLf;9J(*lrjIZl%%M<DdjA24qM;cIjMYcnlsPSd@;V%?^1k+p?gKj zZFS~X_yZ-C_$tV<hHAfi-kiA=K31o`-p5&>Aj(!^D*}bSc}skOCcobk2vh`IK2J5i z%&<1F$`f!`1Pbc>&CUE&iC^x58hlM2#0CZxy%t#;D{GrPbMR@p{>n;EGJDOKRaskX zePv?FvS9snlwC2+=XRqyXP&RZUx%;xb2bM&6@|Wt2G^=wNU(IMaQdi3MIhhl^9Add z2Jyv~{%T)iCBAi%U%Tj;>+<=Q)(3r6EiKL&K3_e*@DSgJiLa`w#Mfzh%3Gp(wm^dx z)bDO_&-Yc#;Q#aUL_C^YS2v=tWG!`}rSq(>cC66fG>G<C#;GXqvEc=5xSOy7br<{Q z&52Y!omKnlJ>@A&UtW>#V-pIfKO}up8?B0}y9&y#qN=L~+bDlpY!}qk*83})<eNuF zv|RFTfGr|s&^=JTYL&8(GuA?%q~hdli>)|+I-6Bn4}YqxtGxl<r8|V*znX5RXt}CO z;N|%~Url9Qv)>n3h4Ucg#!k3#W3YLdZ<)Wc@vy8`*FpoqY#29@o_9|5`6{cg4K@cp zWx=lHmDl+XU#9BI88XJGB%AGPR%8FLS}y`IbhSMrgJ;!p<+09$A(5WFlQ~PBa>!3; z@010nVee!zKastM5h(Vai)o~`q1m^jve}PmrZ!OOOlR71UfzVjY^d)MX1SV`q}3#o z(sWrc-(Od!3I_0@K^078nk}fn_nTrqYneBv7Pa!*PIck5X2n8$Gc#tDX1}`}V|%JK zonp$V#+<5F4%Kz#dKQlc)MP<@h{+K_-CbD$JrUU1w)&OJwUcvV3oL7DSP8>d`_%U~ zCoUGO*}pVTcSziN$6_X~Zmjf3FQ#P=SLB<jl|drw3uO@HBJdhnL}31QMGR(ry>)%H zugSlpvaS-}iM)h1O(p^pT!pd*ea{jx@)E{5J)#|hJHA@iTF=DQQ|-rBPV-xxhp0Yf z7jw?wnsaUt-;yog^4#p6M`z>LFsCdfKTo81)#Q4q{?1_~D8*&4(<u^W!OH0r%+HsC z@vFA9WVk2-6?;nE^R7*~(JpsOz+c~t#aueEWa_M9kI%huzI$$k=hC^_vn!ghD#!3? zPQC7ux`t*ym*BeY>PimankuHIEToXjcO`>$m(Qt!1b!Q~5|9`%p&`evue!Oxw+vqd zUB`N`dad+ftI|>{OKvs<f*`NbQ^m$DsOPt(`{w!aUDjH&!wxYBU9n#=?;dFdjm4%~ zzCxLNnRWB?tbkPKuU{HihPc?&(4<-pKaFZ8EADh_Y{9DE&3J9|;S1}RH>^m#FP!<s zY8f<7eK$8`U~7aGI)){`{u*wHEr{xup(Y%<u)j&Rj?U?`{ej4cF0BkyYBxbRi&y~P ztnX{6@u_d;w=9s#q?BJ!QMtk&H_)x!1E#5psaDXlHWIQjcNU=c)B;t9(Gk0El``h? zd2?2&cBiD8Gf_2neV}QTdtS6>MH_0$Ag^R&SIKYB|Fl+%SeDnK+6E=FuA$*Dm&>vw zitIDe&~car5p9W?Bz+x|$;6sQZAeAO6weN(8kNnFV2wD<wN0wC#58s=r-;EWXSIs| z1O<kSkLDk7sh+G=acj|h?uGD=DOmqh#iu1X+45@8_tQIPRG<-YLoJCf$98F2jZe0> z{d5{Xg5=a1U#M2y39X+~J9sds?mjLhGU9yte21|X=Wj_Cx2X%B&hQ(ns(W7QVar+Q zZD_bI*ce}4YnAkrCaob;SR(%<hrg`0Ua!p5^nxZ2AzUwkDw+#0Z8u`VsPOrhHwIQ= z(TgoG4yP)Y>a)qYk_D$?Wxi_s8xTzmh_#WaKehAE{QQW1CDy+$q1S*os>5cbA}|&I zh=>PAfAMF1+UpzZJXIL@&Z=cN(g`$G)&`of?of*lcf}HqI&Z*X1GSpYg9p{470uHt z8?nyeQDGWuE^CXDlJ}P8r?DuE*~eJ3X0l3>b{7xnxB-jKua(Ws_$Oc7m^o$LlT22U zSc5g1ziEa4;)bS};HnK4vxE8PousC)Pn(S?T=%M4i7vrnsosZw8>ng-^j1muH$}Js zwMcY&gwF+EbZ7R@Ygf`Op5>b<Epzh9{7p;!@nH-TX>^q{R6wJ%Oog+kUQMm4BoXr; zQ<V<)82T8M*QVGO9?PfP79IR0ws0Dmx*SKDvF`(hm<DLI>8QyHLHe*i`a*%n{z{Fw zEqZPJr?o}bibt07vZjsnaRNix<6q<1!=5z3!&C1or>mq6r}PO;n>TEmQ}XAjTtLQ; zocRsP>C*EDz84wFALuI>jeJ?Ms>0B7PAbYdr<L#@Nt+d{!BI>FPW0XL%B$vGi{ZdN zt*_*%nhI)5{Q;l9rOMx^7P^grCi3TBhJ8%roQ)~auL>Jn{gF%l229cZ%H`I(k0diE zgNSn~j!A2)tlWAMbz=mS&q460qqw;h4bkZAS<cor%vTLXortkXXXRmK+t48E5Fw@+ z*33BHli0Y_Cba^t%kc8GK^v8!Md_bXcg(1`t~PE_mfmJ1KVQ$I=*ZZW9fT-1PCA>X zp&VNV$Bk{=wLG~?aVu5G##zBI<x<Y6kv8eFpGH#(BQm4o{Zp|~RIqxr96c^e$$9dp z4PKc>PBw>Kov-5Ll62J?Gq1@R6HSj}naDyUdbEtgxF&sYKg1!gb-<j8GfywU$j6-m zeg2-(A<}eDbM*awMWC)3V=!^0ooq~3&BuH3X^0j$PaN7A>AsQkDr}#4Oqh;#h3rkl z#I%~^oDq92R?-lx52RCP<ULMovz+-jri;!fBfMCOYqoQS7yqW<Tz^X-Ql7!V7cWxJ zn$a$c=Q<0}BzJvvx%_*M?j=j&%^siK3aE(Sb<OV7!-aFYnw!e_?=j+S0sc8g8V>VG zeHH#0zhU}0?qBsxHp4B8%y21<$^x1!y^WhQ4<?Eoxp60}(N%NIh)hkDOYlz^LY4TV z+VTYZ$N&3-as3~8zn8KBXOtB$^v&|fdxKO4zO!IfahcESDP8ERFgzE}PkjyM;+u-H z;@O^()XU^MD?C@aFTL1T?Dfo^TjriSzr<KDcTVa8oCP8PjV!rzUK-1Lr%OtDVV>f7 zmtK5vg<H3Fe$tyhgLc45$@vv2b-m7e*<2ibU`5taxukZ5lSk{#wZ5u4Y{1pc39Pef z8g$NB4Xn49$z<@2X;J~PYQ+jr>%qogli#<ZwkZ&-<nqk7w57#|e-*a50q2&uDdk&{ zm$HKma~<t`KX=uso$3s8%ghoJ4QTNrBtBroT{N?brsVf&-8Hi$$L^a_ziyVS^gr)B zL2kX_b&2SK<-|Yg(pjX2f62YGNbQl^Gsy;P(uMWlt7j2mhij~4?+)T_pG9l<2VFpm zRFL!zT7>(Lx`r05;Gc67EmB{4m!p!sj7YeQ7M1+z-$#qcPUDJHGL_}cOhg=BPJfEG z(jsCbLu=5*v`Cip%%5zSB-~AlN>0=K>BvsQ{K>?AQu7ZZ6K|r$0?ESJpmmBf{yLgf zG^P1eb}&|%R3_5MA{B3)ta52hlf#}02Ha7Z!@c`R@^;R8^I=^*vjjyOWi6EW=4Kc! zwrmzRt%gO9z=pp_c38rbz9k4)qM~ga`Y#KTU+qdq!jRXx(h-t)vn!pl!(8r4M@-!P zuCxlqT=7b)T+H>Xbjl67k!2N*Zc>wlh+zgtx>uOuE=>)t{gYmdvLvSDzbRaaN=M#^ z7ndwyQDcAdyGxeLR2q!UbHdH45w9<a_)qHwQ$*ZhTo6jOW{J5V6cPRD++&J}I}A;e zO~r#XJ?z^|qFS<nI(RN0;zCnG^U}K3ldO4(tCxSowWhS%ozl&wPhy2+?)a%$VPxT{ z^?u4%oYJywnzx+NlAY|LQ(6KJ<E~SB@*^*8Qoin#j{L*Dt|WC-1k$~+l#X)A*SSNl z5P3-{E%|XP<>8j=NzY)c1^W<JmD16KYuhBZl`Ijl%lLoZL0k&^0lBdBuhlc@)&kcv zEUi*nt9;@+Na@w~Nv|QLQ`_O*L`tWQf9z$XbTo0McfH6G{jV8f!=5GZhLNRSDn6X% zC8Kmi=l=`t8Kt9NvKO)Xs!>`}l3cGzt9<esHtC2soJ%(8$k&G`gYVg-BO~srO*#eB zxNVb`*yz2OlrG#HrtFwIH|a?D=Ulr<N2AEynRE&zyD*Vf`6QPC^;L;<q(pB^q*E%* z3lr&xE*Rp@gqAVed+DrVug~X6^*wX!eF$Hms>Y|@bXNqth4>?^27Wh!&0CU(A17a3 z7vQyMbD%PS%Z-t*O#p>I7Q$a1=)YhHRw+8KmRDnxM5k?bNr_yy^aU!H)cGkdA3sy^ zQ!t1-IDh`2JW~gy43;x(P@d_7Qf5GdY4{n;DMTu{L>GRX$_P$=qUuiS?kwOhmUm9) zuNi~ntCAGqbPeJuiTTPF6q`@6`4pQ^vH296KUgoP%1h1iDK|ff+<cqcz~3L^Y8N|A V_o}#9S{?XFT}qeNKEThm{{xFP`GNod literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamToolsIndex_p.o b/src/utils/BamTools/src/api/internal/BamToolsIndex_p.o new file mode 100644 index 0000000000000000000000000000000000000000..e81c1139a314fa4a0ff8997e8bd2769827cc250e GIT binary patch literal 28356 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 a|NG=M`&%Igb5hRw8;+)-%5XhDEB_aXmsK19 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BamWriter_p.o b/src/utils/BamTools/src/api/internal/BamWriter_p.o new file mode 100644 index 0000000000000000000000000000000000000000..d1900e310615606bd94fe45f0d0e43483c6a4488 GIT binary patch literal 12016 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 Z1fOjFp4UxlPF{Zf88I+b%~8;`@c)(rKWYE~ literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/BgzfStream_p.o b/src/utils/BamTools/src/api/internal/BgzfStream_p.o new file mode 100644 index 0000000000000000000000000000000000000000..5160c6dee86ecb2a0c6ac6be1b8e5a816e72ef2d GIT binary patch literal 12064 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 H-J|_KV=)xB literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/SamFormatParser_p.o b/src/utils/BamTools/src/api/internal/SamFormatParser_p.o new file mode 100644 index 0000000000000000000000000000000000000000..30a31ef4d208423fe10bba1abcb65e373187773d GIT binary patch literal 43452 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 literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/SamFormatPrinter_p.o b/src/utils/BamTools/src/api/internal/SamFormatPrinter_p.o new file mode 100644 index 0000000000000000000000000000000000000000..ce79b555b00a19347a15c0a36240de9c5fe009be GIT binary patch literal 39556 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 M#1)r7)xa?R5Ag~J*8l(j literal 0 HcmV?d00001 diff --git a/src/utils/BamTools/src/api/internal/SamHeaderValidator_p.o b/src/utils/BamTools/src/api/internal/SamHeaderValidator_p.o new file mode 100644 index 0000000000000000000000000000000000000000..3eefb6dfc51969914cffd6dade2bd086c375931b GIT binary patch literal 55140 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%0AL8J9@moJ#NTe$NQJ^EaYA|k#yk~ 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 literal 0 HcmV?d00001 diff --git a/src/windowBed/Makefile b/src/windowBed/Makefile index 0b5303f3..e32b09b3 100644 --- a/src/windowBed/Makefile +++ b/src/windowBed/Makefile @@ -24,14 +24,10 @@ BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) PROGRAM= windowBed -all: $(PROGRAM) +all: $(BUILT_OBJECTS) .PHONY: all -$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) - @echo " * linking $(PROGRAM)" - @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ -L$(UTILITIES_DIR)/BamTools/lib/ -lbamtools $(LIBS) - $(BUILT_OBJECTS): $(SOURCES) @echo " * compiling" $(*F).cpp @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) diff --git a/src/windowBed/windowMain.cpp b/src/windowBed/windowMain.cpp index cbb5739a..9bf830ee 100644 --- a/src/windowBed/windowMain.cpp +++ b/src/windowBed/windowMain.cpp @@ -15,16 +15,16 @@ using namespace std; // define the version -#define PROGRAM_NAME "windowBed" +#define PROGRAM_NAME "bedtools window" // define our parameter checking macro #define PARAMETER_CHECK(param, paramLen, actualLen) (strncmp(argv[i], param, min(actualLen, paramLen))== 0) && (actualLen == paramLen) // function declarations -void ShowHelp(void); +void window_help(void); -int main(int argc, char* argv[]) { +int window_main(int argc, char* argv[]) { // our configuration variables bool showHelp = false; @@ -65,7 +65,7 @@ int main(int argc, char* argv[]) { } } - if(showHelp) ShowHelp(); + if(showHelp) window_help(); // do some parsing (all of these parameters require 2 strings) for(int i = 1; i < argc; i++) { @@ -198,17 +198,16 @@ int main(int argc, char* argv[]) { return 0; } else { - ShowHelp(); + window_help(); } + return 0; } -void ShowHelp(void) { - - cerr << endl << "Program: " << PROGRAM_NAME << " (v" << VERSION << ")" << endl; - - cerr << "Author: Aaron Quinlan (aaronquinlan@gmail.com)" << endl; +void window_help(void) { + cerr << "\nTool: bedtools window (aka windowBed)" << endl; + cerr << "Summary: Examines a \"window\" around each feature in A and" << endl; cerr << "\t reports all features in B that overlap the window. For each" << endl; cerr << "\t overlap the entire entry in A and B are reported." << endl << endl; @@ -219,7 +218,7 @@ void ShowHelp(void) { cerr << "\t-abam\t" << "The A input file is in BAM format. Output will be BAM as well." << endl << endl; - cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default is to write compressed BAM." << endl << endl; + cerr << "\t-ubam\t" << "Write uncompressed BAM output. Default writes compressed BAM." << endl << endl; cerr << "\t-bed\t" << "When using BAM input (-abam), write output as BED. The default" << endl; cerr << "\t\tis to write output in BAM when using -abam." << endl << endl; -- GitLab