code: public static <S extends Sequence<S>> Alignment<S> alignLocal(AlignmentScoring<S> alignmentScoring,
                                                                    S seq1, S seq2) {
          if (alignmentScoring instanceof AffineGapAlignmentScoring)
              return alignLocalAffine((AffineGapAlignmentScoring<S>) alignmentScoring, seq1, seq2);
          if (alignmentScoring instanceof LinearGapAlignmentScoring)
              return alignLocalLinear((LinearGapAlignmentScoring<S>) alignmentScoring, seq1, seq2);
          throw new RuntimeException("Unknown scoring type.");
      }
docs: Performs local alignment
  
  @param alignmentScoring scoring system
  @param seq1             first sequence
  @param seq2             second sequence
  @return result of alignment with information about alignment positions in both sequences and array of mutations