Beispiel #1
0
string Allele::tojson(void) {
    stringstream out;
    if (!genotypeAllele) {
        out << "{\"id\":\"" << readID << "\""
            << ",\"type\":\"" << typeStr() << "\""
            << ",\"length\":" << ((type == ALLELE_REFERENCE) ? 1 : length)
            << ",\"position\":" << position 
            << ",\"strand\":\"" << (strand == STRAND_FORWARD ? "+" : "-") << "\"";
        if (type == ALLELE_REFERENCE ) {
            out << ",\"base\":\"" << alternateSequence.at(referenceOffset()) << "\""
                //<< ",\"reference\":\"" << allele.referenceSequence.at(referenceOffset) << "\""
                << ",\"quality\":" << currentQuality();
        } else {
            out << ",\"base\":\"" << alternateSequence << "\""
                //<< ",\"reference\":\"" << allele.referenceSequence << "\""
                << ",\"quality\":" << quality;
        }
        out << "}";

    } else {
        out << "{\"type\":\"" << typeStr() << "\"";
        switch (type) {
            case ALLELE_REFERENCE:
                out << "}";
                break;
            default:
                out << "\",\"length\":" << length 
                    << ",\"alt\":\"" << alternateSequence << "\"}";
                break;
        }
    }
    return out.str();
}
Beispiel #2
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();
    }
}
Beispiel #3
0
const long double Allele::lncurrentQuality(void) const {
    return phred2ln(currentQuality());
}
Beispiel #4
0
void Allele::setQuality(void) {
    quality = currentQuality();
    lnquality = phred2ln(quality);
}