code: public static Pair<Integer, Integer> adjustedVariantStart(Variant variant, StudyEntry study, Map<Integer, Character> referenceAlleles) {
          if (variant.getType().equals(VariantType.NO_VARIATION)) {
              return new ImmutablePair<>(variant.getStart(), variant.getEnd());
          }
          MutablePair<Integer, Integer> pos = adjustedVariantStart(variant.getStart(), variant.getEnd(), variant.getReference(), variant.getAlternate(), referenceAlleles, null);
  
          for (AlternateCoordinate alternateCoordinate : study.getSecondaryAlternates()) {
              int alternateStart = alternateCoordinate.getStart() == null ? variant.getStart() : alternateCoordinate.getStart().intValue();
              int alternateEnd = alternateCoordinate.getEnd() == null ? variant.getEnd() : alternateCoordinate.getEnd().intValue();
  
              String reference = alternateCoordinate.getReference() == null ? variant.getReference() : alternateCoordinate.getReference();
              String alternate = alternateCoordinate.getAlternate() == null ? variant.getAlternate() : alternateCoordinate.getAlternate();
  
              adjustedVariantStart(alternateStart, alternateEnd, reference, alternate, referenceAlleles, pos);
          }
          return pos;
      }
docs: Adjust start/end if a reference base is required due to an empty allele. All variants are checked due to SecAlts.
  @param variant {@link Variant} object.
  @param study Study
  @return Pair<Integer, Integer> The adjusted (or same) start/end position e.g. SV and MNV as SecAlt, INDEL, etc.