From 87578e926f6c0f0f4e8e14a7fe7ec8dca8eea8a5 Mon Sep 17 00:00:00 2001 From: Jonathan Karr Date: Wed, 14 Nov 2018 00:53:10 -0500 Subject: [PATCH] fixing translation of protein sequences, empirical formule, molecular weights --- tests/test_prokaryote_schema.py | 16 +++++++++------- wc_kb/prokaryote_schema.py | 18 +++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/tests/test_prokaryote_schema.py b/tests/test_prokaryote_schema.py index 39650a7..6fab4f4 100644 --- a/tests/test_prokaryote_schema.py +++ b/tests/test_prokaryote_schema.py @@ -189,28 +189,30 @@ def test_constructor(self): self.assertEqual(protein.cell, None) def test_get_seq(self): - - # Use table 4 since example genes are from mycoplasma genitallium + # Use translation table 4 since example genes are from + # Mycoplasma genitallium # MPN001 self.assertEqual(self.prot1.get_seq()[0:10], 'MKVLINKNEL') + self.assertEqual(self.prot1.get_seq()[-10:], 'ELKEILVPSK') # MPN011 self.assertEqual(self.prot2.get_seq()[0:10], 'MKFKFLLTPL') + self.assertEqual(self.prot2.get_seq()[-10:], 'LFRYLVYLIE') def test_get_empirical_formula(self): # MPN001 self.assertEqual(self.prot1.get_empirical_formula(), - chem.EmpiricalFormula('C1980H3144N510O595S7')) + chem.EmpiricalFormula('C1980H3146N510O596S7')) # MPN011 self.assertEqual(self.prot2.get_empirical_formula(), - chem.EmpiricalFormula('C1246H1926N306O351S3')) + chem.EmpiricalFormula('C1246H1928N306O352S3')) def test_get_mol_wt(self): # MPN001 - self.assertAlmostEqual(self.prot1.get_mol_wt(), 43838.327, delta=0.3) + self.assertAlmostEqual(self.prot1.get_mol_wt(), 43856.342, delta=0.3) # MNP011 - self.assertAlmostEqual(self.prot2.get_mol_wt(), 26905.085, delta=0.3) + self.assertAlmostEqual(self.prot2.get_mol_wt(), 26923.100, delta=0.3) def test_get_charge(self): self.assertEqual(self.prot1.get_charge(), 1) @@ -309,4 +311,4 @@ def test_ComplexSpeciesType(self): self.assertAlmostEqual(complex1.get_mol_wt(), (2*prot1.get_mol_wt() + 3 * prot2.get_mol_wt())) self.assertEqual(complex1.get_empirical_formula(), - chem.EmpiricalFormula('C7698H12066N1938O2243S23')) + chem.EmpiricalFormula('C7698H12076N1938O2248S23')) diff --git a/wc_kb/prokaryote_schema.py b/wc_kb/prokaryote_schema.py index 4faafb5..8c75d19 100644 --- a/wc_kb/prokaryote_schema.py +++ b/wc_kb/prokaryote_schema.py @@ -119,22 +119,22 @@ class Meta(obj_model.Model.Meta): attribute_order = ('id', 'name', 'gene', 'rna', 'circular', 'double_stranded', 'half_life', 'comments', 'references', 'database_references') - def get_seq(self, cds=False): + def get_seq(self, cds=True): """ Get the sequence Returns: :obj:`Bio.Seq.Seq`: sequence """ - return self.gene.get_seq().translate(table=self.cell.knowledge_base.translation_table, cds=cds) + seq = self.gene.get_seq().translate(table=self.cell.knowledge_base.translation_table, cds=cds) + return seq - def get_empirical_formula(self, cds=False): + def get_empirical_formula(self, cds=True): """ Get the empirical formula Returns: :obj:`chem.EmpiricalFormula`: empirical formula """ - - seq = self.get_seq(cds) + seq = self.get_seq(cds=cds) l = len(seq) n_a = seq.count('A') # Ala: Alanine (C3 H7 N O2) @@ -186,13 +186,13 @@ def get_empirical_formula(self, cds=False): formula.S = n_c + n_m return formula - def get_charge(self, cds=False): + def get_charge(self, cds=True): """ Get the charge at physiological pH Returns: :obj:`int`: charge """ - seq = self.get_seq(cds) + seq = self.get_seq(cds=cds) n_r = seq.count('R') n_h = seq.count('H') @@ -202,13 +202,13 @@ def get_charge(self, cds=False): return (n_r + n_h + n_k) - (n_d + n_e) - def get_mol_wt(self, cds=False): + def get_mol_wt(self, cds=True): """ Get the molecular weight Returns: :obj:`float`: molecular weight """ - return self.get_empirical_formula(cds).get_molecular_weight() + return self.get_empirical_formula(cds=cds).get_molecular_weight() #####################