aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Bernard <bernardj@gmail.com>2010-09-23 14:15:18 -0400
committerJon Bernard <bernardj@gmail.com>2010-09-23 14:15:18 -0400
commit137f831d4a44bb0eb074ec7900b2db349c09613f (patch)
tree0a835ccd3a4518d2e76bd2d69149293158c86b08
parent5624b973b4ae39cf4985cc60055c695ee38d8150 (diff)
downloadpepseq-137f831d4a44bb0eb074ec7900b2db349c09613f.zip
Add class and tests for amino acids
-rw-r--r--pepseq/__init__.py8
-rw-r--r--pepseq/amino_acid.py38
-rw-r--r--pepseq/core.py3
-rw-r--r--pepseq/fragment.py6
-rw-r--r--pepseq/peptide.py6
-rw-r--r--pepseq/test_amino_acid.py155
-rw-r--r--pepseq/test_fragment.py14
-rw-r--r--pepseq/test_peptide.py11
-rw-r--r--setup.py4
9 files changed, 239 insertions, 6 deletions
diff --git a/pepseq/__init__.py b/pepseq/__init__.py
index 282b47b..b6d92ae 100644
--- a/pepseq/__init__.py
+++ b/pepseq/__init__.py
@@ -1,3 +1,9 @@
# -*- coding: utf-8 -*-
-__all__ = ['core']
+__version__ = '0.0.0'
+
+from amino_acid import *
+from peptide import *
+from fragment import *
+
+__all__ = ['amino_acid', 'peptide', 'fragment']
diff --git a/pepseq/amino_acid.py b/pepseq/amino_acid.py
new file mode 100644
index 0000000..b0badb6
--- /dev/null
+++ b/pepseq/amino_acid.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+
+class AminoAcid(object):
+
+ """ Amino acids are molecules containing an amine group, a carboxylic acid
+ group and a side chain that varies between different amino acids. """
+
+ aminoAcids = {'G': ('Glycine', 'Gly', 57.05),
+ 'A': ('Alanine', 'Ala', 71.09),
+ 'S': ('Serine', 'Ser', 87.08),
+ 'T': ('Threonine', 'Thr', 101.11),
+ 'C': ('Cysteine', 'Cys', 103.15),
+ 'V': ('Valine', 'Val', 99.14),
+ 'L': ('Leucine', 'Leu', 113.16),
+ 'I': ('Isoleucine', 'Ile', 113.16),
+ 'M': ('Methionine', 'Met', 131.19),
+ 'P': ('Proline', 'Pro', 97.12),
+ 'F': ('Phenylalanine', 'Phe', 147.18),
+ 'Y': ('Tyrosine', 'Tyr', 163.18),
+ 'W': ('Tryptophan', 'Trp', 186.21),
+ 'D': ('Aspartic Acid', 'Asp', 115.09),
+ 'E': ('Glutamic Acid', 'Glu', 129.12),
+ 'N': ('Asparagine', 'Asn', 114.11),
+ 'Q': ('Glutamine', 'Gln', 128.14),
+ 'H': ('Histidine', 'His', 137.14),
+ 'K': ('Lysine', 'Lys', 128.17),
+ 'R': ('Arginine', 'Arg', 156.19)}
+
+ def __init__(self, letter):
+ self.letter = letter.upper()
+ self.name = AminoAcid.aminoAcids[self.letter][0]
+ self.triple = AminoAcid.aminoAcids[self.letter][1]
+ self.weight = AminoAcid.aminoAcids[self.letter][2]
+
+ def __str__(self):
+ return "%s (%s, %s) MW: %.2f" % (
+ self.name, self.triple, self.letter, self.weight)
diff --git a/pepseq/core.py b/pepseq/core.py
deleted file mode 100644
index 7ef538f..0000000
--- a/pepseq/core.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# -*- coding: utf-8 -*-
-
-__version__ = '0.0.0'
diff --git a/pepseq/fragment.py b/pepseq/fragment.py
new file mode 100644
index 0000000..02e676b
--- /dev/null
+++ b/pepseq/fragment.py
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+
+
+class Fragment(object):
+ """ A sequence of peptides. """
+ pass
diff --git a/pepseq/peptide.py b/pepseq/peptide.py
new file mode 100644
index 0000000..4bde63d
--- /dev/null
+++ b/pepseq/peptide.py
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+
+
+class Peptide(object):
+ """ Peptides are short polymers of amino acids linked by peptide bonds. """
+ pass
diff --git a/pepseq/test_amino_acid.py b/pepseq/test_amino_acid.py
new file mode 100644
index 0000000..77f5722
--- /dev/null
+++ b/pepseq/test_amino_acid.py
@@ -0,0 +1,155 @@
+# -*- coding: utf-8 -*-
+
+from amino_acid import AminoAcid
+import unittest
+
+
+class AminoAcidTestCase(unittest.TestCase):
+
+ def test_glycine(self):
+ amino_acid = AminoAcid('g')
+ self.assertEqual(amino_acid.name, "Glycine")
+ self.assertEqual(amino_acid.triple, "Gly")
+ self.assertEqual(amino_acid.letter, "G")
+ self.assertEqual(amino_acid.weight, 57.05)
+
+ def test_alanine(self):
+ amino_acid = AminoAcid('a')
+ self.assertEqual(amino_acid.name, "Alanine")
+ self.assertEqual(amino_acid.triple, "Ala")
+ self.assertEqual(amino_acid.letter, "A")
+ self.assertEqual(amino_acid.weight, 71.09)
+
+ def test_serine(self):
+ amino_acid = AminoAcid('s')
+ self.assertEqual(amino_acid.name, "Serine")
+ self.assertEqual(amino_acid.triple, "Ser")
+ self.assertEqual(amino_acid.letter, "S")
+ self.assertEqual(amino_acid.weight, 87.08)
+
+ def test_threonine(self):
+ amino_acid = AminoAcid('t')
+ self.assertEqual(amino_acid.name, "Threonine")
+ self.assertEqual(amino_acid.triple, "Thr")
+ self.assertEqual(amino_acid.letter, "T")
+ self.assertEqual(amino_acid.weight, 101.11)
+
+ def test_cysteine(self):
+ amino_acid = AminoAcid('c')
+ self.assertEqual(amino_acid.name, "Cysteine")
+ self.assertEqual(amino_acid.triple, "Cys")
+ self.assertEqual(amino_acid.letter, "C")
+ self.assertEqual(amino_acid.weight, 103.15)
+
+ def test_valine(self):
+ amino_acid = AminoAcid('v')
+ self.assertEqual(amino_acid.name, "Valine")
+ self.assertEqual(amino_acid.triple, "Val")
+ self.assertEqual(amino_acid.letter, "V")
+ self.assertEqual(amino_acid.weight, 99.14)
+
+ def test_leucine(self):
+ amino_acid = AminoAcid('l')
+ self.assertEqual(amino_acid.name, "Leucine")
+ self.assertEqual(amino_acid.triple, "Leu")
+ self.assertEqual(amino_acid.letter, "L")
+ self.assertEqual(amino_acid.weight, 113.16)
+
+ def test_isoleucine(self):
+ amino_acid = AminoAcid('i')
+ self.assertEqual(amino_acid.name, "Isoleucine")
+ self.assertEqual(amino_acid.triple, "Ile")
+ self.assertEqual(amino_acid.letter, "I")
+ self.assertEqual(amino_acid.weight, 113.16)
+
+ def test_methionine(self):
+ amino_acid = AminoAcid('m')
+ self.assertEqual(amino_acid.name, "Methionine")
+ self.assertEqual(amino_acid.triple, "Met")
+ self.assertEqual(amino_acid.letter, "M")
+ self.assertEqual(amino_acid.weight, 131.19)
+
+ def test_proline(self):
+ amino_acid = AminoAcid('p')
+ self.assertEqual(amino_acid.name, "Proline")
+ self.assertEqual(amino_acid.triple, "Pro")
+ self.assertEqual(amino_acid.letter, "P")
+ self.assertEqual(amino_acid.weight, 97.12)
+
+ def test_phenylalanine(self):
+ amino_acid = AminoAcid('f')
+ self.assertEqual(amino_acid.name, "Phenylalanine")
+ self.assertEqual(amino_acid.triple, "Phe")
+ self.assertEqual(amino_acid.letter, "F")
+ self.assertEqual(amino_acid.weight, 147.18)
+
+ def test_tyrosine(self):
+ amino_acid = AminoAcid('y')
+ self.assertEqual(amino_acid.name, "Tyrosine")
+ self.assertEqual(amino_acid.triple, "Tyr")
+ self.assertEqual(amino_acid.letter, "Y")
+ self.assertEqual(amino_acid.weight, 163.18)
+
+ def test_tryptophan(self):
+ amino_acid = AminoAcid('w')
+ self.assertEqual(amino_acid.name, "Tryptophan")
+ self.assertEqual(amino_acid.triple, "Trp")
+ self.assertEqual(amino_acid.letter, "W")
+ self.assertEqual(amino_acid.weight, 186.21)
+
+ def test_aspartic_acid(self):
+ amino_acid = AminoAcid('d')
+ self.assertEqual(amino_acid.name, "Aspartic Acid")
+ self.assertEqual(amino_acid.triple, "Asp")
+ self.assertEqual(amino_acid.letter, "D")
+ self.assertEqual(amino_acid.weight, 115.09)
+
+ def test_glutamic_acid(self):
+ amino_acid = AminoAcid('e')
+ self.assertEqual(amino_acid.name, "Glutamic Acid")
+ self.assertEqual(amino_acid.triple, "Glu")
+ self.assertEqual(amino_acid.letter, "E")
+ self.assertEqual(amino_acid.weight, 129.12)
+
+ def test_asparagine(self):
+ amino_acid = AminoAcid('n')
+ self.assertEqual(amino_acid.name, "Asparagine")
+ self.assertEqual(amino_acid.triple, "Asn")
+ self.assertEqual(amino_acid.letter, "N")
+ self.assertEqual(amino_acid.weight, 114.11)
+
+ def test_glutamine(self):
+ amino_acid = AminoAcid('q')
+ self.assertEqual(amino_acid.name, "Glutamine")
+ self.assertEqual(amino_acid.triple, "Gln")
+ self.assertEqual(amino_acid.letter, "Q")
+ self.assertEqual(amino_acid.weight, 128.14)
+
+ def test_histidine(self):
+ amino_acid = AminoAcid('h')
+ self.assertEqual(amino_acid.name, "Histidine")
+ self.assertEqual(amino_acid.triple, "His")
+ self.assertEqual(amino_acid.letter, "H")
+ self.assertEqual(amino_acid.weight, 137.14)
+
+ def test_lysine(self):
+ amino_acid = AminoAcid('k')
+ self.assertEqual(amino_acid.name, "Lysine")
+ self.assertEqual(amino_acid.triple, "Lys")
+ self.assertEqual(amino_acid.letter, "K")
+ self.assertEqual(amino_acid.weight, 128.17)
+
+ def test_arginine(self):
+ amino_acid = AminoAcid('r')
+ self.assertEqual(amino_acid.name, "Arginine")
+ self.assertEqual(amino_acid.triple, "Arg")
+ self.assertEqual(amino_acid.letter, "R")
+ self.assertEqual(amino_acid.weight, 156.19)
+
+
+def suite():
+ suite = unittest.TestLoader().loadTestsFromTestCase(AminoAcidTestCase)
+ return suite
+
+if __name__ == '__main__':
+ unittest.TextTestRunner().run(suite())
diff --git a/pepseq/test_fragment.py b/pepseq/test_fragment.py
new file mode 100644
index 0000000..4a857a2
--- /dev/null
+++ b/pepseq/test_fragment.py
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+
+import unittest
+
+
+class FragmentTestCase(unittest.TestCase):
+ pass
+
+def suite():
+ suite = unittest.TestLoader().loadTestsFromTestCase(FragmentTestCase)
+ return suite
+
+if __name__ == '__main__':
+ unittest.TextTestRunner().run(suite())
diff --git a/pepseq/test_peptide.py b/pepseq/test_peptide.py
new file mode 100644
index 0000000..9a87b57
--- /dev/null
+++ b/pepseq/test_peptide.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+
+import unittest
+
+
+class PeptideTestCase(unittest.TestCase):
+ pass
+
+if __name__ == '__main__':
+ suite = unittest.TestLoader().loadTestsFromTestCase(PeptideTestCase)
+ unittest.TextTestRunner(verbosity=2).run(suite)
diff --git a/setup.py b/setup.py
index 86c156a..16bfaea 100644
--- a/setup.py
+++ b/setup.py
@@ -1,11 +1,11 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
+import pepseq
from distutils.core import setup
-from pepseq.core import __version__
setup(name='pepseq',
- version=__version__,
+ version=pepseq.__version__,
description='A peptide sequencing application',
long_description=open('README.md').read(),
author='Jon Bernard',