Source code for dolomite_ranges.read_sequence_information
import os
from typing import Optional
import dolomite_base as dl
import h5py
from dolomite_base.read_object import read_object_registry
from genomicranges import SeqInfo
read_object_registry[
"sequence_information"
] = "dolomite_ranges.read_sequence_information"
[docs]
def read_sequence_information(path: str, metadata: Optional[dict], **kwargs) -> SeqInfo:
"""Load sequence information into a
:py:class:`~genomicranges.SeqInfo.SeqInfo` object.
This method should generally not be called directly but instead be
invoked by :py:meth:`~dolomite_base.read_object.read_object`.
Args:
path:
Path to the directory containing the object.
metadata:
Metadata for the object.
kwargs:
Further arguments, ignored.
Returns:
A :py:class:`~genomicranges.SeqInfo.SeqInfo` object.
"""
with h5py.File(os.path.join(path, "info.h5"), "r") as handle:
ghandle = handle["sequence_information"]
seqnames = dl.load_vector_from_hdf5(
ghandle["name"], expected_type=str, report_1darray=True
)
seqlengths = dl.load_vector_from_hdf5(
ghandle["length"], expected_type=int, report_1darray=True
)
is_circular = dl.load_vector_from_hdf5(
ghandle["circular"], expected_type=bool, report_1darray=True
)
genome = dl.load_vector_from_hdf5(
ghandle["genome"], expected_type=str, report_1darray=True
)
return SeqInfo(seqnames, seqlengths, is_circular, genome)