From: barnett Date: Thu, 16 Jul 2009 15:02:14 +0000 (+0000) Subject: Added BamConversion back to BamTools X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=9f6d489fc810c243df6d893d78c95ea113da489d;p=bamtools.git Added BamConversion back to BamTools Updated Makefile git-svn-id: svn+ssh://gene.bc.edu/home/subversion/Derek/BamTools/trunk@22 9efb377e-2e27-44b9-b91a-ec4abb80ed8b --- diff --git a/BamConversionMain.cpp b/BamConversionMain.cpp new file mode 100644 index 0000000..51693b6 --- /dev/null +++ b/BamConversionMain.cpp @@ -0,0 +1,41 @@ +#include +#include "BamReader.h" +#include "BamWriter.h" +using namespace BamTools; +using namespace std; + +int main(int argc, char* argv[]) { + + if(argc != 3) { + cout << "USAGE: " << argv[0] << " " << endl; + exit(1); + } + + // localize our arguments + const char* inputFilename = argv[1]; + const char* outputFilename = argv[2]; + + // open our BAM reader + BamReader reader; + reader.Open(inputFilename); + + // retrieve the SAM header text + string samHeader = reader.GetHeaderText(); + + // retrieve the reference sequence vector + RefVector referenceSequences = reader.GetReferenceData(); + + // open the BAM writer + BamWriter writer; + writer.Open(outputFilename, samHeader, referenceSequences); + + // copy all of the reads from the input file to the output file + BamAlignment al; + while(reader.GetNextAlignment(al)) writer.SaveAlignment(al); + + // close our files + reader.Close(); + writer.Close(); + + return 0; +} diff --git a/Makefile b/Makefile index a056ae5..b2b6c92 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,13 @@ CXX= g++ CXXFLAGS= -Wall -O3 -PROG= BamDump BamTrim +PROG= BamConversion BamDump BamTrim LIBS= -lz all: $(PROG) +BamConversion: BamReader.o BamWriter.o BamConversionMain.o + $(CXX) $(CXXFLAGS) -o $@ BamReader.o BamWriter.o BamConversionMain.o $(LIBS) + BamDump: BamReader.o BamDumpMain.o $(CXX) $(CXXFLAGS) -o $@ BamReader.o BamDumpMain.o $(LIBS)