Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Changelog

## Version 0.4.0
## Version 0.4.0 - 0.4.1

- Support for compressed lists.
- Fix the copy paste issue for Compressed data frame lists.

## Version 0.3.0

Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ install_requires =
dolomite-base>=0.4.2
genomicranges>=0.8.2
biocframe>=0.7.2
compressed-lists>=0.4.4
compressed-lists>=0.4.5
h5py


Expand Down
4 changes: 3 additions & 1 deletion src/dolomite_ranges/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
del version, PackageNotFoundError

from .save_sequence_information import save_sequence_information
from .read_sequence_information import read_sequence_information
from .read_sequence_information import read_sequence_information
from .read_frame_list import read_data_frame_list
from .save_frame_list import save_data_frame_list
from .save_genomic_ranges import save_genomic_ranges
from .read_genomic_ranges import read_genomic_ranges
from .save_genomic_ranges_list import save_compressed_genomic_ranges_list
Expand Down
4 changes: 1 addition & 3 deletions src/dolomite_ranges/read_atomic_vector_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ def read_atomic_vector_list(path: str, metadata: Optional[dict], **kwargs):

kwargs:
Further arguments, ignored.


"""
"""
return _read_compressed_list(path, metadata, "atomic_vector_list", **kwargs)


Expand Down
4 changes: 2 additions & 2 deletions src/dolomite_ranges/save_frame_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

@dl.save_object.register
@dl.validate_saves
def save_compressed_genomic_ranges_list(x: CompressedSplitBiocFrameList, path: str, **kwargs):
def save_data_frame_list(x: CompressedSplitBiocFrameList, path: str, **kwargs):
"""Method for saving :py:class:`~compressed_lists.biocframe_list.CompressedSplitBiocFrameList`
objects to their corresponding file representations, see
:py:meth:`~dolomite_base.save_object.save_object` for details.
Expand All @@ -28,4 +28,4 @@ def save_compressed_genomic_ranges_list(x: CompressedSplitBiocFrameList, path: s
Returns:
`x` is saved to `path`.
"""
return _save_compressed_list(x, path=path, name="genomic_ranges_list", **kwargs)
return _save_compressed_list(x, path=path, name="data_frame_list", **kwargs)
48 changes: 48 additions & 0 deletions tests/test_frame_list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import os
from tempfile import mkdtemp

from biocframe import BiocFrame
from dolomite_base import read_object, save_object
from compressed_lists import CompressedSplitBiocFrameList
import numpy as np
import dolomite_ranges


def test_dataframe_list():
a = BiocFrame({
"seqnames":["chr1", "chr2", "chr1", "chr3"],
"strand":["-", "+", "*", "+"],
"mcols":BiocFrame({"score": [1, 2, 3, 4]})
})

b = BiocFrame({
"seqnames":["chr2", "chr4", "chr5"],
"strand":["-", "+", "*"],
"mcols":BiocFrame({"score": [2, 3, 4]})
})

gdf = CompressedSplitBiocFrameList.from_list(lst=[a, b], names=["a", "b"])

dir = os.path.join(mkdtemp(), "dframe")
save_object(gdf, dir)

roundtrip = read_object(dir)
assert isinstance(roundtrip, CompressedSplitBiocFrameList)
assert roundtrip.get_names() == gdf.get_names()
assert len(roundtrip.get_unlist_data()) == len(gdf.get_unlist_data())
assert list(roundtrip[0].get_column("seqnames")) == gdf[0].get_column("seqnames")
assert list(roundtrip[0].get_column("strand")) ==gdf[0].get_column("strand")


def test_dframe_empty():
gdf = CompressedSplitBiocFrameList.empty(n=100)

print(gdf)

dir = os.path.join(mkdtemp(), "dframe_empty")
save_object(gdf, dir)

roundtrip = read_object(dir)
assert roundtrip.get_names() == gdf.get_names()
assert len(roundtrip.get_unlist_data()) == len(gdf.get_unlist_data())
assert np.allclose(roundtrip.get_element_lengths(), gdf.get_element_lengths())
Loading