// Entry point for variant classification bool AlleleIdentity::getVariantType( const string _altAllele, const LocalReferenceContext &reference_context, const TIonMotifSet & ErrorMotifs, const ClassifyFilters &filter_variant, const ReferenceReader &ref_reader, int chr_idx) { altAllele = _altAllele; bool is_ok = reference_context.context_detected; if ((reference_context.position0 + (long)altAllele.length()) > ref_reader.chr_size(chr_idx)) { is_ok = false; } // We should now be guaranteed a valid variant position in here if (is_ok) { is_ok = CharacterizeVariantStatus(reference_context, ref_reader, chr_idx); PredictSequenceMotifSSE(reference_context, ErrorMotifs, ref_reader, chr_idx); } is_ok = is_ok and CheckValidAltAllele(reference_context); if (!is_ok) { status.isProblematicAllele = true; filterReasons.push_back("BADCANDIDATE"); } return(is_ok); }
// Entry point for variant classification bool AlleleIdentity::getVariantType( string _altAllele, LocalReferenceContext &reference_context, const string & local_contig_sequence, TIonMotifSet & ErrorMotifs, ClassifyFilters &filter_variant) { altAllele = _altAllele; bool is_ok = reference_context.context_detected; // We should now be guaranteed a valid variant position in here if (is_ok) { is_ok = CharacterizeVariantStatus(reference_context, filter_variant.min_hp_for_overcall); PredictSequenceMotifSSE(reference_context, local_contig_sequence, ErrorMotifs); // Just confusing -> refactor away ModifyStartPosForAllele(reference_context.position0 + 1); } is_ok = is_ok and CheckValidAltAllele(reference_context); if (!is_ok) { status.isNoCallVariant = true; filterReason += ",NOCALLxBADCANDIDATE"; } return(is_ok); }