This function takes a list of ChainMutation objects and uses the PDB to Rosetta mapping to return the corresponding
           list of SimpleMutation objects using Rosetta numbering.
           e.g.
              p = PDB(...)
              p.construct_pdb_to_rosetta_residue_map()
              rosetta_mutations = p.map_pdb_residues_to_rosetta_residues(pdb_mutations)

def map_pdb_residues_to_rosetta_residues(self, mutations):
        '''This function takes a list of ChainMutation objects and uses the PDB to Rosetta mapping to return the corresponding
           list of SimpleMutation objects using Rosetta numbering.
           e.g.
              p = PDB(...)
              p.construct_pdb_to_rosetta_residue_map()
              rosetta_mutations = p.map_pdb_residues_to_rosetta_residues(pdb_mutations)
        '''
        if not self.rosetta_to_atom_sequence_maps and self.rosetta_sequences:
            raise Exception('The PDB to Rosetta mapping has not been determined. Please call construct_pdb_to_rosetta_residue_map first.')

        rosetta_mutations = []
        atom_sequence_to_rosetta_mapping = self.get_atom_sequence_to_rosetta_map()
        for m in mutations:
            rosetta_residue_id = atom_sequence_to_rosetta_mapping[m.Chain].get('%s%s' % (m.Chain, m.ResidueID))
            rosetta_mutations.append(SimpleMutation(m.WildTypeAA, rosetta_residue_id, m.MutantAA))
        return rosetta_mutations