public static boolean isRegionAfterVariantStart(int start, int end, Variant variant) { int pos = Math.min(start, end); int variantPos = Math.min(variant.getStart(), variant.getEnd()); return pos > variantPos; }
public static boolean overlapsWith(Variant variant, String chromosome, int start, int end) { // return variant.overlapWith(chromosome, start, end, true); if (!StringUtils.equals(variant.getChromosome(), chromosome)) { return false; // Different Chromosome } else { return variant.getStart() <= end && variant.getEnd() >= start // Insertions in the same position won't match previous statement. || variant.getStart() == start && variant.getEnd() == end; } }
private static boolean isInsertionCovered(Variant insertion, Variant notInsertion) { if (!isInsertion(insertion)) { throw new IllegalStateException("Variable insertion is not an Insertion:" + insertion); } if (isInsertion(notInsertion)) { throw new IllegalStateException("Variable notInsertion is an Insertion:" + notInsertion); } Integer start = notInsertion.getStart(); Integer end = notInsertion.getEnd(); return start <= insertion.getStart() && insertion.getStart() <= end && start <= insertion.getEnd() && insertion.getEnd() <= end; }
private Integer getEnd(Variant variant) { // if (variant.getType().equals(VariantType.SYMBOLIC) || variant.getType().equals(VariantType.NO_VARIATION)) { // return variant.getEnd(); // } else { // return variant.getStart() + Math.max(variant.getReference().length() - 1, -1 /* 0 */); // } if (EnumSet.of(VariantType.SYMBOLIC, VariantType.CNV).contains(variant.getType())) { return variant.getStart(); } else { return variant.getEnd(); } }
@Deprecated public static int[] getImpreciseEnd(Variant variant) { if (variant.getStudies()!= null && !variant.getStudies().isEmpty() && !variant.getStudies().get(0).getFiles().isEmpty() && variant.getStudies().get(0).getFiles().get(0).getAttributes().containsKey(CIEND_INFO)) { String[] parts = variant.getStudies().get(0).getFiles().get(0).getAttributes().get(CIEND_INFO).split(",", 2); return new int[]{variant.getEnd() + Integer.parseInt(parts[0]), variant.getEnd() + Integer.parseInt(parts[1])}; } else { return new int[]{variant.getEnd(), variant.getEnd()}; } }
@Override public int hashCode() { return Objects.hash(variant.getStart(), variant.getEnd(), variant.getReference(), variant.getAlternate(), variant.getType()); // return variant != null ? variant.toString().hashCode() : 0; }
public static boolean isSameVariant(Variant a, AlternateCoordinate b){ return StringUtils.equals(a.getChromosome(), b.getChromosome()) && a.getStart().equals(b.getStart()) && a.getEnd().equals(b.getEnd()) && StringUtils.equals(a.getReference(), b.getReference()) && StringUtils.equals(a.getAlternate(), b.getAlternate()); }
public VariantStatsWrapper(Variant variant, Map<String, VariantStats> cohortStats) { this.chromosome = variant.getChromosome(); this.start = variant.getStart(); this.end = variant.getEnd(); this.reference = variant.getReference(); this.alternate = variant.getAlternate(); this.sv = variant.getSv(); this.cohortStats = cohortStats; }
@Override public Document convertToStorageType(Variant variant) { return new Document(ID_FIELD, idConverter.buildId(variant)) .append(REF_FIELD, variant.getReference()) // Add left and right SvInsSeq to the alternate .append(ALT_FIELD, idConverter.buildSVAlternate(variant.getAlternate(), variant.getSv())) .append(END_FIELD, variant.getEnd()); }
public static Variant asVariant(Variant v) { Variant variant = new Variant(v.getChromosome(), v.getStart(), v.getEnd(), v.getReference(), v.getAlternate(), v.getStrand()); variant.setType(v.getType()); return variant; }
@Test public void resolveSameVariantWithSecAlt() throws Exception { Variant a = getVariant("2:10048155:TCTTTTTTTT:AC", "PASS", "220", "1/2"); Variant b = getVariant("2:10048155:TCTTTTTTTT:-", "PASS", "220", "2/1"); a.getStudies().get(0).getSecondaryAlternates().add(new AlternateCoordinate("2", b.getStart(), b.getEnd(), b.getReference(), b.getAlternate(), INDEL)); a.getStudies().get(0).getFiles().get(0).setCall("10048155:TTCTTTTTTTT:TAC,T:0"); b.getStudies().get(0).getSecondaryAlternates().add(new AlternateCoordinate("2", a.getStart(), a.getEnd(), a.getReference(), a.getAlternate(), INDEL)); b.getStudies().get(0).getFiles().get(0).setCall("10048155:TTCTTTTTTTT:TAC,T:1"); Collection<Variant> resolved = new VariantLocalConflictResolver().resolveConflicts(Arrays.asList(a, b)); assertEquals(1, resolved.size()); }
protected static VariantAnnotation newVariantAnnotation(Variant variant) { VariantAnnotation va; va = new VariantAnnotation(); va.setChromosome(variant.getChromosome()); va.setReference(variant.getReference()); va.setAlternate(variant.getAlternate()); va.setStart(variant.getStart()); va.setEnd(variant.getEnd()); return va; }
@Test public void testOverlapsWith() { assertTrue(FillGapsTask.overlapsWith(new Variant("1:100:T:-"), "1", 100, 100)); Variant variant = new Variant("1:100:-:T"); assertTrue(FillGapsTask.overlapsWith(variant, "1", variant.getStart(), variant.getEnd())); variant = new Variant("1:100:-:TTTTT"); assertFalse(FillGapsTask.overlapsWith(variant, "1", 102, 102)); }
private Variant createVariantSecAlt(String varString, String secAlt) { Variant secAltVar = new Variant(secAlt); Variant variant = new Variant(varString); StudyEntry se = new StudyEntry("1"); AlternateCoordinate ac = new AlternateCoordinate( secAltVar.getChromosome(), secAltVar.getStart(), secAltVar.getEnd(), secAltVar.getReference(), secAltVar.getAlternate(), secAltVar.getType()); se.setSecondaryAlternates(Collections.singletonList(ac)); variant.setStudies(Collections.singletonList(se)); return variant; }
private Variant convert(org.opencb.biodata.models.variant.Variant var) { Variant build = Variant.newBuilder() .setChromosome(var.getChromosome()) .setStart(var.getStart()) .setEnd(var.getEnd()) .setLength(var.getLength()) .setReference(var.getReference()) .setAlternate(var.getAlternate()) .addAllIds(var.getIds()) .build(); return build; }
private static AlternateCoordinate copyAlt(Variant var, AlternateCoordinate orig) { AlternateCoordinate copy = new AlternateCoordinate(); copy.setChromosome(orig.getChromosome() == null ? var.getChromosome() : orig.getChromosome()); copy.setStart(orig.getStart() == null ? var.getStart() : orig.getStart()); copy.setEnd(orig.getEnd() == null ? var.getEnd() : orig.getEnd()); copy.setReference(orig.getReference() == null ? var.getReference() : orig.getReference()); copy.setAlternate(orig.getAlternate() == null ? var.getAlternate() : orig.getAlternate()); copy.setType(orig.getType() == null ? var.getType() : orig.getType()); return copy; }