Skip to content

Commit e4a240a

Browse files
committed
[feat] added tests for multiple models
1 parent cf3a8e8 commit e4a240a

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

biopandas/mmcif/pandas_mmcif.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,15 @@ def read_mmcif(self, path):
7070
self.code = self.data["entry"]["id"][0].lower()
7171
return self
7272

73+
def label_models(self):
74+
"""Adds a column ("model_id") to the underlying
75+
DataFrames containing the model number."""
76+
if "ATOM" in self.df.keys():
77+
self.df["ATOM"]["model_id"] = self.df["ATOM"]["pdbx_PDB_model_num"]
78+
if "HETATM" in self.df.keys():
79+
self.df["HETATM"]["model_id"] = self.df["HETATM"]["pdbx_PDB_model_num"]
80+
return self
81+
7382
def get_model(self, model_index: int) -> PandasMmcif:
7483
"""Returns a new PandasMmcif object with the dataframes subset to the
7584
given model index.

biopandas/mmcif/tests/test_multiple_models.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010

1111
TESTDATA_FILENAME = os.path.join(os.path.dirname(__file__), "data", "2jyf.cif.gz")
1212

13+
def test_label_models():
14+
df = PandasMmcif().read_mmcif(TESTDATA_FILENAME)
15+
df.label_models()
16+
assert "model_id" in df.df["ATOM"].columns
17+
1318
def test_get_model():
1419
df = PandasMmcif().read_mmcif(TESTDATA_FILENAME)
1520
MODEL_INDEX = 1

0 commit comments

Comments
 (0)