/** prints the alignment of the two sequences */
  public String printAlignment() {

    String res = "";

    if (pointer == 0) {
      calculateAlignmentRecursive(m, n);
      alignments = transformer.retransform(alignments);
    }
    for (int i = pointer - 1; i >= 0; i--) {
      String s1 = alignments[0][i].getName();
      String s2 = alignments[1][i].getName();
      // maximum of 50 characters
      for (int k = 50 - s1.length(); k > 0; k--) {
        res += " ";
      }
      res += s1 + " - " + s2 + "\n";
    }

    res += "\nLength seq1 = " + m + "; length seq2 = " + n + "\n";
    double score = this.getScore();
    res += "alignment score: " + score + "\n\n";

    System.out.println(res);
    return res;
  }