AminoAcid.py
AminoAcid.py
—
Python Source,
3 KB (3892 bytes)
File contents
"""
A module to deal with aminoacids in 3- or 1-letter code
"""
__author__ = "$Author: habeck $"
__revision__ = "$Revision: 1.1 $"
__date__ = "$Date: 2003/02/26 19:08:28 $"
def AminoAcid(input):
"""
INPUT: a string containing an amino acid in 3- or 1-letter code
(only the 20 common amino acids can be converted)
upper- or lowercase; spaces, tabs and linebreaks are neglected
OUTPUT: returns a list of strings with the 1-letter-code as element 0,
the 3-letter-code as element 1 and the name as element 2.
all returned 1- and 3-letter codes are uppercase, the name
is lowercase.
if the input is not a common amino acid, the elements 0 and 1 will be
returned empty with the input string as third element.
"""
import string
one2all ={'A': ('A', 'ALA', 'alanine'),
'R': ('R', 'ARG', 'arginine'),
'N': ('N', 'ASN', 'asparagine'),
'D': ('D', 'ASP', 'aspartic acid'),
'C': ('C', 'CYS', 'cysteine'),
'Q': ('Q', 'GLN', 'glutamine'),
'E': ('E', 'GLU', 'glutamic acid'),
'G': ('G', 'GLY', 'glycine'),
'H': ('H', 'HIS', 'histidine'),
'I': ('I', 'ILE', 'isoleucine'),
'L': ('L', 'LEU', 'leucine'),
'K': ('K', 'LYS', 'lysine'),
'M': ('M', 'MET', 'methionine'),
'F': ('F', 'PHE', 'phenylalanine'),
'P': ('P', 'PRO', 'proline'),
'S': ('S', 'SER', 'serine'),
'T': ('T', 'THR', 'threonine'),
'W': ('W', 'TRP', 'tryptophan'),
'Y': ('Y', 'TYR', 'tyrosine'),
'V': ('V', 'VAL', 'valine'),
'X': ('X', 'GLX', 'glutaminx'),
'Z': ('Z', 'GLI', 'glycine'),
'J': ('J', 'NLE', 'norleucine'),
'U': ('U', 'CYC', 'cysteinc')}
three2all = {'ALA': ('A', 'ALA', 'alanine'),
'ARG': ('R', 'ARG', 'arginine'),
'ASN': ('N', 'ASN', 'asparagine'),
'ASP': ('D', 'ASP', 'aspartic acid'),
'CYS': ('C', 'CYS', 'cysteine'),
'GLN': ('Q', 'GLN', 'glutamine'),
'GLU': ('E', 'GLU', 'glutamic acid'),
'GLY': ('G', 'GLY', 'glycine'),
'HIS': ('H', 'HIS', 'histidine'),
'ILE': ('I', 'ILE', 'isoleucine'),
'LEU': ('L', 'LEU', 'leucine'),
'LYS': ('K', 'LYS', 'lysine'),
'MET': ('M', 'MET', 'methionine'),
'PHE': ('F', 'PHE', 'phenylalanine'),
'PRO': ('P', 'PRO', 'proline'),
'SER': ('S', 'SER', 'serine'),
'THR': ('T', 'THR', 'threonine'),
'TRP': ('W', 'TRP', 'tryptophan'),
'TYR': ('Y', 'TYR', 'tyrosine'),
'VAL': ('V', 'VAL', 'Valine'),
'GLX': ('X', 'GLX', 'glutaminx'),
'GLI': ('Z', 'GLI', 'glycine'),
'NLE': ('J', 'NLE', 'norleucine'),
'CYC': ('U', 'CYC', 'cysteinc')}
cleanInput = string.strip(string.upper(input))
if len(cleanInput) == 1:
if one2all.has_key(cleanInput):
return one2all[cleanInput]
elif len(cleanInput) == 3:
if three2all.has_key(cleanInput):
return three2all[cleanInput]
## MH: patch for DNA and RNA
else:
return ['', input, input]
return ['', '', input]
#test:
if __name__ == "__main__":
import sys
try:
aminoacidin = sys.argv[1]
except IndexError:
print 'You have to give an amino acid in 1- or 3-notation as an argument.'
print 'e.g. AminoAcid.py trp'
sys.exit()
print 'converting: "' + aminoacidin + '"'
aminoacidout = AminoAcid(aminoacidin)
print aminoacidout
sys.exit()

ARIA is part of the ELIXIR infrastructure.