code: public static int[] decode(String mutations, Alphabet alphabet) {
          Matcher matcher = getMutationPatternForAlphabet(alphabet).matcher(mutations);
          IntArrayList list = new IntArrayList();
          while (matcher.find()) {
              switch (matcher.group(0).charAt(0)) {
                  //TODO codeFromSymbolWithError ?
                  case 'S':
                      list.add(createSubstitution(Integer.parseInt(matcher.group(2)),
                              alphabet.symbolToCode(matcher.group(1).charAt(0)),
                              alphabet.symbolToCode(matcher.group(3).charAt(0))));
                      break;
                  case 'D':
                      list.add(createDeletion(Integer.parseInt(matcher.group(5)),
                              alphabet.symbolToCode(matcher.group(4).charAt(0))));
                      break;
                  case 'I':
                      list.add(createInsertion(Integer.parseInt(matcher.group(6)),
                              alphabet.symbolToCode(matcher.group(7).charAt(0))));
                      break;
              }
          }
          return list.toArray();
      }
docs: Decodes mutations encoded using format described in {@link com.milaboratory.core.mutations.Mutation#encode(int,
  com.milaboratory.core.sequence.Alphabet)}.