Source code for crops.libs
"""Libraries and functions related to them."""
from crops import __prog__, __description__, __author__
from crops import __date__, __version__, __copyright__
from crops.libs import rescodes as rc
import logging
[docs]def ressymbol(name, pick=None):
"""Convert residue name from 3-letter formt to 1-letter format.
:param name: Residue symbol (3-letter convention) or Nucleotide symbol (1,2-letter convention).
:type name: str
:param pick: If three-letter code yields multiple results, pick this one (if among results), otherwise the most standard is returned, defaults to None.
:type pick: str, optional
:return: Residue/Nucleotide symbol (1-letter convention).
:rtype: str
"""
if len(name) > 3:
logging.warning('Chemical ' + name + ' not a residue. '
'Assigning 1 to it (ligand).')
oneletter = 1
return
wholelist = {**rc.reslist, **rc.mod_reslist, **rc.multiple_reslist,
**rc.nuclist, **rc.mod_nuclist, **rc.multiple_nuclist}
try:
oneletter = wholelist[name]
if isinstance(oneletter, list) is True:
if pick is not None:
oneletter = pick if pick in oneletter else oneletter[0]
else:
oneletter = oneletter[0]
except Exception:
logging.warning('Residue ' + name + ' not found in library. '
'Assigning 0 to it (unknown).')
oneletter = 0
return oneletter