public boolean isSymbolic() { return Allele.wouldBeSymbolicAllele(getAlternate().getBytes()); }
public static boolean hasIncompleteReference(String alternate, VariantType type) { if (alternate != null) { return Allele.wouldBeSymbolicAllele(alternate.getBytes()) && hasIncompleteReference(type); } else { return hasIncompleteReference(type); } }
protected Allele(final byte[] bases, final boolean isRef) { // null alleles are no longer allowed if ( wouldBeNullAllele(bases) ) { throw new IllegalArgumentException("Null alleles are not supported"); } // no-calls are represented as no bases if ( wouldBeNoCallAllele(bases) ) { this.bases = EMPTY_ALLELE_BASES; isNoCall = true; if ( isRef ) throw new IllegalArgumentException("Cannot tag a NoCall allele as the reference allele"); return; } if ( wouldBeSymbolicAllele(bases) ) { isSymbolic = true; if ( isRef ) throw new IllegalArgumentException("Cannot tag a symbolic allele as the reference allele"); } else { StringUtil.toUpperCase(bases); } this.isRef = isRef; this.bases = bases; if ( ! acceptableAlleleBases(bases, isRef) ) throw new IllegalArgumentException("Unexpected base in allele bases \'" + new String(bases)+"\'"); }
if (Allele.wouldBeSymbolicAllele(alternateBytes)) { if (alternate.startsWith(CNV_PREFIX_ALT)) { return VariantType.CNV;
private static int inferLengthSymbolic(VariantType type, String alternate, int start, int end) { int length; if (type.equals(VariantType.INSERTION)) { if (!Allele.wouldBeSymbolicAllele(alternate.getBytes())) { length = alternate.length(); } else { // TODO: Check attribute SVLEN? length = Variant.UNKNOWN_LENGTH; } } else if (type.equals(VariantType.BREAKEND) || type.equals(VariantType.TRANSLOCATION)) { length = Variant.UNKNOWN_LENGTH; // WARNING: breakends length set to UNKNOWN_LENGTH in any case - breakends shall // not be stored in the future translocations formed by 4 breakends must be parsed and managed // instead } else { length = end - start + 1; } return length; }
protected Allele(final byte[] bases, final boolean isRef) { // null alleles are no longer allowed if ( wouldBeNullAllele(bases) ) { throw new IllegalArgumentException("Null alleles are not supported"); } // no-calls are represented as no bases if ( wouldBeNoCallAllele(bases) ) { this.bases = EMPTY_ALLELE_BASES; isNoCall = true; if ( isRef ) throw new IllegalArgumentException("Cannot tag a NoCall allele as the reference allele"); return; } if ( wouldBeSymbolicAllele(bases) ) { isSymbolic = true; if ( isRef ) throw new IllegalArgumentException("Cannot tag a symbolic allele as the reference allele"); } else { StringUtil.toUpperCase(bases); } this.isRef = isRef; this.bases = bases; if ( ! acceptableAlleleBases(bases, isRef) ) throw new IllegalArgumentException("Unexpected base in allele bases \'" + new String(bases)+"\'"); }
public static boolean acceptableAlleleBases(byte[] bases, boolean allowNsAsAcceptable) { if ( wouldBeNullAllele(bases) ) return false; if ( wouldBeNoCallAllele(bases) || wouldBeSymbolicAllele(bases) ) return true; for (byte base : bases ) { switch (base) { case 'A': case 'C': case 'G': case 'T': case 'a': case 'c': case 'g': case 't': break; case 'N' : case 'n' : if (allowNsAsAcceptable) break; else return false; default: return false; } } return true; }
/** A generic static NO_CALL allele for use */ // no public way to create an allele protected Allele(byte[] bases, boolean isRef) { // null alleles are no longer allowed if ( wouldBeNullAllele(bases) ) { throw new IllegalArgumentException("Null alleles are not supported"); } // no-calls are represented as no bases if ( wouldBeNoCallAllele(bases) ) { this.bases = EMPTY_ALLELE_BASES; isNoCall = true; if ( isRef ) throw new IllegalArgumentException("Cannot tag a NoCall allele as the reference allele"); return; } if ( wouldBeSymbolicAllele(bases) ) { isSymbolic = true; if ( isRef ) throw new IllegalArgumentException("Cannot tag a symbolic allele as the reference allele"); } else { StringUtil.toUpperCase(bases); } this.isRef = isRef; this.bases = bases; if ( ! acceptableAlleleBases(bases) ) throw new IllegalArgumentException("Unexpected base in allele bases \'" + new String(bases)+"\'"); }
/** * * @param bases bases representing an allele * @param isReferenceAllele true if a reference allele * @return true if the bases represent the well formatted allele */ public static boolean acceptableAlleleBases(final byte[] bases, final boolean isReferenceAllele) { if ( wouldBeNullAllele(bases) ) return false; if ( wouldBeNoCallAllele(bases) || wouldBeSymbolicAllele(bases) ) return true; if ( wouldBeStarAllele(bases) ) return !isReferenceAllele; for (byte base : bases ) { switch (base) { case 'A': case 'C': case 'G': case 'T': case 'a': case 'c': case 'g': case 't': case 'N' : case 'n' : break; default: return false; } } return true; }
/** * * @param bases bases representing an allele * @param isReferenceAllele true if a reference allele * @return true if the bases represent the well formatted allele */ public static boolean acceptableAlleleBases(final byte[] bases, final boolean isReferenceAllele) { if ( wouldBeNullAllele(bases) ) return false; if ( wouldBeNoCallAllele(bases) || wouldBeSymbolicAllele(bases) ) return true; if ( wouldBeStarAllele(bases) ) return !isReferenceAllele; for (byte base : bases ) { switch (base) { case 'A': case 'C': case 'G': case 'T': case 'a': case 'c': case 'g': case 't': case 'N' : case 'n' : break; default: return false; } } return true; }
final boolean requireLeftAlignment; if (Allele.wouldBeSymbolicAllele(currentAlternate.getBytes())) { keyFields = new VariantKeyFields(position, position + referenceLen - 1, numAllelesIdx, reference, currentAlternate, false); requireLeftAlignment = false;
byte[] alternateBytes = variantContext.getAlternateAllele(0).toString().getBytes(); if (Allele.wouldBeSymbolicAllele(alternateBytes)) {