Save and write SpatialExperiment
’s in Python¶
Introduction¶
The dolomite-spatial package is the Python counterpart to the alabaster.spatial R package,
providing methods for saving/reading SpatialExperiment
objects within the dolomite framework.
Quick start¶
Let’s mock up a SpatialExperiment
that contains reduced dimensions and alternative experiments,
from spatialexperiment import SpatialExperiment, construct_spatial_image_class
import biocframe
import numpy as np
spe = SpatialExperiment(
assays={"counts": np.random.rand(1000, 200)},
row_data=biocframe.BiocFrame(
{"foo": np.random.rand(1000), "bar": np.random.rand(1000)}
),
column_data=biocframe.BiocFrame(
{"whee": np.random.rand(200), "stuff": np.random.rand(200), "sample_id": ["sample_1", "sample_2"] * 100}
),
reduced_dims={"tsnooch": np.random.rand(200, 4)},
spatial_coords = np.array(
[
np.random.uniform(low=0.0, high=100.0, size=200),
np.random.uniform(low=0.0, high=100.0, size=200)
]
).transpose(),
img_data = biocframe.BiocFrame({
"sample_id": ["sample_1", "sample_1", "sample_2"],
"image_id": ["aurora", "dice", "desert"],
"data": [
construct_spatial_image_class("biocpy/spatialexperiment/tests/images/sample_image1.jpg"),
construct_spatial_image_class("biocpy/spatialexperiment/tests/images/sample_image2.png"),
construct_spatial_image_class("biocpy/spatialexperiment/tests/images/sample_image3.jpg"),
],
"scale_factor": [1, 1, 1],
})
)
print(spe)
Now we can save it:
from dolomite_base import save_object
import dolomite_spatial
import os
from tempfile import mkdtemp
path = os.path.join(mkdtemp(), "test")
save_object(spe, path)
And load it again, e,g., in a new session:
from dolomite_base import read_object
roundtrip = read_object(path)
print(roundtrip)
## output
class: SpatialExperiment
dimensions: (1000, 200)
assays(1): ['counts']
row_data columns(2): ['foo', 'bar']
row_names(0):
column_data columns(3): ['whee', 'stuff', 'sample_id']
column_names(0):
main_experiment_name:
reduced_dims(1): ['tsnooch']
alternative_experiments(0): []
row_pairs(0): []
column_pairs(0): []
metadata(0):
spatial_coords columns(0): []
img_data columns(4): ['sample_id', 'image_id', 'data', 'scale_factor']
Note¶
This project has been set up using BiocSetup and PyScaffold.