code: public static Alignment<NucleotideSequence> alignSemiLocalLeft(LinearGapAlignmentScoring scoring,
                                                                     NucleotideSequence seq1, NucleotideSequence seq2,
                                                                     int width, int stopPenalty) {
          return alignSemiLocalLeft(scoring, seq1, seq2, 0, seq1.size(), 0, seq2.size(), width, stopPenalty);
      }
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 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