]> git.donarmstrong.com Git - bamtools.git/blob - bamtools_sort.h
Mostly cleaned up help & usage messages. Added MIT license.
[bamtools.git] / bamtools_sort.h
1 // ***************************************************************************
2 // bamtools_sortt.h (c) 2010 Derek Barnett, Erik Garrison
3 // Marth Lab, Department of Biology, Boston College
4 // All rights reserved.
5 // ---------------------------------------------------------------------------
6 // Last modified: 26 May 2010
7 // ---------------------------------------------------------------------------
8 // Sorts an input BAM file (default by position) and stores in a new BAM file.
9 // ***************************************************************************
10
11 #ifndef BAMTOOLS_SORT_H
12 #define BAMTOOLS_SORT_H
13
14 #include <iostream>
15 #include <string>
16
17 #include "BamReader.h"
18 #include "bamtools_getopt.h"
19
20 namespace BamTools {
21
22 int BamSortHelp(void) { 
23     std::cerr << std::endl;
24     std::cerr << "usage:\tbamtools sort [--in FILE] [--out FILE]" << std::endl;
25     std::cerr << std::endl;
26     std::cerr << "\t--in FILE   Input BAM file to sort          [stdin]" << std::endl;
27     std::cerr << "\t--out FILE  Destination of sorted BAM file  [stdout]" << std::endl;
28     std::cerr << std::endl;
29     return 0;
30 }
31
32 int RunBamSort(int argc, char* argv[]) {
33   
34     // else parse command line for args  
35     GetOpt options(argc, argv, 1);
36     
37     std::string inputFilename;
38     options.addOption("in", &inputFilename);
39     
40     std::string outputFilename;
41     options.addOption("out", &outputFilename);
42     
43     if ( !options.parse() ) return BamCoverageHelp();
44     if ( inputFilename.empty() )  { inputFilename  = "stdin"; }
45     if ( outputFilename.empty() ) { outputFilename = "stdout"; }
46     
47     // open our BAM reader
48 //     BamReader reader;
49 //     reader.Open(inputFilename);
50 //     
51 //     // retrieve header & reference dictionary info
52 //     std::string header = reader.GetHeaderText();
53 //     RefVector references = reader.GetReferenceData(); 
54 //     
55 //     BamWriter writer;
56 //     writer.Open(outputFilename, header, references);
57 //     
58     // sort BAM file
59     std::cerr << "Sorting " << inputFilename << std::endl;
60     std::cerr << "Saving sorted BAM in " << outputFilename << endl;
61     std::cerr << "FEATURE NOT YET IMPLEMENTED!" << std::endl;
62     
63     // clean & exit
64 //     reader.Close();
65 //     writer.Close();
66     return 0;
67 }
68
69 } // namespace BamTools
70
71 #endif // BAMTOOLS_SORT_H