code: public static MutationNt2AADescriptor[] nt2aaDetailed(NucleotideSequence seq1, Mutations<NucleotideSequence> mutations,
                                                            TranslationParameters translationParameters,
                                                            int maxShiftedTriplets) {
          MutationsWitMapping mutationsWitMapping = nt2aaWithMapping(seq1, mutations, translationParameters, maxShiftedTriplets);
          int[] individualMutations = nt2IndividualAA(seq1, mutations, translationParameters);
          MutationNt2AADescriptor[] result = new MutationNt2AADescriptor[mutations.size()];
          for (int i = 0; i < mutations.size(); i++) {
              result[i] = new MutationNt2AADescriptor(mutations.getMutation(i), individualMutations[i],
                      mutationsWitMapping.mapping[i] == -1 ? NON_MUTATION :
                              mutationsWitMapping.mutations.getMutation(mutationsWitMapping.mapping[i]));
          }
          return result;
      }
docs: Performs a comprehensive translation of mutations present in a nucleotide sequence to effective mutations in
  corresponding amino acid sequence.
  
  <p>The resulting array contains:</p>
  
  <ul> <li>the original nucleotide mutation</li> <li>"individual" amino acid mutation, i.e. an expected amino acid
  mutation given no other mutations have occurred</li> <li>"cumulative" amino acid mutation, i.e. the observed
  amino acid mutation combining effect from all other nucleotide mutations</li> </ul>
  
  @param seq1                  the reference nucleotide sequence
  @param mutations             nucleotide mutations in the reference nucleotide sequence
  @param translationParameters translation parameters
  @param maxShiftedTriplets    max number of shifted triplets for computing the cumulative effect from indels
  @return an array of nucleotide mutations with their amino acid translations