diff --git a/prody/tests/proteins/test_insty.py b/prody/tests/proteins/test_insty.py index 0fd6a47ac..1a2dfa46b 100644 --- a/prody/tests/proteins/test_insty.py +++ b/prody/tests/proteins/test_insty.py @@ -29,44 +29,37 @@ def setUp(self): self.HPH_INTERACTIONS = parseDatafile('2k39_hph') self.HPH_INTERACTIONS2 = parseDatafile('2k39_hph2') self.DISU_INTERACTIONS = parseDatafile('2k39_disu') - - self.INTERACTIONS_ALL = InteractionsTrajectory() - self.data_all = self.INTERACTIONS_ALL.calcProteinInteractionsTrajectory(self.ATOMS) - np.save('test_2k39_all.npy', self.data_all, allow_pickle=True) - - self.data_hbs = calcHydrogenBondsTrajectory(self.ATOMS) - np.save('test_2k39_hbs.npy', np.array(self.data_hbs, dtype=object), allow_pickle=True) - - self.data_sbs = calcSaltBridgesTrajectory(self.ATOMS) - np.save('test_2k39_sbs.npy', np.array(self.data_sbs, dtype=object), allow_pickle=True) - - self.data_rib = calcRepulsiveIonicBondingTrajectory(self.ATOMS) - np.save('test_2k39_rib.npy', np.array(self.data_rib, dtype=object), allow_pickle=True) - - self.data_PiStack = calcPiStackingTrajectory(self.ATOMS) - np.save('test_2k39_PiStack.npy', np.array(self.data_PiStack, dtype=object), allow_pickle=True) - self.data_PiCat = calcPiCationTrajectory(self.ATOMS) - np.save('test_2k39_PiCat.npy', np.array(self.data_PiCat, dtype=object), allow_pickle=True) + def testAllInteractionsCalc(self): + """Test for calculating all types of interactions.""" - self.data_hph = calcHydrophobicTrajectory(self.ATOMS) - np.save('test_2k39_hph.npy', np.array(self.data_hph, dtype=object), allow_pickle=True) + if prody.PY3K: + self.INTERACTIONS_ALL = InteractionsTrajectory() + self.data_all = self.INTERACTIONS_ALL.calcProteinInteractionsTrajectory(self.ATOMS) - self.data_disu = calcDisulfideBondsTrajectory(self.ATOMS) - np.save('test_2k39_disu.npy', np.array(self.data_disu, dtype=object), allow_pickle=True) + try: + assert_equal(self.data_all, self.ALL_INTERACTIONS2, + 'failed to get correct interactions without hpb.so from calculation') + except AssertionError: + assert_equal(self.data_all, self.ALL_INTERACTIONS, + 'failed to get correct interactions with hpb.so from calculation') + + def testAllInteractionsSave(self): + """Test for saving and loading all types of interactions.""" + if prody.PY3K: + self.INTERACTIONS_ALL = InteractionsTrajectory() + self.data_all = self.INTERACTIONS_ALL.calcProteinInteractionsTrajectory(self.ATOMS) - def testAllInsteractions(self): - """Test for all types of interactions.""" + np.save('test_2k39_all.npy', np.array(self.data_all, dtype=object), allow_pickle=True) - if prody.PY3K: data_test = np.load('test_2k39_all.npy', allow_pickle=True) try: assert_equal(data_test, self.ALL_INTERACTIONS2, - 'failed to get correct interactions without hpb.so') - except: + 'failed to get correct interactions without hpb.so from saving and loading') + except AssertionError: assert_equal(data_test, self.ALL_INTERACTIONS, - 'failed to get correct interactions with hpb.so') + 'failed to get correct interactions with hpb.so from saving and loading') def testHydrogenBonds(self): """Test for hydrogen bonds. @@ -74,23 +67,37 @@ def testHydrogenBonds(self): order can be also different in the interactions""" if prody.PY3K: - data_test = np.load('test_2k39_hbs.npy', allow_pickle=True) + data_test = calcHydrogenBondsTrajectory(self.ATOMS) assert_equal(sorted([i[-1][-1] for i in data_test]), sorted([i[-1][-1] for i in self.HBS_INTERACTIONS]), 'failed to get correct hydrogen bonds') - def testSaltBridges(self): - """Test for salt bridges.""" + def testSaltBridgesCalc(self): + """Test for salt bridges without saving and loading.""" if prody.PY3K: + self.data_sbs = calcSaltBridgesTrajectory(self.ATOMS) + assert_equal(sorted([i[-1][-1] for i in self.data_sbs]), sorted([i[-1][-1] for i in self.SBS_INTERACTIONS]), + 'failed to get correct salt bridges') + + + def testSaltBridgesSave(self): + """Test for salt bridges with saving and loading (one type with results).""" + + if prody.PY3K: + self.data_sbs = calcSaltBridgesTrajectory(self.ATOMS) + + np.save('test_2k39_sbs.npy', np.array(self.data_sbs, dtype=object), allow_pickle=True) + data_test = np.load('test_2k39_sbs.npy', allow_pickle=True) - assert_equal(sorted([i[-1][-1] for i in data_test]), sorted([i[-1][-1] for i in self.SBS_INTERACTIONS]), - 'failed to get correct salt bridges') + assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.SBS_INTERACTIONS if i]), + 'failed to get correct salt bridges from saving and loading') + def testRepulsiveIonicBonding(self): """Test for repulsive ionic bonding.""" if prody.PY3K: - data_test = np.load('test_2k39_rib.npy', allow_pickle=True) + data_test = calcRepulsiveIonicBondingTrajectory(self.ATOMS) assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.RIB_INTERACTIONS if i]), 'failed to get correct repulsive ionic bonding') @@ -98,7 +105,7 @@ def testPiStacking(self): """Test for pi-stacking interactions.""" if prody.PY3K: - data_test = np.load('test_2k39_PiStack.npy', allow_pickle=True) + data_test = calcPiStackingTrajectory(self.ATOMS) assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.PISTACK_INTERACTIONS if i]), 'failed to get correct pi-stacking interactions') @@ -106,7 +113,7 @@ def testPiCation(self): """Test for pi-stacking interactions.""" if prody.PY3K: - data_test = np.load('test_2k39_PiCat.npy', allow_pickle=True) + data_test = calcPiCationTrajectory(self.ATOMS) assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.PICAT_INTERACTIONS if i]), 'failed to get correct pi-cation interactions') @@ -115,21 +122,31 @@ def testHydrophobicInteractions(self): """Test for hydrophobic interactions.""" if prody.PY3K: - data_test = np.load('test_2k39_hph.npy', allow_pickle=True) + data_test = calcHydrophobicTrajectory(self.ATOMS) try: assert_equal(sorted([i[-1][-1] for i in data_test]), sorted([i[-1][-1] for i in self.HPH_INTERACTIONS2]), 'failed to get correct hydrophobic interactions without hpb.so') - except: + except AssertionError: assert_equal(sorted([i[-1][-1] for i in data_test]), sorted([i[-1][-1] for i in self.HPH_INTERACTIONS]), 'failed to get correct hydrophobic interactions with hpb.so') - def testDisulfideBonds(self): - """Test for disulfide bonds interactions.""" - - if prody.PY3K: - data_test = np.load('test_2k39_disu.npy', allow_pickle=True) - assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.DISU_INTERACTIONS if i]), - 'failed to get correct disulfide bonds') + def testDisulfideBondsCalc(self): + """Test for disulfide bonds interactions without saving and loading.""" + if prody.PY3K: + data_test = calcDisulfideBondsTrajectory(self.ATOMS) + assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.DISU_INTERACTIONS if i]), + 'failed to get correct disulfide bonds from calculation') - + def testDisulfideBondsSave(self): + """Test for disulfide bonds interactions with saving and loading (one type of interactions with 0).""" + if prody.PY3K: + data_test = calcDisulfideBondsTrajectory(self.ATOMS) + assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.DISU_INTERACTIONS if i]), + 'failed to get correct disulfide bonds from calculation') + + np.save('test_2k39_disu.npy', np.array(data_test, dtype=object), allow_pickle=True) + + data_test = np.load('test_2k39_disu.npy', allow_pickle=True) + assert_equal(sorted([i[-1][-1] for i in data_test if i]), sorted([i[-1][-1] for i in self.DISU_INTERACTIONS if i]), + 'failed to get correct disulfide bonds from saving and loading')