public String getSequence() { if (negative) { return SequenceUtil.reverseComplement(seq); } else { return seq; } } public BreakendSummary getStartBreakend() {
/** Reverses and complements the bases in place. */ public static void reverseComplement(final byte[] bases) { reverseComplement(bases, 0, bases.length); }
/** Reverses and complements the bases in place. */ public static void reverseComplement(final byte[] bases) { reverseComplement(bases, 0, bases.length); }
@Test public void testReverseComplement() { Assert.assertEquals(SequenceUtil.reverseComplement("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),"ZYXWVUASRQPONMLKJIHCFEDGBT"); Assert.assertEquals(SequenceUtil.reverseComplement("abcdefghijklmnopqrstuvwxy"),"yxwvuasrqponmlkjihcfedgbt"); //missing "z" on purpose so that we test both even-lengthed and odd-lengthed strings }
/** Gets the bait sequence, with primers, as a String, RC'd as appropriate. */ private String getBaitSequence(final Bait bait, final boolean rc) { String sequence = (LEFT_PRIMER == null ? "" : LEFT_PRIMER) + StringUtil.bytesToString(bait.getBases()) + (RIGHT_PRIMER == null ? "" : RIGHT_PRIMER); if (rc) sequence = SequenceUtil.reverseComplement(sequence); return sequence; }
/** * Calculate the reverse complement of the specified sequence * (Stolen from Reseq) * * @param sequenceData * @return reverse complement */ public static String reverseComplement(final String sequenceData) { final byte[] bases = htsjdk.samtools.util.StringUtil.stringToBytes(sequenceData); reverseComplement(bases); return htsjdk.samtools.util.StringUtil.bytesToString(bases); }
/** Gets the bait sequence, with primers, as a String, RC'd as appropriate. */ private String getBaitSequence(final Bait bait, final boolean rc) { String sequence = (LEFT_PRIMER == null ? "" : LEFT_PRIMER) + StringUtil.bytesToString(bait.getBases()) + (RIGHT_PRIMER == null ? "" : RIGHT_PRIMER); if (rc) sequence = SequenceUtil.reverseComplement(sequence); return sequence; }
/** * Calculate the reverse complement of the specified sequence * (Stolen from Reseq) * * @param sequenceData * @return reverse complement */ public static String reverseComplement(final String sequenceData) { final byte[] bases = htsjdk.samtools.util.StringUtil.stringToBytes(sequenceData); reverseComplement(bases); return htsjdk.samtools.util.StringUtil.bytesToString(bases); }
/** * Calculate the reverse complement of the specified sequence * (Stolen from Reseq) * * @param sequenceData * @return reverse complement */ public static String reverseComplement(final String sequenceData) { final byte[] bases = htsjdk.samtools.util.StringUtil.stringToBytes(sequenceData); reverseComplement(bases); return htsjdk.samtools.util.StringUtil.bytesToString(bases); }
CustomAdapterPair(final String fivePrime, final String threePrime) { this.threePrime = threePrime; this.threePrimeBytes = StringUtil.stringToBytes(threePrime); this.fivePrime = fivePrime; this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime); this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime); this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder); }
private TruncatedAdapterPair(final String name, final String threePrimeReadOrder, final String fivePrimeReadOrder) { this.name = name; this.threePrime = threePrimeReadOrder; this.threePrimeBytes = StringUtil.stringToBytes(threePrimeReadOrder); this.fivePrimeReadOrder = fivePrimeReadOrder; this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder); this.fivePrime = SequenceUtil.reverseComplement(fivePrimeReadOrder); this.fivePrimeBytes = StringUtil.stringToBytes(this.fivePrime); }
private IlluminaAdapterPair(final String fivePrime, final String threePrime) { this.threePrime = threePrime; this.threePrimeBytes = StringUtil.stringToBytes(threePrime); this.fivePrime = fivePrime; this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime); this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime); this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder); }
private TruncatedAdapterPair(final String name, final String threePrimeReadOrder, final String fivePrimeReadOrder) { this.name = name; this.threePrime = threePrimeReadOrder; this.threePrimeBytes = StringUtil.stringToBytes(threePrimeReadOrder); this.fivePrimeReadOrder = fivePrimeReadOrder; this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder); this.fivePrime = SequenceUtil.reverseComplement(fivePrimeReadOrder); this.fivePrimeBytes = StringUtil.stringToBytes(this.fivePrime); }
CustomAdapterPair(final String fivePrime, final String threePrime) { this.threePrime = threePrime; this.threePrimeBytes = StringUtil.stringToBytes(threePrime); this.fivePrime = fivePrime; this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime); this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime); this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder); }
private IlluminaAdapterPair(final String fivePrime, final String threePrime) { this.threePrime = threePrime; this.threePrimeBytes = StringUtil.stringToBytes(threePrime); this.fivePrime = fivePrime; this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime); this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime); this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder); }
/** * Returns an array of bytes representing the bases in the read, * reverse complementing them if the read is on the negative strand */ private static byte[] getReadBases(final SAMRecord read) { if (!read.getReadNegativeStrandFlag()) { return read.getReadBases(); } else { final byte[] reverseComplementedBases = new byte[read.getReadBases().length]; System.arraycopy(read.getReadBases(), 0, reverseComplementedBases, 0, reverseComplementedBases.length); SequenceUtil.reverseComplement(reverseComplementedBases); return reverseComplementedBases; } }
/** * Returns an array of bytes representing the bases in the read, * reverse complementing them if the read is on the negative strand */ private static byte[] getReadBases(final SAMRecord read) { if (!read.getReadNegativeStrandFlag()) { return read.getReadBases(); } else { final byte[] reverseComplementedBases = new byte[read.getReadBases().length]; System.arraycopy(read.getReadBases(), 0, reverseComplementedBases, 0, reverseComplementedBases.length); SequenceUtil.reverseComplement(reverseComplementedBases); return reverseComplementedBases; } }
/** Method that takes in the reference sequence this bait is on and caches the bait's bases. */ public void addBases(final ReferenceSequence reference, final boolean useStrandInfo) { final byte[] tmp = new byte[length()]; System.arraycopy(reference.getBases(), getStart() - 1, tmp, 0, length()); if (useStrandInfo && isNegativeStrand()) { SequenceUtil.reverseComplement(tmp); } setBases(tmp); }
private static Allele reverseComplement(final Allele oldAllele, final Interval target, final ReferenceSequence referenceSequence, final boolean isIndel, final boolean addToStart) { if (oldAllele.isSymbolic() || oldAllele.isNoCall()) { return oldAllele; } else if (isIndel) { // target.getStart is 1-based, reference bases are 0-based final StringBuilder alleleBuilder = new StringBuilder(target.getEnd() - target.getStart() + 1); if (addToStart) { alleleBuilder.append((char) referenceSequence.getBases()[target.getStart() - 2]); } alleleBuilder.append(SequenceUtil.reverseComplement(oldAllele.getBaseString().substring(1, oldAllele.length()))); if (!addToStart) { alleleBuilder.append((char) referenceSequence.getBases()[target.getEnd() - 1]); } return Allele.create(alleleBuilder.toString(), oldAllele.isReference()); } else { return Allele.create(SequenceUtil.reverseComplement(oldAllele.getBaseString()), oldAllele.isReference()); } }
/** Method that takes in the reference sequence this bait is on and caches the bait's bases. */ public void addBases(final ReferenceSequence reference, final boolean useStrandInfo) { final byte[] tmp = new byte[length()]; System.arraycopy(reference.getBases(), getStart() - 1, tmp, 0, length()); if (useStrandInfo && isNegativeStrand()) { SequenceUtil.reverseComplement(tmp); } setBases(tmp); }