Exemplo n.º 1
0
// called prior to using the allele in analysis
void Allele::update(void) {
    quality = currentQuality();
    lnquality = phred2ln(quality);
    if (type == ALLELE_REFERENCE) {
        currentBase = string(1, *currentReferenceBase);
        basesLeft = bpLeft + referenceOffset();
        basesRight = bpRight - referenceOffset();
    } else {
        currentBase = base();
    }
}
Exemplo n.º 2
0
// combines the two alleles into a complex variant, updates important data
void Allele::mergeAllele(const Allele& newAllele, AlleleType newType) {
    //cerr << stringForAllele(*this) << endl << stringForAllele(newAllele) << endl;
    type = newType;
    alternateSequence += newAllele.alternateSequence;
    length += newAllele.length; // hmmm
    basesRight = newAllele.basesRight;
    baseQualities.insert(baseQualities.end(), newAllele.baseQualities.begin(), newAllele.baseQualities.end());
    currentBase = base();
    quality = averageQuality(baseQualities);
    lnquality = phred2ln(quality);
    basesRight += newAllele.referenceLength;
    if (newAllele.type != ALLELE_REFERENCE) {
        repeatRightBoundary = newAllele.repeatRightBoundary;
    }
    cigar = mergeCigar(cigar, newAllele.cigar);
    referenceLength = referenceLengthFromCigar();
}
Exemplo n.º 3
0
// quality of subsequence of allele
const long double Allele::lnsubquality(int startpos, int len) const {
    return phred2ln(subquality(startpos, len));
}
Exemplo n.º 4
0
const long double Allele::lncurrentQuality(void) const {
    return phred2ln(currentQuality());
}
Exemplo n.º 5
0
const long double Allele::lnsubquality(const Allele& a) const {
    return phred2ln(subquality(a));
}
Exemplo n.º 6
0
void Allele::setQuality(void) {
    quality = currentQuality();
    lnquality = phred2ln(quality);
}