Document

OboDoc

class fastobo.doc.OboDoc(header=None, entities=None)

The abstract syntax tree corresponding to an OBO document.

Parameters:
  • header (HeaderFrame, optional) – the header to use in the document. If None is given, an empty header is used instead.

  • entities (collections.abc.Iterable, optional) – an iterable of entity frames, either TermFrame, TypedefFrame or InstanceFrame.

__getitem__(key, /)

Return self[key].

__len__()

Return len(self).

__new__(**kwargs)
__str__()

Return str(self).

append(object)

Append object to the end of the list.

Raises:

TypeError – when the object is not of the right type for this container (see type-level documentation for the required type).

clear()

Remove all items from list.

compact_ids()

Create a semantically equivalent OBO document with compact identifiers.

The OBO specification describes how to perform an URI decompaction using either ID spaces declared in the document header, builtin ID spaces, or a default rule using the purl.obolibrary.org domain. By applying the reverse operation, a new ontology can be created with compact identifiers. Some URLs may not have a compact representation if they don’t correspond to any decompaction rule.

Example

>>> doc = fastobo.loads(textwrap.dedent(
...     """
...     idspace: MassBank http://www.massbank.jp/jsp/FwdRecord.jsp?id=
...
...     [Term]
...     id: http://purl.obolibrary.org/obo/CHEBI_27958
...     xref: http://www.massbank.jp/jsp/FwdRecord.jsp?id=EA281701
...     """
... ))
>>> compact_doc = doc.compact_ids()
>>> print(compact_doc[0])
[Term]
id: CHEBI:27958
xref: MassBank:EA281701

See also

The Translation of Identifiers section of the OBO format version 1.4 specification.

copy()

Return a shallow copy of the list.

count(value)

Return number of occurrences of value.

Raises:

TypeError – when the object is not of the right type for this container (see type-level documentation for the required type).

decompact_ids()

Create a semantically equivalent OBO document with IRI identifiers.

The OBO specification describes how to perform an URI decompaction using either ID spaces declared in the document header, builtin ID spaces, or a default rule using the purl.obolibrary.org domain.

Example

>>> doc = fastobo.loads(textwrap.dedent(
...     """
...     idspace: MassBank http://www.massbank.jp/jsp/FwdRecord.jsp?id=
...
...     [Term]
...     id: CHEBI:27958
...     xref: MassBank:EA281701
...     """
... ))
>>> url_doc = doc.decompact_ids()
>>> print(url_doc[0])
[Term]
id: http://purl.obolibrary.org/obo/CHEBI_27958
xref: http://www.massbank.jp/jsp/FwdRecord.jsp?id=EA281701

See also

The Translation of Identifiers section of the OBO format version 1.4 specification.

header

the header containing ontology metadata.

Type:

HeaderFrame

insert(index, object)

Insert object before index.

If index is greater than the number of elements in the list, object will be added at the end of the list.

pop(index=-1)

Remove and return item at index (default last).

Raises:

IndexError – when list is empty or index is out of range.

reverse()

Reverse IN PLACE.