biotite.structure.io.pdbx.CIFCategory

class biotite.structure.io.pdbx.CIFCategory(columns=None, name=None)[source]

Bases: _Component, MutableMapping

This class represents a category in a CIFBlock.

Columns can be accessed and modified like a dictionary. The values are CIFColumn objects.

Parameters
columnsdict, optional

The columns of the category. The keys are the column names and the values are the CIFColumn objects (or objects that can be coerced into a CIFColumn). By default, an empty category is created. Each column must have the same length.

namestr, optional

The name of the category. This is only used for serialization and is automatically set, when the CIFCategory is added to a CIFBlock. It only needs to be set manually, when the category is directly serialized.

Notes

When a column containing strings with line breaks are added, these strings are written as multiline strings to the CIF file.

Examples

>>> # Add column on creation
>>> category = CIFCategory({"fruit": ["apple", "banana"]}, name="fruits")
>>> # Add column later on
>>> category["taste"] = ["delicious", "tasty"]
>>> # Add column the formal way
>>> category["color"] = CIFColumn(CIFData(["red", "yellow"]))
>>> # Access a column
>>> print(category["fruit"].as_array())
['apple' 'banana']
>>> print(category.serialize())
loop_
_fruits.fruit
_fruits.taste
_fruits.color
apple  delicious red
banana tasty     yellow
Attributes
namestr

The name of the category.

row_countint

The number of rows in the category, i.e. the length of each column.

clear() None.  Remove all items from D.
static deserialize(text, expect_whitespace=True)

Create this component by deserializing the given content.

Parameters
contentstr or dict

The content to be deserialized. The type of this parameter depends on the file format. In case of CIF files, this is the text of the lines that represent this component. In case of BinaryCIF files, this is a dictionary parsed from the MessagePack data.

get(k[, d]) D[k] if k in D, else d.  d defaults to None.
items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair

as a 2-tuple; but raise KeyError if D is empty.

serialize()

Convert this component into a Python object that can be written to a file.

Returns
contentstr or dict

The content to be serialized. The type of this return value depends on the file format. In case of CIF files, this is the text of the lines that represent this component. In case of BinaryCIF files, this is a dictionary that can be encoded into MessagePack.

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D
static subcomponent_class()

Get the class of the components that are stored in this component.

Returns
subcomponent_classtype

The class of the subcomponent. If this component already represents the lowest level, i.e. it does not contain subcomponents, None is returned.

static supercomponent_class()

Get the class of the component that contains this component.

Returns
supercomponent_classtype

The class of the supercomponent. If this component present already the highest level, i.e. it is not contained in another component, None is returned.

update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values