本文整理汇总了C++中bam_record::read_no方法的典型用法代码示例。如果您正苦于以下问题:C++ bam_record::read_no方法的具体用法?C++ bam_record::read_no怎么用?C++ bam_record::read_no使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bam_record
的用法示例。
在下文中一共展示了bam_record::read_no方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fragSource
static
void
getSingleReadSVCandidates(
const ReadScannerOptions& opt,
const ReadScannerDerivOptions& dopt,
const bam_record& localRead,
const SimpleAlignment& localAlign,
const chromMap_t& chromToIndex,
const reference_contig_segment& refSeq,
std::vector<SVObservation>& candidates)
{
using namespace illumina::common;
const bool isRead2(localRead.is_paired() && (localRead.read_no() == 2));
const FRAGSOURCE::index_t fragSource(isRead2 ? FRAGSOURCE::READ2 : FRAGSOURCE::READ1);
// - process any large indels in the localRead:
getSVCandidatesFromReadIndels(opt, dopt, localAlign, fragSource, candidates);
#ifdef DEBUG_SCANNER
log_os << __FUNCTION__ << ": post-indels candidate_size: " << candidates.size() << "\n";
#endif
// a read can provide SA split evidence or semi-aligned/soft-clip, but not both.
// this prevents split reads from triggering spurious local assembles. It is
// possible for a read to genuinely contain evidence of both, but this should
// be very rare.
if (localRead.isSASplit())
{
getSACandidatesFromRead(opt, dopt, localRead, localAlign, fragSource, chromToIndex,
candidates);
#ifdef DEBUG_SCANNER
log_os << __FUNCTION__ << ": post-split read candidate_size: " << candidates.size() << "\n";
#endif
}
else
{
if (dopt.isSmallCandidates)
{
getSVCandidatesFromSemiAligned(opt, dopt, localRead, localAlign, fragSource, refSeq,
candidates);
}
#ifdef DEBUG_SCANNER
log_os << __FUNCTION__ << ": post-semialigned candidate_size: " << candidates.size() << "\n";
#endif
}
}
示例2: fragPtr
void
SVCandidateSetSequenceFragmentSampleGroup::
add(
const bam_header_info& bamHeader,
const bam_record& bamRead,
const bool isExpectRepeat,
const bool isSourcedFromGraphEdgeNode1,
const bool isSubMapped)
{
using namespace illumina::common;
#ifdef DEBUG_SVDATA
log_os << "SVDataGroup adding: " << bamRead << "\n";
#endif
SVCandidateSetSequenceFragment* fragPtr(getSequenceFragment(bamRead.qname()));
if (nullptr == fragPtr) return;
SVCandidateSetSequenceFragment& fragment(*fragPtr);
SVCandidateSetRead* targetReadPtr(nullptr);
if (2 == bamRead.read_no())
{
if (bamRead.isNonStrictSupplement())
{
fragment.read2Supplemental.emplace_back();
targetReadPtr = (&(fragment.read2Supplemental.back()));
}
else
{
targetReadPtr = (&(fragment.read2));
}
}
else
{
if (bamRead.isNonStrictSupplement())
{
fragment.read1Supplemental.emplace_back();
targetReadPtr = (&(fragment.read1Supplemental.back()));
}
else
{
targetReadPtr = (&(fragment.read1));
}
}
SVCandidateSetRead& targetRead(*targetReadPtr);
if (targetRead.isSet())
{
if (isExpectRepeat) return;
std::ostringstream oss;
oss << "Unexpected alignment name collision. Source: '" << dataSourceName << "'\n"
<< "\tExisting read: ";
summarizeAlignmentRecord(bamHeader, targetRead.bamrec, oss);
oss << "\n"
<< "\tNew read: ";
summarizeAlignmentRecord(bamHeader, bamRead, oss);
oss << "\n";
BOOST_THROW_EXCEPTION(GeneralException(oss.str()));
}
targetRead.bamrec = bamRead;
targetRead.isSourcedFromGraphEdgeNode1 = isSourcedFromGraphEdgeNode1;
targetRead.isSubMapped = isSubMapped;
targetRead.readIndex = (isSubMapped ? _subMappedReadIndex : _mappedReadIndex);
}