IMP logo
IMP Reference Guide  2.20.1
The Integrative Modeling Platform
alphabets.py
1 """@namespace IMP.pmi.alphabets
2  Mapping between FASTA one-letter codes and residue types.
3 """
4 
5 from __future__ import print_function
6 import IMP.atom
7 
8 
9 class ResidueAlphabet(object):
10  """Map between FASTA codes and residue types.
11  Typically one would use the `amino_acid`, `rna`, or `dna` objects."""
12  def __init__(self, charmm_to_one, chain_type=IMP.atom.UnknownChainType):
13  self._one_to_charmm = {}
14  for k, v in charmm_to_one.items():
15  self._one_to_charmm[v] = k
16  self.charmm_to_one = charmm_to_one
17  self._chain_type = chain_type
18 
20  """Given a one-letter code, return an IMP.atom.ResidueType"""
21  return IMP.atom.ResidueType(self._one_to_charmm[code])
22 
24  """Given a residue type, return a one-letter code"""
25  # Technically this is the CHARMM type, not PDB (but they are the
26  # same for amino acids)
27  return self.charmm_to_one.get(rt, 'X')
28 
29  def get_chain_type(self):
30  """Get the IMP.atom.ChainType for this alphabet"""
31  return self._chain_type
32 
33 
34 """Mapping between FASTA one-letter codes and residue types for amino acids"""
35 amino_acid = ResidueAlphabet(
36  {'ALA': 'A', 'ARG': 'R', 'ASN': 'N', 'ASP': 'D',
37  'CYS': 'C', 'GLU': 'E', 'GLN': 'Q', 'GLY': 'G',
38  'HIS': 'H', 'ILE': 'I', 'LEU': 'L', 'LYS': 'K',
39  'MET': 'M', 'PHE': 'F', 'PRO': 'P', 'SER': 'S',
40  'THR': 'T', 'TRP': 'W', 'TYR': 'Y', 'VAL': 'V',
41  'UNK': 'X'}, IMP.atom.Protein)
42 
43 
44 """Mapping between FASTA one-letter codes and residue types for DNA"""
45 dna = ResidueAlphabet(
46  {'DADE': 'A', 'DURA': 'U', 'DCYT': 'C', 'DGUA': 'G',
47  'DTHY': 'T', 'UNK': 'X'}, IMP.atom.DNA)
48 
49 
50 """Mapping between FASTA one-letter codes and residue types for RNA"""
51 rna = ResidueAlphabet(
52  {'ADE': 'A', 'URA': 'U', 'CYT': 'C', 'GUA': 'G',
53  'THY': 'T', 'UNK': 'X'}, IMP.atom.RNA)
def get_one_letter_code_from_residue_type
Given a residue type, return a one-letter code.
Definition: alphabets.py:23
Map between FASTA codes and residue types.
Definition: alphabets.py:9
def get_residue_type_from_one_letter_code
Given a one-letter code, return an IMP.atom.ResidueType.
Definition: alphabets.py:19
The type for a residue.
Functionality for loading, creating, manipulating and scoring atomic structures.
def get_chain_type
Get the IMP.atom.ChainType for this alphabet.
Definition: alphabets.py:29