mirror of
https://github.com/biopython/biopython.git
synced 2025-10-21 06:23:48 +08:00
$ ruff check --fix --select=I \ --config=lint.isort.force-single-line=true \ --config=lint.isort.order-by-type=false \ BioSQL/ Bio/ Tests/ Scripts/ Doc/ setup.py Using ruff version 0.4.10
126 lines
5.8 KiB
Python
126 lines
5.8 KiB
Python
# Copyright 1999 by Jeffrey Chang. 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.
|
|
"""Tests for KeyWList."""
|
|
|
|
import os.path
|
|
import unittest
|
|
|
|
from Bio.SwissProt import KeyWList
|
|
|
|
|
|
class KeyWListTest(unittest.TestCase):
|
|
"""Tests for KeyWList."""
|
|
|
|
def test_parse(self):
|
|
"""Test parsing keywlist.txt works."""
|
|
filename = os.path.join("SwissProt", "keywlist.txt")
|
|
with open(filename) as handle:
|
|
records = KeyWList.parse(handle)
|
|
|
|
# Testing the first record
|
|
record = next(records)
|
|
self.assertEqual(record["ID"], "2Fe-2S.")
|
|
self.assertEqual(record["AC"], "KW-0001")
|
|
self.assertEqual(
|
|
record["DE"],
|
|
"Protein which contains at least one 2Fe-2S iron-sulfur cluster: 2 iron atoms complexed to 2 inorganic sulfides and 4 sulfur atoms of cysteines from the protein.",
|
|
)
|
|
self.assertEqual(
|
|
record["SY"],
|
|
"Fe2S2; [2Fe-2S] cluster; [Fe2S2] cluster; Fe2/S2 (inorganic) cluster; Di-mu-sulfido-diiron; 2 iron, 2 sulfur cluster binding.",
|
|
)
|
|
self.assertEqual(len(record["GO"]), 1)
|
|
self.assertEqual(
|
|
record["GO"], ["GO:0051537; 2 iron, 2 sulfur cluster binding"]
|
|
)
|
|
self.assertEqual(len(record["HI"]), 2)
|
|
self.assertEqual(record["HI"][0], "Ligand: Iron; Iron-sulfur; 2Fe-2S.")
|
|
self.assertEqual(record["HI"][1], "Ligand: Metal-binding; 2Fe-2S.")
|
|
self.assertEqual(record["CA"], "Ligand.")
|
|
|
|
# Testing the second record
|
|
record = next(records)
|
|
self.assertEqual(record["IC"], "Molecular function.")
|
|
self.assertEqual(record["AC"], "KW-9992")
|
|
self.assertEqual(
|
|
record["DE"],
|
|
"Keywords assigned to proteins due to their particular molecular function.",
|
|
)
|
|
|
|
# Testing the third record
|
|
record = next(records)
|
|
self.assertEqual(record["ID"], "Zymogen.")
|
|
self.assertEqual(record["AC"], "KW-0865")
|
|
self.assertEqual(
|
|
record["DE"],
|
|
"The enzymatically inactive precursor of mostly proteolytic enzymes.",
|
|
)
|
|
self.assertEqual(record["SY"], "Proenzyme.")
|
|
self.assertEqual(len(record["HI"]), 1)
|
|
self.assertEqual(record["HI"][0], "PTM: Zymogen.")
|
|
self.assertEqual(record["CA"], "PTM.")
|
|
|
|
def test_parse2(self):
|
|
"""Parsing keywlist2.txt (without header and footer)."""
|
|
filename = os.path.join("SwissProt", "keywlist2.txt")
|
|
with open(filename) as handle:
|
|
records = KeyWList.parse(handle)
|
|
|
|
# Testing the first record
|
|
record = next(records)
|
|
self.assertEqual(record["ID"], "2Fe-2S.")
|
|
self.assertEqual(record["AC"], "KW-0001")
|
|
self.assertEqual(
|
|
record["DE"],
|
|
"Protein which contains at least one 2Fe-2S iron-sulfur cluster: 2 iron atoms complexed to 2 inorganic sulfides and 4 sulfur atoms of cysteines from the protein.",
|
|
)
|
|
self.assertEqual(
|
|
record["SY"],
|
|
"Fe2S2; [2Fe-2S] cluster; [Fe2S2] cluster; Fe2/S2 (inorganic) cluster; Di-mu-sulfido-diiron; 2 iron, 2 sulfur cluster binding.",
|
|
)
|
|
self.assertEqual(len(record["GO"]), 1)
|
|
self.assertEqual(
|
|
record["GO"], ["GO:0051537; 2 iron, 2 sulfur cluster binding"]
|
|
)
|
|
self.assertEqual(len(record["HI"]), 2)
|
|
self.assertEqual(record["HI"][0], "Ligand: Iron; Iron-sulfur; 2Fe-2S.")
|
|
self.assertEqual(record["HI"][1], "Ligand: Metal-binding; 2Fe-2S.")
|
|
self.assertEqual(record["CA"], "Ligand.")
|
|
|
|
# Testing the second record
|
|
record = next(records)
|
|
self.assertEqual(record["ID"], "3D-structure.")
|
|
self.assertEqual(record["AC"], "KW-0002")
|
|
self.assertEqual(
|
|
record["DE"],
|
|
"Protein, or part of a protein, whose three-dimensional structure has been resolved experimentally (for example by X-ray crystallography or NMR spectroscopy) and whose coordinates are available in the PDB database. Can also be used for theoretical models.",
|
|
)
|
|
self.assertEqual(len(record["HI"]), 1)
|
|
self.assertEqual(record["HI"][0], "Technical term: 3D-structure.")
|
|
self.assertEqual(record["CA"], "Technical term.")
|
|
|
|
# Testing the third record
|
|
record = next(records)
|
|
self.assertEqual(record["ID"], "3Fe-4S.")
|
|
self.assertEqual(record["AC"], "KW-0003")
|
|
self.assertEqual(
|
|
record["DE"],
|
|
"Protein which contains at least one 3Fe-4S iron-sulfur cluster: 3 iron atoms complexed to 4 inorganic sulfides and 3 sulfur atoms of cysteines from the protein. In a number of iron-sulfur proteins, the 4Fe-4S cluster can be reversibly converted by oxidation and loss of one iron ion to a 3Fe-4S cluster.",
|
|
)
|
|
self.assertEqual(record["SY"], "")
|
|
self.assertEqual(len(record["GO"]), 1)
|
|
self.assertEqual(
|
|
record["GO"], ["GO:0051538; 3 iron, 4 sulfur cluster binding"]
|
|
)
|
|
self.assertEqual(len(record["HI"]), 2)
|
|
self.assertEqual(record["HI"][0], "Ligand: Iron; Iron-sulfur; 3Fe-4S.")
|
|
self.assertEqual(record["HI"][1], "Ligand: Metal-binding; 3Fe-4S.")
|
|
self.assertEqual(record["CA"], "Ligand.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
runner = unittest.TextTestRunner(verbosity=2)
|
|
unittest.main(testRunner=runner)
|