46 using bamGFFvector = std::vector< std::pair<BAMrecord, ExonGroup> >;
73 [[nodiscard]]
bool rangesOverlap(
const std::pair<hts_pos_t, hts_pos_t> &range1,
const std::pair<hts_pos_t, hts_pos_t> &range2)
noexcept;
83 [[nodiscard]] std::array<std::string, nGFFfields>
parseGFFline(
const std::string &gffLine);
93 [[nodiscard]] std::unordered_map< std::string, std::vector<ExonGroup> >
parseGFF(
const std::string &gffFileName);
105 [[nodiscard]] std::vector<std::vector<float>::const_iterator>
getPeaks(
const std::vector<float> &values,
const float &threshold);
117 [[nodiscard]] std::vector<std::vector<float>::const_iterator>
getValleys(
const std::vector<float> &values,
const float &threshold);
151 [[nodiscard]] std::string
stringifyAlignmentRange(
const bamGFFvector::const_iterator &begin,
const bamGFFvector::const_iterator &end);
191 [[nodiscard]] std::unique_ptr<bam1_t, BAMrecordDeleter>
modifyCIGAR(
const ReadPortion &modRange,
const std::unique_ptr<bam1_t, BAMrecordDeleter> &bamRecord);
205 const std::unique_ptr<sam_hdr_t, BAMheaderDeleter> &newRecordHeader,
const std::unique_ptr<bam1_t, BAMrecordDeleter> &newRecord,
const ReadPortion &remapInfo,
206 const std::unique_ptr<sam_hdr_t, BAMheaderDeleter> &originalHeader,
const float &remapIdentityCutoff, std::vector< std::unique_ptr<bam1_t, BAMrecordDeleter> > &readMapVector);
225 [[nodiscard]] std::vector< std::pair<bamGFFvector::const_iterator, bamGFFvector::const_iterator> >
236 [[nodiscard]] std::unordered_map<std::string, std::string>
parseCL(
int &argc,
char **argv);
247 void extractCLinfo(
const std::unordered_map<std::string, std::string> &parsedCLI,
248 std::unordered_map<std::string, int> &intVariables,
249 std::unordered_map<std::string, float> &floatVariables,
250 std::unordered_map<std::string, std::string> &stringVariables);
std::array< std::string, nGFFfields > parseGFFline(const std::string &gffLine)
Parse a GFF line into fields.
ReadPortion parseRemappedReadName(const std::string &remappedReadName)
Extract original read name and coordinates.
std::string stringifyAlignmentRange(const bamGFFvector::const_iterator &begin, const bamGFFvector::const_iterator &end)
Produce a string from a range of read alignments.
void extractCLinfo(const std::unordered_map< std::string, std::string > &parsedCLI, std::unordered_map< std::string, int > &intVariables, std::unordered_map< std::string, float > &floatVariables, std::unordered_map< std::string, std::string > &stringVariables)
Extract parameters from parsed command line interface flags.
std::vector< std::vector< float >::const_iterator > getPeaks(const std::vector< float > &values, const float &threshold)
Identify peaks in numerical data.
std::vector< std::vector< float >::const_iterator > getValleys(const std::vector< float > &values, const float &threshold)
Identify valleys in numerical data.
ReadExonCoverage getExonCoverageStats(const std::pair< BAMrecord, ExonGroup > &readAndExons)
Extract exon coverage statistics for a read.
std::unordered_map< std::string, std::vector< ExonGroup > > parseGFF(const std::string &gffFileName)
Parse a GFF file.
std::vector< std::pair< BAMrecord, ExonGroup > > bamGFFvector
Alias for BAM record and exon group pair vector.
Definition helperFunctions.hpp:46
bool rangesOverlap(const std::pair< hts_pos_t, hts_pos_t > &range1, const std::pair< hts_pos_t, hts_pos_t > &range2) noexcept
Test for range overlap.
std::vector< std::pair< bamGFFvector::const_iterator, bamGFFvector::const_iterator > > makeThreadRanges(const bamGFFvector &targetVector, const size_t &threadCount)
Make per-thread alignment record/annotation vector ranges.
void addRemappedSecondaryAlignment(const std::unique_ptr< sam_hdr_t, BAMheaderDeleter > &newRecordHeader, const std::unique_ptr< bam1_t, BAMrecordDeleter > &newRecord, const ReadPortion &remapInfo, const std::unique_ptr< sam_hdr_t, BAMheaderDeleter > &originalHeader, const float &remapIdentityCutoff, std::vector< std::unique_ptr< bam1_t, BAMrecordDeleter > > &readMapVector)
Add a re-mapped secondary alignment.
std::unique_ptr< BGZF, BGZFhandleDeleter > openBGZFtoAppend(const std::string &bamFileName)
Open a BGZF file handle for appending.
constexpr size_t nGFFfields
Number of GFF file fields.
Definition helperFunctions.hpp:44
std::string stringifyExonCoverage(const ReadExonCoverage &readRecord, char separator='\t')
Convert ReadExonCoverage to string.
std::vector< float > getReferenceMatchStatus(const std::vector< uint32_t > &cigar)
Read match status along the reference.
std::string extractParentName(const std::string &attributeString)
Extract parent name.
std::pair< std::string, std::string > getUnmappedRegionsAndFASTQ(const bamGFFvector::const_iterator &begin, const bamGFFvector::const_iterator &end, const BinomialWindowParameters &windowParameters)
Produce a string of poorly aligned region statistics and corresponding FASTQ records from an alignmen...
std::string stringifyUnmappedRegions(const bamGFFvector::const_iterator &begin, const bamGFFvector::const_iterator &end, const BinomialWindowParameters &windowParameters)
Produce a string of poorly aligned region statistics from an alignment range.
std::unique_ptr< bam1_t, BAMrecordDeleter > modifyCIGAR(const ReadPortion &modRange, const std::unique_ptr< bam1_t, BAMrecordDeleter > &bamRecord)
Modify the BAM CIGAR string to erase alignment in a range.
std::unordered_map< std::string, std::string > parseCL(int &argc, char **argv)
Command line parser.
std::string extractAttributeName(const TokenAttibuteListPair &tokenAndAttrList)
Extract a name.
Read isoSeq alignments and compare to genome annotations.
Binomial window parameters.
Definition isoseqAlgn.hpp:108
Exons covered by a read.
Definition isoseqAlgn.hpp:127
Read portion for re-mapping.
Definition isoseqAlgn.hpp:224
Token name and GFF attribute list pair.
Definition isoseqAlgn.hpp:79