def test_reorder(self): out_dict = str_and_dict.unify_freq_dicts( self.freq_dicts, key_separator="-", ) #original assert out_dict["WT"]["GLU30-LYS40"] == 1.0 assert out_dict["WT"]["GLU30-LYS50"] == .5 assert out_dict["WT"]["GLU30-LYS60"] == .1 assert "LYS60-GLU30" not in out_dict["WT"].keys() #bc reordering #external assert out_dict["WT"]["ALA40-GLU30"] == 0 #from K40A assert out_dict["WT"]["GLH30-LYS40"] == 0 #from prot, reordered # original assert out_dict["K40A"]["ALA40-GLU30"] == .7 assert out_dict["K40A"]["GLU30-LYS60"] == .2 #was reordered assert "LYS60-GLU30" not in out_dict["K40A"].keys() # external assert out_dict["K40A"]["GLU30-LYS40"] == 0 #from WT assert out_dict["K40A"]["GLU30-LYS50"] == 0 #from WT assert out_dict["K40A"]["GLH30-LYS40"] == 0 #from prot, reordered # original assert out_dict["prot"]["GLH30-LYS40"] == .3 #was reordered assert "LYS40-GLH30" not in out_dict["prot"].keys() # external assert out_dict["prot"]["GLU30-LYS40"] == 0 # from WT assert out_dict["prot"]["GLU30-LYS50"] == 0 # from WT assert out_dict["prot"]["GLU30-LYS60"] == 0 # from WT, reordered assert "LYS60-GLU30" not in out_dict["prot"].keys() #assert out_dict["prot"]["LYS60-GLU30"] == 0 # from K40A not anymore, was set to 0 already assert out_dict["prot"]["ALA40-GLU30"] == 0 # from K40A
def test_mutations(self): out_dict = str_and_dict.unify_freq_dicts( self.freq_dicts, key_separator=None, replacement_dict={"ALA40": "LYS40"}) #original assert out_dict["WT"]["GLU30-LYS40"] == 1.0 assert out_dict["WT"]["GLU30-LYS50"] == .5 assert out_dict["WT"]["LYS60-GLU30"] == .1 #external assert "ALA40-GLU30" not in out_dict["WT"].keys( ) #from K40A, will be now LYS40 assert out_dict["WT"][ "LYS40-GLU30"] == 0 #from K40A, was mutated back to LYS assert out_dict["WT"]["GLU30-LYS60"] == 0 #from K40A assert out_dict["WT"]["LYS40-GLH30"] == 0 #from prot # original assert out_dict["K40A"]["LYS40-GLU30"] == .7 #was mutated assert out_dict["K40A"]["GLU30-LYS60"] == .2 # external assert out_dict["K40A"]["GLU30-LYS40"] == 0 #from WT assert out_dict["K40A"]["GLU30-LYS50"] == 0 #from WT assert out_dict["K40A"]["LYS40-GLH30"] == 0 #from prot # original assert out_dict["prot"]["LYS40-GLH30"] == .3 # external assert out_dict["prot"]["GLU30-LYS40"] == 0 # from WT assert out_dict["prot"]["GLU30-LYS50"] == 0 # from WT assert out_dict["prot"]["LYS60-GLU30"] == 0 # from WT assert out_dict["prot"]["LYS60-GLU30"] == 0 # from K40A assert out_dict["prot"]["LYS40-GLU30"] == 0 # from K40A
def test_basic_defrag(self): out_dict = str_and_dict.unify_freq_dicts(self.freq_dicts, key_separator=None, defrag="@") #original assert out_dict["WT"]["GLU30-LYS40"] == 1.0 assert out_dict["WT"]["GLU30-LYS50"] == .5 assert out_dict["WT"]["LYS60-GLU30"] == .1 #external assert out_dict["WT"]["ALA40-GLU30"] == 0 #from K40A assert out_dict["WT"]["GLU30-LYS60"] == 0 #from K40A assert out_dict["WT"]["LYS40-GLH30"] == 0 #from prot # original assert out_dict["K40A"]["ALA40-GLU30"] == .7 assert out_dict["K40A"]["GLU30-LYS60"] == .2 # external assert out_dict["K40A"]["GLU30-LYS40"] == 0 #from WT assert out_dict["K40A"]["GLU30-LYS50"] == 0 #from WT assert out_dict["K40A"]["LYS40-GLH30"] == 0 #from prot # original assert out_dict["prot"]["LYS40-GLH30"] == .3 # external assert out_dict["prot"]["GLU30-LYS40"] == 0 # from WT assert out_dict["prot"]["GLU30-LYS50"] == 0 # from WT assert out_dict["prot"]["LYS60-GLU30"] == 0 # from WT assert out_dict["prot"]["LYS60-GLU30"] == 0 # from K40A assert out_dict["prot"]["ALA40-GLU30"] == 0 # from K40A
def test_basic_exclude(self): with pytest.raises(NotImplementedError): out_dict = str_and_dict.unify_freq_dicts( self.freq_dicts, exclude=[ "LYS6" ], #to check that is just a pattern matching, not full str match key_separator=None) """
def test_per_residue(self): """ self.freq_dicts = {"WT": {"GLU30-LYS40":1.0, "GLU30-LYS50":.5, "LYS60-GLU30": .1}, "K40A": {"ALA40-GLU30":.7, "GLU30-LYS60": .2}, "prot": {"LYS40-GLH30": .3 }} Returns ------- """ out_dict = str_and_dict.unify_freq_dicts(self.freq_dicts, per_residue=True) test_dict = { "WT": { "GLU30": 1.0 + .5 + .1, "LYS40": 1.0 + 0, "LYS50": .5, "LYS60": .1, "ALA40": 0, "GLH30": 0 }, "K40A": { "ALA40": .7, "GLU30": .7 + .2, "LYS60": .2, "LYS40": 0, "LYS50": 0, "GLH30": 0 }, "prot": { "GLU30": 0, "LYS40": .3, "LYS50": 0, "LYS60": 0, "ALA40": 0, "GLH30": .3 } } self.assertDictEqual(out_dict["WT"], test_dict["WT"]) self.assertDictEqual(out_dict["K40A"], test_dict["K40A"]) self.assertDictEqual(out_dict["prot"], test_dict["prot"])