Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

184 lines (126 sloc) 5.069 kb
# Copyright 2001 by Gavin E. Crooks. All rights reserved.
# This code is part of the Biopython distribution and governed by its
# license. Please see the LICENSE file that should have been included
# as part of this package.
"""Unit test for Scop"""
import unittest
from StringIO import *
from Bio.SCOP import *
import sys
def run_tests(argv):
test_suite = testing_suite()
runner = unittest.TextTestRunner(sys.stdout, verbosity = 2)
runner.run(test_suite)
def testing_suite():
"""Generate the suite of tests.
"""
test_suite = unittest.TestSuite()
test_loader = unittest.TestLoader()
test_loader.testMethodPrefix = 'test'
tests = [ScopTests]
for test in tests:
cur_suite = test_loader.loadTestsFromTestCase(test)
test_suite.addTest(cur_suite)
return test_suite
class ScopTests(unittest.TestCase):
def testParse(self):
f = open("./SCOP/dir.cla.scop.txt_test")
try:
cla = f.read()
f.close()
f = open("./SCOP/dir.des.scop.txt_test")
des = f.read()
f.close()
f = open("./SCOP/dir.hie.scop.txt_test")
hie = f.read()
finally:
f.close()
scop = Scop(StringIO(cla), StringIO(des), StringIO(hie))
cla_out = StringIO()
scop.write_cla(cla_out)
assert cla_out.getvalue() == cla, cla_out.getvalue()
des_out = StringIO()
scop.write_des(des_out)
assert des_out.getvalue() == des, des_out.getvalue()
hie_out = StringIO()
scop.write_hie(hie_out)
assert hie_out.getvalue() == hie, hie_out.getvalue()
domain = scop.getDomainBySid("d1hbia_")
assert domain.sunid == 14996
domains = scop.getDomains()
assert len(domains)==14
assert domains[4].sunid == 14988
dom = scop.getNodeBySunid(-111)
assert dom == None
dom = scop.getDomainBySid("no such domain")
assert dom == None
def testSccsOrder(self) :
assert cmp_sccs("a.1.1.1", "a.1.1.1") == 0
assert cmp_sccs("a.1.1.2", "a.1.1.1") == 1
assert cmp_sccs("a.1.1.2", "a.1.1.11") == -1
assert cmp_sccs("a.1.2.2", "a.1.1.11") == 1
assert cmp_sccs("a.1.2.2", "a.5.1.11") == -1
assert cmp_sccs("b.1.2.2", "a.5.1.11") == 1
assert cmp_sccs("b.1.2.2", "b.1.2") == 1
def testParseDomain(self) :
s=">d1tpt_1 a.46.2.1 (1-70) Thymidine phosphorylase {Escherichia coli}"
dom = parse_domain(s)
assert dom.sid == 'd1tpt_1'
assert dom.sccs == 'a.46.2.1'
assert dom.residues.pdbid == '1tpt'
assert dom.description == 'Thymidine phosphorylase {Escherichia coli}'
s2="d1tpt_1 a.46.2.1 (1tpt 1-70) Thymidine phosphorylase {E. coli}"
assert s2 == str(parse_domain(s2)), str(parse_domain(s2))
#Genetic domains (See Astral release notes)
s3="g1cph.1 g.1.1.1 (1cph B:,A:) Insulin {Cow (Bos taurus)}"
assert s3 == str(parse_domain(s3)), str(parse_domain(s3))
s4="e1cph.1a g.1.1.1 (1cph A:) Insulin {Cow (Bos taurus)}"
assert s4 == str(parse_domain(s4))
#Raw Astral header
s5=">e1cph.1a g.1.1.1 (A:) Insulin {Cow (Bos taurus)}"
assert s4 == str(parse_domain(s5))
try:
dom = parse_domain("Totally wrong")
assert 0, "Should never get here"
except SyntaxError, e :
pass
def testConstructFromDirectory(self):
scop = Scop (dir_path="SCOP", version="test")
assert isinstance(scop, Scop)
domain = scop.getDomainBySid("d1hbia_")
assert domain.sunid == 14996
def testGetAscendent(self):
scop = Scop (dir_path="SCOP", version="test")
domain = scop.getDomainBySid("d1hbia_")
# get the fold
fold = domain.getAscendent('cf')
assert fold.sunid == 46457
#get the superfamily
sf = domain.getAscendent('superfamily')
assert sf.sunid == 46458
# px has no px ascendent
px = domain.getAscendent('px')
assert px == None
# an sf has no px ascendent
px2 = sf.getAscendent('px')
assert px2 == None
def test_get_descendents(self):
"""Test getDescendents method"""
scop = Scop (dir_path="SCOP", version="test")
fold = scop.getNodeBySunid(46457)
# get px descendents
domains = fold.getDescendents('px')
assert len(domains) == 14
for d in domains:
assert d.type == 'px'
sfs = fold.getDescendents('superfamily')
assert len(sfs) == 1
for d in sfs:
assert d.type == 'sf'
# cl has no cl descendent
cl = fold.getDescendents('cl')
assert cl == []
#def test_suite():
# return unittest.makeSuite(ScopTests)
if __name__ == '__main__':
unittest.main()
Jump to Line
Something went wrong with that request. Please try again.