BamTools
2.5.3
Loading...
Searching...
No Matches
src
api
SamHeader.h
Go to the documentation of this file.
1
// ***************************************************************************
2
// SamHeader.h (c) 2010 Derek Barnett
3
// Marth Lab, Department of Biology, Boston College
4
// ---------------------------------------------------------------------------
5
// Last modified: 10 October 2011 (DB)
6
// ---------------------------------------------------------------------------
7
// Provides direct read/write access to the SAM header data fields.
8
// ***************************************************************************
9
10
#ifndef SAM_HEADER_H
11
#define SAM_HEADER_H
12
13
#include <string>
14
#include <vector>
15
#include "
api/BamAux.h
"
16
#include "
api/SamProgramChain.h
"
17
#include "
api/SamReadGroupDictionary.h
"
18
#include "
api/SamSequenceDictionary.h
"
19
#include "
api/api_global.h
"
20
21
namespace
BamTools
{
22
23
struct
API_EXPORT
SamHeader
24
{
25
26
// ctor & dtor
27
SamHeader
(
const
std::string& headerText = std::string());
28
29
// query/modify entire SamHeader
30
void
Clear
();
// clears all header contents
31
std::string
GetErrorString
()
const
;
32
bool
HasError
()
const
;
33
bool
IsValid
(
bool
verbose =
false
)
const
;
// returns true if SAM header is well-formed
34
void
SetHeaderText
(
35
const
std::string& headerText);
// replaces data fields with contents of SAM-formatted text
36
std::string
ToString
()
const
;
// returns the printable, SAM-formatted header text
37
38
// convenience query methods
39
bool
HasVersion
()
const
;
// returns true if header contains format version entry
40
bool
HasSortOrder
()
const
;
// returns true if header contains sort order entry
41
bool
HasGroupOrder
()
const
;
// returns true if header contains group order entry
42
bool
HasSequences
()
const
;
// returns true if header contains any sequence entries
43
bool
HasReadGroups
()
const
;
// returns true if header contains any read group entries
44
bool
HasPrograms
()
const
;
// returns true if header contains any program record entries
45
bool
HasComments
()
const
;
// returns true if header contains comments
46
47
// --------------
48
// data members
49
// --------------
50
51
// header metadata (@HD line)
52
std::string
Version
;
// VN:<Version> *Required, if @HD record is present*
53
std::string
SortOrder
;
// SO:<SortOrder>
54
std::string
GroupOrder
;
// GO:<GroupOrder>
55
std::vector<CustomHeaderTag>
CustomTags
;
// optional custom tags on @HD line
56
57
// header sequences (@SQ entries)
58
SamSequenceDictionary
Sequences
;
59
60
// header read groups (@RG entries)
61
SamReadGroupDictionary
ReadGroups
;
62
63
// header program data (@PG entries)
64
SamProgramChain
Programs
;
65
66
// header comments (@CO entries)
67
std::vector<std::string>
Comments
;
68
69
// internal data
70
private
:
71
mutable
std::string m_errorString;
72
};
73
74
}
// namespace BamTools
75
76
#endif
// SAM_HEADER_H
BamAux.h
SamProgramChain.h
SamReadGroupDictionary.h
SamSequenceDictionary.h
api_global.h
BamTools::SamProgramChain
Sorted container "chain" of SamProgram records.
Definition
SamProgramChain.h:27
BamTools::SamReadGroupDictionary
Container of SamReadGroup entries.
Definition
SamReadGroupDictionary.h:27
BamTools::SamSequenceDictionary
Container of SamSequence entries.
Definition
SamSequenceDictionary.h:27
BamTools
Contains all BamTools classes & methods.
Definition
Sort.h:24
BamTools::SamHeader::HasPrograms
bool HasPrograms() const
Returns true if header contains any @PG entries.
Definition
SamHeader.cpp:146
BamTools::SamHeader::HasSequences
bool HasSequences() const
Returns true if header contains any @SQ entries.
Definition
SamHeader.cpp:130
BamTools::SamHeader::HasError
bool HasError() const
Returns true if header encountered an error.
Definition
SamHeader.cpp:98
BamTools::SamHeader::HasVersion
bool HasVersion() const
Returns true if header contains @HD ID:<Version>.
Definition
SamHeader.cpp:106
BamTools::SamHeader::ReadGroups
SamReadGroupDictionary ReadGroups
corresponds to @RG entries
Definition
SamHeader.h:61
BamTools::SamHeader::HasGroupOrder
bool HasGroupOrder() const
Returns true if header contains @HD GO:<GroupOrder>.
Definition
SamHeader.cpp:122
BamTools::SamHeader::HasReadGroups
bool HasReadGroups() const
Returns true if header contains any @RG entries.
Definition
SamHeader.cpp:138
BamTools::SamHeader::SortOrder
std::string SortOrder
corresponds to @HD SO:<SortOrder>
Definition
SamHeader.h:53
BamTools::SamHeader::SamHeader
SamHeader(const std::string &headerText=std::string())
constructor
Definition
SamHeader.cpp:56
BamTools::SamHeader::CustomTags
std::vector< CustomHeaderTag > CustomTags
Definition
SamHeader.h:55
BamTools::SamHeader::Clear
void Clear()
Clears all header contents.
Definition
SamHeader.cpp:65
BamTools::SamHeader::ToString
std::string ToString() const
Converts data fields to SAM-formatted text.
Definition
SamHeader.cpp:224
BamTools::SamHeader::Comments
std::vector< std::string > Comments
corresponds to @CO entries
Definition
SamHeader.h:67
BamTools::SamHeader::HasSortOrder
bool HasSortOrder() const
Returns true if header contains @HD SO:<SortOrder>.
Definition
SamHeader.cpp:114
BamTools::SamHeader::Programs
SamProgramChain Programs
corresponds to @PG entries
Definition
SamHeader.h:64
BamTools::SamHeader::HasComments
bool HasComments() const
Returns true if header contains any @CO entries.
Definition
SamHeader.cpp:154
BamTools::SamHeader::SetHeaderText
void SetHeaderText(const std::string &headerText)
Replaces header contents with headerText.
Definition
SamHeader.cpp:197
BamTools::SamHeader::IsValid
bool IsValid(bool verbose=false) const
Checks header contents for required data and proper formatting.
Definition
SamHeader.cpp:166
BamTools::SamHeader::GetErrorString
std::string GetErrorString() const
Returns a human-readable description of the last error that occurred.
Definition
SamHeader.cpp:90
BamTools::SamHeader::GroupOrder
std::string GroupOrder
corresponds to @HD GO:<GroupOrder>
Definition
SamHeader.h:54
BamTools::SamHeader::Sequences
SamSequenceDictionary Sequences
corresponds to @SQ entries
Definition
SamHeader.h:58
BamTools::SamHeader::Version
std::string Version
corresponds to @HD VN:<Version>
Definition
SamHeader.h:52
Generated by
1.15.0