#include <Read_AMOS.hh>
Inheritance diagram for AMOS::Read_t:
Public Member Functions | |
Read_t () | |
Constructs an empty Read_t object. | |
Read_t (const Read_t &source) | |
Copy constructor. | |
~Read_t () | |
Destroys a Read_t object. | |
virtual void | clear () |
Clears all object data, reinitializes the object. | |
const std::vector< int16_t > & | getBasePositions () const |
Get the base call positions. | |
std::vector< int16_t > & | getBasePositions () |
Get the base call positions. | |
Range_t | getClearRange () |
Get the generic clear range. | |
ID_t | getFragment () const |
Get the parent fragment IID. | |
Pos_t | getFragmentPosition () |
Get the approximate position on the parent fragment. | |
virtual NCode_t | getNCode () const |
Get the AMOS NCode type identifier. | |
Range_t | getQualityClearRange () |
Get the quality score clear range. | |
ReadType_t | getType () const |
Get the type of read. | |
Range_t | getVectorClearRange () |
Get the vector sequence clear range. | |
virtual void | readMessage (const Message_t &msg) |
Reads in data from a Message object. | |
void | setBasePositions (const std::vector< int16_t > &bcp) |
Set the base call positions. | |
void | setClearRange (Range_t clear) |
Set the generic clear range. | |
void | setFragment (ID_t frag) |
Set the parent fragment IID. | |
void | setFragmentPosition (Pos_t pos) |
Set the approximate position on the parent fragment. | |
void | setQualityClearRange (Range_t qclear) |
Set the quality score clear range. | |
void | setType (ReadType_t type) |
Set the type of read. | |
void | setVectorClearRange (Range_t vclear) |
Set the vector sequence clear range. | |
virtual void | writeMessage (Message_t &msg) const |
Writes data to a Message object. | |
void | compress () |
Compress the internal representation of this sequence. | |
void | uncompress () |
Uncompress the internal representation of this sequence. | |
std::pair< char, char > | getBase (Pos_t index) const |
Get a single base and its quality score. | |
Size_t | getLength () const |
Get the length of the sequence. | |
std::string | getQualString () const |
Get the quality score string. | |
std::string | getQualString (Range_t range) const |
Get a quality score substring. | |
std::string | getSeqString () const |
Get the sequence base string. | |
std::string | getSeqString (Range_t range) const |
Get a sequence base substring. | |
bool | isCompressed () const |
Checks if the sequence data is compressed. | |
void | setBase (char seqchar, char qualchar, Pos_t index) |
Set a sequence base and its quality score. | |
void | setSequence (const char *seq, const char *qual) |
Set the entire sequence. | |
void | setSequence (const std::string &seq, const std::string &qual) |
Set the entire sequence. | |
const std::string & | getComment () const |
Get the comment string. | |
const Status_t | getStatus () const |
Get the status value. | |
void | setComment (const std::string &comment) |
Set the comment string. | |
void | setStatus (Status_t status) |
Set the status value. | |
const std::string & | getEID () const |
Get the external ID. | |
ID_t | getIID () const |
Get the internal ID. | |
bool | isRemoved () const |
Check if the object is waiting to be removed from the bank. | |
bool | isModified () const |
Check if the object has been modified. | |
bool | isFlagA () const |
Check the value of flag A. | |
bool | isFlagB () const |
Check the value of flag B. | |
void | setEID (const std::string &eid) |
Set the external ID. | |
void | setFlagA (bool flag) |
Set flag A. | |
void | setFlagB (bool flag) |
Set flag B. | |
void | setIID (ID_t iid) |
Set the internal ID. | |
Static Public Attributes | |
const NCode_t | NCODE = M_READ |
The NCode type identifier for this object. | |
const ReadType_t | NULL_READ = 0 |
const ReadType_t | OTHER = 'X' |
const ReadType_t | END = 'E' |
const ReadType_t | CONTIG = 'C' |
const ReadType_t | BAC = 'B' |
const ReadType_t | WALK = 'W' |
const ReadType_t | TRANSPOSON = 'T' |
Protected Member Functions | |
virtual void | readRecord (std::istream &fix, std::istream &var) |
Read selected class members from a biserial record. | |
virtual void | writeRecord (std::ostream &fix, std::ostream &var) const |
Write selected class members to a biserial record. | |
Static Protected Member Functions | |
uint8_t | compress (char seqchar, char qualchar) |
Compresses a sequence char and quality char into a single byte. | |
std::pair< char, char > | uncompress (uint8_t byte) |
Uncompresses a byte into a sequence and quality char. | |
Protected Attributes | |
uint8_t * | seq_m |
compressed seq and qual data or uncompressed seq | |
uint8_t * | qual_m |
uncompressed qual data | |
Size_t | length_m |
length of the sequence and quality data | |
ID_t | iid_m |
internal ID (integer AMOS identifier) | |
std::string | eid_m |
external ID (anything you want sans newlines) | |
BankFlags_t | flags_m |
bank flags, derived classes may use "nibble" | |
Static Protected Attributes | |
const uint8_t | COMPRESS_BIT = 0x1 |
compressed sequence flag | |
const uint8_t | ADENINE_BITS = 0x0 |
'A' bit | |
const uint8_t | CYTOSINE_BITS = 0x40 |
'C' bit | |
const uint8_t | GUANINE_BITS = 0x80 |
'G' bit | |
const uint8_t | THYMINE_BITS = 0xC0 |
'T' bit | |
const uint8_t | SEQ_BITS = 0xC0 |
sequence bit mask | |
const uint8_t | QUAL_BITS = 0x3F |
quality bit mask |
Derived from a Sequence_t type, this class is for the efficient storage of DNA sequencing reads. Retains all the functionality of a Sequence with added fields for clear ranges, mate pairs, etc.
Definition at line 31 of file Read_AMOS.hh.
|
Constructs an empty Read_t object. Sets all members to NULL Definition at line 74 of file Read_AMOS.hh. References AMOS::NULL_ID, and NULL_READ. |
|
Copy constructor. Definition at line 85 of file Read_AMOS.hh. |
|
Destroys a Read_t object. Definition at line 94 of file Read_AMOS.hh. |
|
Clears all object data, reinitializes the object. All data will be cleared, but object compression status will remain unchanged. Use the compress/uncompress members to change this info. Reimplemented from AMOS::Sequence_t. Definition at line 29 of file Read_AMOS.cc. References AMOS::Sequence_t::clear(), AMOS::NULL_ID, and NULL_READ. Referenced by readMessage(), and writeMessage(). |
|
Compress the internal representation of this sequence. After compression, this object will continue to compress incoming data until the uncompress method is called. Compression packs both a base and a quality score into a single byte, effectively halving the memory requirements for each object. The sequence should only contain A,C,G,T and Ns and quality scores in the range [MIN_QUALITY,MAX_QUALITY], if either of these conditions are not met the information will be lost when the data is compressed (see postconditions below).
References AMOS::Sequence_t::COMPRESS_BIT, AMOS::Sequence_t::isCompressed(), AMOS::Sequence_t::length_m, AMOS::Pos_t, AMOS::Sequence_t::qual_m, and AMOS::Sequence_t::seq_m. Referenced by AMOS::Sequence_t::setBase(). |
|
Compresses a sequence char and quality char into a single byte.
References AMOS::Sequence_t::ADENINE_BITS, AMOS::Char2Qual(), AMOS::Sequence_t::CYTOSINE_BITS, AMOS::Sequence_t::GUANINE_BITS, AMOS::Sequence_t::SEQ_BITS, and AMOS::Sequence_t::THYMINE_BITS. Referenced by AMOS::Sequence_t::clear(). |
|
Get a single base and its quality score. Retrieves and uncompresses the sequence base for the requested index.
References AMOS_THROW_ARGUMENT, AMOS::Sequence_t::isCompressed(), AMOS::Sequence_t::length_m, AMOS::Pos_t, AMOS::Sequence_t::qual_m, AMOS::Sequence_t::seq_m, and AMOS::Sequence_t::uncompress(). Referenced by AMOS::Sequence_t::getQualString(), AMOS::Sequence_t::getSeqString(), AMOS::Contig_t::getUngappedQualString(), AMOS::Contig_t::getUngappedSeqString(), and AMOS::Sequence_t::writeMessage(). |
|
Get the base call positions. If the vector is empty, then no base call positions are provided. Otherwise, the vector should have a size equal to the sequence length representing the base call positions as specified by the base-caller.
|
|
Get the base call positions. If the vector is empty, then no base call positions are provided. Otherwise, the vector should have a size equal to the sequence length representing the base call positions as specified by the base-caller.
|
|
Get the generic clear range.
Referenced by AMOS::operator<<(). |
|
Get the comment string.
Referenced by AMOS::operator<<(). |
|
Get the external ID.
References AMOS::IBankable_t::eid_m. Referenced by AMOS::Contig_t::writeUMD(). |
|
Get the parent fragment IID.
References AMOS::ID_t. |
|
Get the approximate position on the parent fragment. Get this read's 1-based position on the parent fragment, positive if counting from left and oriented forward, negative if counting from right and reverse oriented, 0 if unknown.
References AMOS::Pos_t. |
|
Get the internal ID.
References AMOS::ID_t, and AMOS::IBankable_t::iid_m. Referenced by AMOS::Index_t::buildContigFeature(), AMOS::Index_t::buildContigScaffold(), AMOS::Index_t::buildReadContig(), AMOS::Index_t::buildReadLibrary(), AMOS::Index_t::buildScaffoldFeature(), and AMOS::operator<<(). |
|
Get the length of the sequence.
References AMOS::Sequence_t::length_m, and AMOS::Size_t. Referenced by AMOS::Contig_t::getSpan(), AMOS::Contig_t::getUngappedQualString(), AMOS::Contig_t::getUngappedSeqString(), and writeMessage(). |
|
Get the AMOS NCode type identifier.
Reimplemented from AMOS::Sequence_t. Definition at line 172 of file Read_AMOS.hh. References AMOS::NCode_t. |
|
Get the quality score clear range.
|
|
Get a quality score substring. Returns a subrange of quality scores [begin, end) or (end, begin]. The reversed range will pull the reverse string of quality scores.
References AMOS_THROW_ARGUMENT, AMOS::Sequence_t::getBase(), AMOS::Sequence_t::length_m, AMOS::NULL_CHAR, AMOS::Pos_t, and AMOS::Reverse(). |
|
Get the quality score string.
References AMOS::Sequence_t::length_m. Referenced by AMOS::operator<<(). |
|
Get a sequence base substring. Returns a subrange of sequence bases [begin, end) or (end, being]. The reversed range will pull the reverse complement string of sequences bases.
References AMOS_THROW_ARGUMENT, AMOS::Sequence_t::getBase(), AMOS::Sequence_t::length_m, AMOS::NULL_CHAR, AMOS::Pos_t, and AMOS::ReverseComplement(). |
|
Get the sequence base string.
References AMOS::Sequence_t::length_m. Referenced by AMOS::operator<<(). |
|
Get the status value.
References AMOS::Status_t. |
|
Get the type of read.
References AMOS::ReadType_t. |
|
Get the vector sequence clear range.
|
|
Checks if the sequence data is compressed. Returns true if the Sequence is currently operating in compressed mode, or false if under normal operation.
References AMOS::Sequence_t::COMPRESS_BIT. Referenced by AMOS::Sequence_t::compress(), AMOS::Sequence_t::getBase(), AMOS::Sequence_t::operator=(), AMOS::Sequence_t::readRecord(), AMOS::Sequence_t::setBase(), AMOS::Sequence_t::setSequence(), AMOS::Sequence_t::uncompress(), and AMOS::Sequence_t::writeRecord(). |
|
Check the value of flag A.
References AMOS::IBankable_t::flags_m. Referenced by AMOS::Universal_t::writeMessage(), and AMOS::Overlap_t::writeMessage(). |
|
Check the value of flag B.
References AMOS::IBankable_t::flags_m. Referenced by AMOS::Universal_t::writeMessage(), and AMOS::Overlap_t::writeMessage(). |
|
Check if the object has been modified.
References AMOS::IBankable_t::flags_m. |
|
Check if the object is waiting to be removed from the bank.
References AMOS::IBankable_t::flags_m. |
|
Reads in data from a Message object. Reads the data contained in a Message object and stores it in the Messagable object. Will not complain if incoming message is of the wrong type, will only try and suck out the fields it recognizes. All previous data in the Messagable object will be cleared or overwritten.
Reimplemented from AMOS::Sequence_t. Definition at line 43 of file Read_AMOS.cc. References AMOS_THROW_ARGUMENT, clear(), AMOS::F_BASEPOSITION, AMOS::F_CLEAR, AMOS::F_FRAGMENT, AMOS::F_POSITION, AMOS::F_QUALITYCLEAR, AMOS::F_TYPE, AMOS::F_VECTORCLEAR, AMOS::Sequence_t::readMessage(), and setType(). |
|
Read selected class members from a biserial record. Reads the fixed and variable length streams from a biserial record and initializes the class members to the values stored within. Used in translating a biserial IBankable object, and needed to retrieve objects from a bank.
Reimplemented from AMOS::Sequence_t. Definition at line 134 of file Read_AMOS.cc. References AMOS::Pos_t, AMOS::readLE(), AMOS::Sequence_t::readRecord(), and AMOS::Size_t. |
|
Set a sequence base and its quality score. Any characters may be used for seq and qualchar unless dealing with a compressed sequence. If compressed, the sequence should only contain A,C,G,T and Ns and quality scores in the range [MIN_QUALITY,MAX_QUALITY], if either of these conditions are not met the information will be lost when the data is compressed (see postconditions below).
References AMOS_THROW_ARGUMENT, AMOS::Sequence_t::compress(), AMOS::Sequence_t::isCompressed(), AMOS::Sequence_t::length_m, AMOS::Pos_t, AMOS::Sequence_t::qual_m, and AMOS::Sequence_t::seq_m. Referenced by AMOS::Sequence_t::setSequence(). |
|
Set the base call positions.
|
|
Set the generic clear range.
|
|
Set the comment string.
|
|
Set the external ID. Will only use the characters up to but not including the first newline.
References AMOS::IBankable_t::eid_m, and AMOS::NL_CHAR. Referenced by AMOS::Contig_t::readUMD(). |
|
Set flag A. Has no effect on the actual object in memory other than setting a flag. This is one of two user accessible flags to be used as needed, the other is flag B.
References AMOS::IBankable_t::flags_m. Referenced by AMOS::Universal_t::readMessage(), and AMOS::Overlap_t::readMessage(). |
|
Set flag B. Has no effect on the actual object in memory other than setting a flag. This is one of two user accessible flags to be used as needed, the other is flag A.
References AMOS::IBankable_t::flags_m. Referenced by AMOS::Universal_t::readMessage(), and AMOS::Overlap_t::readMessage(). |
|
Set the parent fragment IID.
References AMOS::ID_t. |
|
Set the approximate position on the parent fragment. Set this read's 1-based position on the parent fragment, positive if counting from left and oriented forward, negative if counting from right and reverse oriented, 0 if unknown.
References AMOS::Pos_t. |
|
Set the internal ID.
References AMOS::ID_t, and AMOS::IBankable_t::iid_m. |
|
Set the quality score clear range.
|
|
Set the entire sequence. Combines and compresses the sequence and quality data contained in the two STL strings. If current Sequence object is compressed, please refer to the postconditions for the setBase(char,char,Pos_t) operation. All newline characters will be discarded. but the newlines must be in the same location in both the sequence and quality files.
References AMOS_THROW_ARGUMENT, AMOS::Sequence_t::isCompressed(), AMOS::Sequence_t::length_m, AMOS::NL_CHAR, AMOS::Pos_t, AMOS::Sequence_t::qual_m, AMOS::SafeRealloc(), AMOS::Sequence_t::seq_m, AMOS::Sequence_t::setBase(), and AMOS::Size_t. |
|
Set the entire sequence. Combines and compresses the sequence and quality data contained in the two C strings. If current Sequence object is compressed, please refer to the postconditions for the setBase(char,char,Pos_t) operation. All newline characters will be discarded, but the newlines must be in the same location in both the sequence and quality files.
References AMOS_THROW_ARGUMENT, AMOS::Sequence_t::isCompressed(), AMOS::Sequence_t::length_m, AMOS::NL_CHAR, AMOS::Pos_t, AMOS::Sequence_t::qual_m, AMOS::SafeRealloc(), AMOS::Sequence_t::seq_m, AMOS::Sequence_t::setBase(), and AMOS::Size_t. Referenced by AMOS::Sequence_t::readMessage(). |
|
Set the status value.
References AMOS::Status_t. Referenced by AMOS::Universal_t::readMessage(). |
|
Set the type of read.
References AMOS_THROW_ARGUMENT, BAC, CONTIG, END, NULL_READ, OTHER, AMOS::ReadType_t, TRANSPOSON, and WALK. Referenced by readMessage(). |
|
Set the vector sequence clear range.
|
|
Uncompress the internal representation of this sequence. After uncompression, this object will not compress incoming data until the compress method is called once again. The uncompressed version uses two bytes to store a base and quality score, thus doubling the memory requirements over a compressed version.
References AMOS::Sequence_t::COMPRESS_BIT, AMOS::Sequence_t::isCompressed(), AMOS::Sequence_t::length_m, AMOS::Pos_t, AMOS::Sequence_t::qual_m, AMOS::SafeRealloc(), and AMOS::Sequence_t::seq_m. Referenced by AMOS::Sequence_t::getBase(). |
|
Uncompresses a byte into a sequence and quality char.
References AMOS::Sequence_t::ADENINE_BITS, AMOS::Sequence_t::CYTOSINE_BITS, AMOS::Sequence_t::GUANINE_BITS, AMOS::Qual2Char(), AMOS::Sequence_t::QUAL_BITS, AMOS::Sequence_t::SEQ_BITS, and AMOS::Sequence_t::THYMINE_BITS. |
|
Writes data to a Message object. Writes the data contained in a Messagable object to a Message object. All previous data in the Message will be cleared or overwritten.
Reimplemented from AMOS::Sequence_t. Definition at line 177 of file Read_AMOS.cc. References clear(), AMOS::F_BASEPOSITION, AMOS::F_CLEAR, AMOS::F_FRAGMENT, AMOS::F_POSITION, AMOS::F_QUALITYCLEAR, AMOS::F_TYPE, AMOS::F_VECTORCLEAR, AMOS::Sequence_t::getLength(), AMOS::NULL_ID, NULL_READ, AMOS::NULL_STRING, and AMOS::Sequence_t::writeMessage(). |
|
Write selected class members to a biserial record. Writes the fixed and variable length streams to a biserial record. Used in generating a biserial IBankable object, and needed to commit objects to a bank. Should not write the flags, EID, or IID of the object because the bank will handle the storage of these fields on its own.
Reimplemented from AMOS::Sequence_t. Definition at line 246 of file Read_AMOS.cc. References AMOS::Pos_t, AMOS::Size_t, AMOS::writeLE(), and AMOS::Sequence_t::writeRecord(). |
|
'A' bit Definition at line 47 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::compress(), and AMOS::Sequence_t::uncompress(). |
|
Definition at line 23 of file Read_AMOS.cc. Referenced by setType(). |
|
compressed sequence flag Definition at line 46 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::clear(), AMOS::Sequence_t::compress(), AMOS::Sequence_t::isCompressed(), and AMOS::Sequence_t::uncompress(). |
|
Definition at line 22 of file Read_AMOS.cc. Referenced by setType(). |
|
'C' bit Definition at line 48 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::compress(), and AMOS::Sequence_t::uncompress(). |
|
external ID (anything you want sans newlines) Definition at line 66 of file Bank_AMOS.hh. Referenced by AMOS::IBankable_t::clear(), AMOS::IBankable_t::getEID(), and AMOS::IBankable_t::setEID(). |
|
Definition at line 21 of file Read_AMOS.cc. Referenced by setType(). |
|
bank flags, derived classes may use "nibble" Definition at line 68 of file Bank_AMOS.hh. Referenced by AMOS::IBankable_t::clear(), AMOS::IBankable_t::isFlagA(), AMOS::IBankable_t::isFlagB(), AMOS::IBankable_t::isModified(), AMOS::IBankable_t::isRemoved(), AMOS::IBankable_t::setFlagA(), and AMOS::IBankable_t::setFlagB(). |
|
'G' bit Definition at line 49 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::compress(), and AMOS::Sequence_t::uncompress(). |
|
internal ID (integer AMOS identifier) Definition at line 64 of file Bank_AMOS.hh. Referenced by AMOS::IBankable_t::clear(), AMOS::IBankable_t::getIID(), AMOS::IBankable_t::IBankable_t(), and AMOS::IBankable_t::setIID(). |
|
length of the sequence and quality data Definition at line 43 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::clear(), AMOS::Sequence_t::compress(), AMOS::Sequence_t::getBase(), AMOS::Sequence_t::getLength(), AMOS::Sequence_t::getQualString(), AMOS::Sequence_t::getSeqString(), AMOS::Sequence_t::operator=(), AMOS::Sequence_t::readRecord(), AMOS::Sequence_t::Sequence_t(), AMOS::Sequence_t::setBase(), AMOS::Sequence_t::setSequence(), AMOS::Sequence_t::uncompress(), AMOS::Sequence_t::writeMessage(), and AMOS::Sequence_t::writeRecord(). |
|
The NCode type identifier for this object.
Reimplemented from AMOS::Sequence_t. Definition at line 18 of file Read_AMOS.cc. |
|
Definition at line 19 of file Read_AMOS.cc. Referenced by clear(), Read_t(), setType(), and writeMessage(). |
|
Definition at line 20 of file Read_AMOS.cc. Referenced by setType(). |
|
quality bit mask Definition at line 52 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::uncompress(). |
|
uncompressed qual data Definition at line 42 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::clear(), AMOS::Sequence_t::compress(), AMOS::Sequence_t::getBase(), AMOS::Sequence_t::operator=(), AMOS::Sequence_t::readRecord(), AMOS::Sequence_t::Sequence_t(), AMOS::Sequence_t::setBase(), AMOS::Sequence_t::setSequence(), AMOS::Sequence_t::uncompress(), AMOS::Sequence_t::writeRecord(), and AMOS::Sequence_t::~Sequence_t(). |
|
sequence bit mask Definition at line 51 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::compress(), and AMOS::Sequence_t::uncompress(). |
|
compressed seq and qual data or uncompressed seq Definition at line 41 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::clear(), AMOS::Sequence_t::compress(), AMOS::Sequence_t::getBase(), AMOS::Sequence_t::operator=(), AMOS::Sequence_t::readRecord(), AMOS::Sequence_t::Sequence_t(), AMOS::Sequence_t::setBase(), AMOS::Sequence_t::setSequence(), AMOS::Sequence_t::uncompress(), AMOS::Sequence_t::writeRecord(), and AMOS::Sequence_t::~Sequence_t(). |
|
'T' bit Definition at line 50 of file Sequence_AMOS.hh. Referenced by AMOS::Sequence_t::compress(), and AMOS::Sequence_t::uncompress(). |
|
Definition at line 25 of file Read_AMOS.cc. Referenced by setType(). |
|
Definition at line 24 of file Read_AMOS.cc. Referenced by setType(). |