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 protected VariantAnnotation featureValueOf(Variant actual) { return actual.getAnnotation(); } };
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; }
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 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; }
@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()); }
@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()); }
private boolean potentialCodingSNVOverlap(Variant variant1, Variant variant2) { return Math.abs(variant1.getStart() - variant2.getStart()) < 3 && variant1.getChromosome().equals(variant2.getChromosome()) && variant1.getType().equals(VariantType.SNV) && variant2.getType().equals(VariantType.SNV) && samePhase(variant1, variant2); }
private Region startBreakpointToRegion(Variant variant) { if (imprecise && variant.getSv() != null) { return new Region(variant.getChromosome(), variant.getSv().getCiStartLeft() != null ? variant.getSv().getCiStartLeft() - svExtraPadding : variant.getStart(), variant.getSv().getCiStartRight() != null ? variant.getSv().getCiStartRight() + svExtraPadding : variant.getStart()); } else { return new Region(variant.getChromosome(), variant.getStart(), variant.getStart()); } }
public static VariantStats calculate(Variant variant, Map<Genotype, Integer> genotypeCount) { VariantStats variantStats = new VariantStats(); calculate(genotypeCount, variantStats, variant.getReference(), variant.getAlternate()); return variantStats; }
private Map<String, Variant> buildVariantsIdx() throws Exception { VariantHadoopDBAdaptor dbAdaptor = getVariantStorageEngine().getDBAdaptor(); Map<String, Variant> variants = new HashMap<>(); System.out.println("Build Variant map"); for (Variant variant : dbAdaptor) { if (variant.getStudies().isEmpty()) { continue; } String v = variant.toString(); assertFalse(variants.containsKey(v)); variants.put(v, variant); VariantAnnotation a = variant.getAnnotation(); variant.setAnnotation(null); System.out.println(variant.toJson()); variant.setAnnotation(a); } System.out.println("End. size : " + variants.size()); return variants; }
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(); } }
@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)); }
public void writeVariant(MongoDBVariantStageConverterTask converterTask, MongoDBVariantStageLoader loader, String variantStr) { Variant variant = new Variant(variantStr); variant.setNames(Collections.emptyList()); StudyEntry studyEntry = new StudyEntry("1", "1"); studyEntry.setFormat(Collections.emptyList()); variant.addStudyEntry(studyEntry); variantMap.put(variant.getChromosome(), variant); loader.write(converterTask.apply(Collections.singletonList(variant))); }
static boolean onSameVariant (Variant a, Variant b){ return a.onSameRegion(b) && StringUtils.equals(a.getReference(), b.getReference()) && StringUtils.equals(a.getAlternate(), b.getAlternate()); }
public Integer getLengthReference() { return VariantBuilder.getLengthReference(getReference(), getType(), getLength()); }
public Integer getLengthAlternate() { return VariantBuilder.getLengthAlternate(getAlternate(), getType(), getLength()); }