bool hasAnnotatedAlternativeAllele(Variant & variant) { for (uint alt_idx = 0; alt_idx < variant.numAlts(); alt_idx++) { if (isAlleleAnnotated(variant.alt(alt_idx))) { return true; } } return false; }
bool hasMissing(Variant & variant) { assert(!(variant.allele(0).isMissing())); for (uint alt_idx = 0; alt_idx < variant.numAlts(); alt_idx++) { if (variant.alt(alt_idx).isMissing()) { return true; } } return false; }
string variantType(Variant & variant) { assert(variant.numAlts() > hasMissing(variant)); if (variant.numAlts() > (1 + static_cast<uint>(hasMissing(variant)))) { return "Multi"; } auto cur_type = alleleAttributes(variant.alt(0), variant.ref()); assert(cur_type.type != Type::Reference); assert(cur_type.type != Type::Missing); return cur_type.typeStr(); }
bool hasRepeat(Variant & variant) { for (uint alt_idx = 0; alt_idx < variant.numAlts(); alt_idx++) { auto rma_value = variant.alt(alt_idx).info().getValue<string>("RMA"); if (rma_value.second) { if (rma_value.first != ".") { return true; } } } return false; }