1 // ***************************************************************************
2 // bamtools_coverage.cpp (c) 2010 Derek Barnett, Erik Garrison
3 // Marth Lab, Department of Biology, Boston College
4 // All rights reserved.
5 // ---------------------------------------------------------------------------
6 // Last modified: 1 June 2010
7 // ---------------------------------------------------------------------------
8 // Prints coverage statistics for a single BAM file
10 // ** Expand to multiple??
12 // ***************************************************************************
18 #include "bamtools_coverage.h"
19 #include "bamtools_options.h"
20 #include "BamReader.h"
23 using namespace BamTools;
25 // ---------------------------------------------
26 // CoverageSettings implementation
28 struct CoverageTool::CoverageSettings {
31 bool HasInputBamFilename;
34 std::string InputBamFilename;
37 CoverageSettings(void)
38 : HasInputBamFilename(false)
39 , InputBamFilename(Options::StandardIn())
43 // ---------------------------------------------
44 // CoverageTool implementation
46 CoverageTool::CoverageTool(void)
48 , m_settings(new CoverageSettings)
50 // set program details
51 Options::SetProgramInfo("bamtools coverage", "prints coverage stats for a BAM file", "-in <filename> ");
54 OptionGroup* IO_Opts = Options::CreateOptionGroup("Input & Output");
55 Options::AddValueOption("-in", "BAM filename", "the input BAM file", "", m_settings->HasInputBamFilename, m_settings->InputBamFilename, IO_Opts, Options::StandardIn());
58 CoverageTool::~CoverageTool(void) {
63 int CoverageTool::Help(void) {
64 Options::DisplayHelp();
68 int CoverageTool::Run(int argc, char* argv[]) {
70 // parse command line arguments
71 Options::Parse(argc, argv, 1);
75 reader.Open(m_settings->InputBamFilename);
77 // generate coverage stats
78 cerr << "Generating coverage stats for " << m_settings->InputBamFilename << endl;
79 cerr << "FEATURE NOT YET IMPLEMENTED!" << endl;