isoSeqQC
Quality assessment and re-mapping of poorly mapped isoSeq read segments
Loading...
Searching...
No Matches
isaSpace::BAMsafeReader Class Reference

BAM file safe reader. More...

#include <isoseqAlgn.hpp>

Public Member Functions

 BAMsafeReader ()=default
 Default constructor.
 BAMsafeReader (const std::string &bamFileName)
 Constructor with file name.
 BAMsafeReader (const BAMsafeReader &toCopy)=delete
 Copy constructor.
BAMsafeReaderoperator= (const BAMsafeReader &toCopy)=delete
 Copy assignment operator.
 BAMsafeReader (BAMsafeReader &&toMove) noexcept
 Move constructor.
BAMsafeReaderoperator= (BAMsafeReader &&toMove) noexcept
 Move assignment operator.
 ~BAMsafeReader ()
 Destructor.
std::unique_ptr< sam_hdr_t, BAMheaderDeletergetHeaderCopy () const
 Get BAM header.
std::pair< std::unique_ptr< bam1_t, BAMrecordDeleter >, int32_t > getNextRecord ()
 Get the next BAM record.

Detailed Description

BAM file safe reader.

Temporarily sets read-only on the BAM file while reading from it. This is because I observed that calls to some (unclear which) HTSL BAM file read function very rarely deletes the file instead of reading it. Restores permissions after closing.

Constructor & Destructor Documentation

◆ BAMsafeReader() [1/3]

isaSpace::BAMsafeReader::BAMsafeReader ( const std::string & bamFileName)

Constructor with file name.

Parameters
[in]bamFileNameBAM file name

◆ BAMsafeReader() [2/3]

isaSpace::BAMsafeReader::BAMsafeReader ( const BAMsafeReader & toCopy)
delete

Copy constructor.

Parameters
[in]toCopyobject to copy

◆ BAMsafeReader() [3/3]

isaSpace::BAMsafeReader::BAMsafeReader ( BAMsafeReader && toMove)
inlinenoexcept

Move constructor.

Parameters
[in]toMoveobject to move

Member Function Documentation

◆ getHeaderCopy()

std::unique_ptr< sam_hdr_t, BAMheaderDeleter > isaSpace::BAMsafeReader::getHeaderCopy ( ) const
nodiscard

Get BAM header.

Returns a pointer to a copy of the stored BAM header.

Returns
pointer to a copy of the header

◆ getNextRecord()

std::pair< std::unique_ptr< bam1_t, BAMrecordDeleter >, int32_t > isaSpace::BAMsafeReader::getNextRecord ( )
nodiscard

Get the next BAM record.

Returns a pointer to the next BAM record in the file and number of bytes read. The byte count can also be used to test for read success.

Returns
BAM header pointer and byte count

◆ operator=() [1/2]

BAMsafeReader & isaSpace::BAMsafeReader::operator= ( BAMsafeReader && toMove)
noexcept

Move assignment operator.

Parameters
[in]toMoveobject to move
Returns
BAMsafeReader object

◆ operator=() [2/2]

BAMsafeReader & isaSpace::BAMsafeReader::operator= ( const BAMsafeReader & toCopy)
delete

Copy assignment operator.

Parameters
[in]toCopyobject to copy
Returns
BAMsafeReader object

The documentation for this class was generated from the following file: