out.write(format.format(interval.getEnd())); out.write('\t'); out.write(interval.isPositiveStrand() ? '+' : '-'); out.write('\t'); if(interval.getName() != null){
out.write(format.format(interval.getEnd())); out.write('\t'); out.write(interval.isPositiveStrand() ? '+' : '-'); out.write('\t'); if (interval.getName() != null) {
out.write(format.format(interval.getEnd())); out.write('\t'); out.write(interval.isPositiveStrand() ? '+' : '-'); out.write('\t'); if (interval.getName() != null) {
liftedInterval.isPositiveStrand()); if (!toReturn.containsKey(liftedInterval.getSequence())) { toReturn.put(liftedInterval.getSequence(), new ArrayList<GenomeRange>());
public int compare(final Interval lhs, final Interval rhs) { final int lhsIndex = this.header.getSequenceIndex(lhs.getSequence()); final int rhsIndex = this.header.getSequenceIndex(rhs.getSequence()); int retval = lhsIndex - rhsIndex; if (retval == 0) retval = lhs.getStart() - rhs.getStart(); if (retval == 0) retval = lhs.getEnd() - rhs.getEnd(); if (retval == 0) { if (lhs.isPositiveStrand() && rhs.isNegativeStrand()) retval = -1; else if (lhs.isNegativeStrand() && rhs.isPositiveStrand()) retval = 1; } if (retval == 0) { if (lhs.getName() == null) { if (rhs.getName() == null) return 0; else return -1; } else if (rhs.getName() == null) { return 1; } else { return lhs.getName().compareTo(rhs.getName()); } } return retval; } }
if (lhs.isPositiveStrand() && rhs.isNegativeStrand()) { retval = -1; } else if (lhs.isNegativeStrand() && rhs.isPositiveStrand()) { retval = 1;
if (lhs.isPositiveStrand() && rhs.isNegativeStrand()) { retval = -1; } else if (lhs.isNegativeStrand() && rhs.isPositiveStrand()) { retval = 1;
protected static VariantContextBuilder reverseComplementVariantContext(final VariantContext source, final Interval target, final ReferenceSequence refSeq) { if (target.isPositiveStrand()) { throw new IllegalArgumentException("This should only be called for negative strand liftovers"); } final List<Allele> origAlleles = new ArrayList<>(source.getAlleles()); final VariantContextBuilder vcb = new VariantContextBuilder(source); vcb.chr(target.getContig()); // By convention, indels are left aligned and include the base prior to that indel. // When reverse complementing, will be necessary to include this additional base. // This check prevents the extremely rare situation in which the indel occurs on the // first base of the sequence final boolean addToStart = source.isIndel() && target.getStart() > 1; final int start = target.getStart() - (addToStart ? 1 : 0); vcb.start(start); final int stop = target.getEnd() - (addToStart ? 1 : 0); vcb.stop(stop); vcb.alleles(reverseComplementAlleles(origAlleles, target, refSeq, source.isIndel(), addToStart)); if (!source.isSNP()) { // check that the reverse complemented bases match the new reference if (!referenceAlleleMatchesReferenceForIndel(vcb.getAlleles(), refSeq, start, stop)) { return null; } leftAlignVariant(vcb, start, stop, vcb.getAlleles(), refSeq); } vcb.genotypes(fixGenotypes(source.getGenotypes(), origAlleles, vcb.getAlleles())); return vcb; }
protected static VariantContextBuilder reverseComplementVariantContext(final VariantContext source, final Interval target, final ReferenceSequence refSeq) { if (target.isPositiveStrand()) { throw new IllegalArgumentException("This should only be called for negative strand liftovers"); } final List<Allele> origAlleles = new ArrayList<>(source.getAlleles()); final VariantContextBuilder vcb = new VariantContextBuilder(source); vcb.chr(target.getContig()); // By convention, indels are left aligned and include the base prior to that indel. // When reverse complementing, will be necessary to include this additional base. // This check prevents the extremely rare situation in which the indel occurs on the // first base of the sequence final boolean addToStart = source.isIndel() && target.getStart() > 1; final int start = target.getStart() - (addToStart ? 1 : 0); vcb.start(start); final int stop = target.getEnd() - (addToStart ? 1 : 0); vcb.stop(stop); vcb.alleles(reverseComplementAlleles(origAlleles, target, refSeq, source.isIndel(), addToStart)); if (!source.isSNP()) { // check that the reverse complemented bases match the new reference if (!referenceAlleleMatchesReferenceForIndel(vcb.getAlleles(), refSeq, start, stop)) { return null; } leftAlignVariant(vcb, start, stop, vcb.getAlleles(), refSeq); } vcb.genotypes(fixGenotypes(source.getGenotypes(), origAlleles, vcb.getAlleles())); return vcb; }