diff options
| -rw-r--r-- | pepseq/__init__.py | 8 | ||||
| -rw-r--r-- | pepseq/amino_acid.py | 38 | ||||
| -rw-r--r-- | pepseq/core.py | 3 | ||||
| -rw-r--r-- | pepseq/fragment.py | 6 | ||||
| -rw-r--r-- | pepseq/peptide.py | 6 | ||||
| -rw-r--r-- | pepseq/test_amino_acid.py | 155 | ||||
| -rw-r--r-- | pepseq/test_fragment.py | 14 | ||||
| -rw-r--r-- | pepseq/test_peptide.py | 11 | ||||
| -rw-r--r-- | setup.py | 4 |
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) @@ -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', |