本文整理汇总了C++中BamAlignment::getMateDir方法的典型用法代码示例。如果您正苦于以下问题:C++ BamAlignment::getMateDir方法的具体用法?C++ BamAlignment::getMateDir怎么用?C++ BamAlignment::getMateDir使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BamAlignment
的用法示例。
在下文中一共展示了BamAlignment::getMateDir方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
// Can be either unique or multi-mapping reads
inline void PROBerReadModel_iCLIP::update(AlignmentGroup& ag) {
int size = ag.size();
BamAlignment *ba = NULL;
char dir;
if (size > 1) {
assert(model_type >= 2);
double frac = 1.0 / size;
for (int i = 0; i < size; ++i) {
ba = ag.getAlignment(i);
fld->update(ba->getInsertSize(), frac);
}
return;
}
assert(ag.getSEQ(seq));
if (model_type & 1) assert(ag.getQUAL(qual));
for (int i = 0; i < size; ++i) {
ba = ag.getAlignment(i);
dir = ba->getMateDir();
assert(ba->getCIGAR(cigar));
assert(ba->getMD(mdstr));
refseq.setUp(dir, cigar, mdstr, seq);
seqmodel->update(1.0, dir, 0, &refseq, &cigar, &seq, ((model_type & 1) ? &qual : NULL));
}
if (model_type >= 2) {
assert(ag.getSEQ(seq, 2));
if (model_type & 1) assert(ag.getQUAL(qual, 2));
for (int i = 0; i < size; ++i) {
ba = ag.getAlignment(i);
dir = ba->getMateDir(2);
assert(ba->getCIGAR(cigar, 2));
assert(ba->getMD(mdstr, 2));
refseq.setUp(dir, cigar, mdstr, seq);
seqmodel->update(1.0, dir, 0, &refseq, &cigar, &seq, ((model_type & 1) ? &qual : NULL));
}
}
}
示例2: calcProbs
inline void PROBerReadModel_iCLIP::calcProbs(AlignmentGroup& ag, double* conprbs) {
int size = ag.size();
BamAlignment *ba = NULL;
char dir;
assert(ag.getSEQ(seq));
if (model_type & 1) assert(ag.getQUAL(qual));
for (int i = 0; i < size; ++i) {
ba = ag.getAlignment(i);
dir = ba->getMateDir();
assert(ba->getCIGAR(cigar));
assert(ba->getMD(mdstr));
refseq.setUp(dir, cigar, mdstr, seq);
conprbs[i] = seqmodel->getProb(dir, 0, &refseq, &cigar, &seq, ((model_type & 1) ? &qual : NULL));
}
if (model_type >= 2) {
assert(ag.getSEQ(seq, 2));
if (model_type & 1) assert(ag.getQUAL(qual, 2));
for (int i = 0; i < size; ++i) {
ba = ag.getAlignment(i);
dir = ba->getMateDir(2);
assert(ba->getCIGAR(cigar, 2));
assert(ba->getMD(mdstr, 2));
refseq.setUp(dir, cigar, mdstr, seq);
conprbs[i] *= seqmodel->getProb(dir, 0, &refseq, &cigar, &seq, ((model_type & 1) ? &qual : NULL));
conprbs[i] *= fld->getProb(ba->getInsertSize()); // fragment length distribution
}
}
double sum = 0.0;
for (int i = 0; i < size; ++i) sum += conprbs[i];
//assert(sum > 0.0);
if (sum <= 0.0) sum = 1.0;
for (int i = 0; i < size; ++i) conprbs[i] /= sum;
}