code: public static Alignment<NucleotideSequence> alignSemiLocalLeft(LinearGapAlignmentScoring scoring, NucleotideSequence seq1, NucleotideSequence seq2,
                                                                     int offset1, int length1, int offset2, int length2,
                                                                     int width, int stopPenalty) {
          try {
              int minLength = Math.min(length1, length2) + width + 1;
              length1 = Math.min(length1, minLength);
              length2 = Math.min(length2, minLength);
              MutationsBuilder<NucleotideSequence> mutations = new MutationsBuilder<>(NucleotideSequence.ALPHABET);
              BandedSemiLocalResult result = alignSemiLocalLeft0(scoring, seq1, seq2,
                      offset1, length1, offset2, length2, width, stopPenalty, mutations, AlignmentCache.get());
              return new Alignment<>(seq1, mutations.createAndDestroy(),
                      new Range(offset1, result.sequence1Stop + 1), new Range(offset2, result.sequence2Stop + 1),
                      result.score);
          } finally {
              AlignmentCache.release();
          }
      }
docs: Alignment which identifies what is the highly similar part of the both sequences.
  <p/>
  <p>Alignment is done in the way that beginning of second sequences is aligned to beginning of first
  sequence.</p>
  <p/>
  <p>Alignment terminates when score in banded alignment matrix reaches {@code stopPenalty} value.</p>
  <p/>
  <p>In other words, only left part of second sequence is to be aligned</p>
  
  @param scoring     scoring system
  @param seq1        first sequence
  @param seq2        second sequence
  @param offset1     offset in first sequence
  @param length1     length of first sequence's part to be aligned
  @param offset2     offset in second sequence
  @param length2     length of second sequence's part to be aligned@param width
  @param stopPenalty alignment score value in banded alignment matrix at which alignment terminates
  @return object which contains positions at which alignment terminated and array of mutations