本文整理汇总了C++中bam_record::isNonStrictSupplement方法的典型用法代码示例。如果您正苦于以下问题:C++ bam_record::isNonStrictSupplement方法的具体用法?C++ bam_record::isNonStrictSupplement怎么用?C++ bam_record::isNonStrictSupplement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bam_record
的用法示例。
在下文中一共展示了bam_record::isNonStrictSupplement方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: minSize
bool
isMateInsertionEvidenceCandidate(
const bam_record& bamRead,
const unsigned minMapq)
{
if (! bamRead.is_paired()) return false;
if (bamRead.isNonStrictSupplement()) return false;
if (bamRead.is_unmapped() || bamRead.is_mate_unmapped()) return false;
if (bamRead.map_qual() < minMapq) return false;
if (bamRead.target_id() < 0) return false;
if (bamRead.mate_target_id() < 0) return false;
if (bamRead.target_id() != bamRead.mate_target_id()) return true;
/// TODO: better candidate definition based on fragment size distro:
static const int minSize(10000);
return (std::abs(bamRead.pos()-bamRead.mate_pos()) >= minSize);
}
示例2: logtag
static
bool
isGoodShadow(
const bam_record& bamRead,
const std::string& lastQname)
{
#ifdef DEBUG_IS_SHADOW
static const std::string logtag("isGoodShadow");
#endif
if (! bamRead.is_paired()) return false;
if (bamRead.isNonStrictSupplement()) return false;
// sanity check that this is a shadow read:
if (!bamRead.is_unmapped()) return false;
if (bamRead.is_mate_unmapped()) return false;
static const unsigned minAvgQualShadow = 25;
if (get_avg_quality(bamRead) < minAvgQualShadow)
{
return false;
}
if (strcmp(bamRead.qname(),lastQname.c_str()) != 0)
{
// something went wrong here, shadows should have their singleton partner
// preceding them in the BAM file.
#ifdef DEBUG_IS_SHADOW
log_os << logtag << " ERROR: Shadow without matching singleton : " << bamRead.qname() << " vs " << lastQname << std::endl;
#endif
return false;
}
#ifdef DEBUG_IS_SHADOW
log_os << logtag << " Found shadow!\n";
<< logtag << " this mapq = " << ((unsigned int)bamRead.map_qual()) << std::endl;
示例3: isRemote
/// get SV candidates from anomalous read pairs
static
void
getSVCandidatesFromPair(
const ReadScannerOptions& opt,
const ReadScannerDerivOptions& dopt,
const SVLocusScanner::CachedReadGroupStats& rstats,
const bam_record& localRead,
const SimpleAlignment& localAlign,
const bam_record* remoteReadPtr,
std::vector<SVObservation>& candidates)
{
if (! localRead.is_paired()) return;
// don't count paired end evidence from SA-split reads twice:
if (localRead.isNonStrictSupplement()) return;
if (localRead.is_unmapped() || localRead.is_mate_unmapped()) return;
// special case typically used for RNA-Seq analysis:
if (opt.isIgnoreAnomProperPair && localRead.is_proper_pair()) return;
// abstract remote alignment to SimpleAlignment object:
const bool isRemote(nullptr != remoteReadPtr);
const SimpleAlignment remoteAlign(isRemote ? getAlignment(*remoteReadPtr) : getFakeMateAlignment(localRead));
AlignmentPairAnalyzer pairInspector(opt, dopt, rstats);
pairInspector.reset(localAlign, remoteAlign, isRemote, localRead.is_first());
if (! pairInspector.computeLargeEventRegionScale()) return;
candidates.emplace_back();
pairInspector.getSVObservation(candidates.back());
#ifdef DEBUG_SCANNER
log_os << __FUNCTION__ << " evaluating pair sv for inclusion: " << candidates.back() << "\n";
#endif
}
示例4: 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);
}