Skip to content

Commit

Permalink
better insty tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesmkrieger committed Aug 22, 2024
1 parent 7541741 commit bc5fcb6
Showing 1 changed file with 63 additions and 46 deletions.
109 changes: 63 additions & 46 deletions prody/tests/proteins/test_insty.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,84 +29,91 @@ 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.
Last column is compared becasue pairs of residues can be reversed and
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')

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')

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')

Expand All @@ -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')

0 comments on commit bc5fcb6

Please sign in to comment.