lamindb.curators.SomaExperimentCurator

class lamindb.curators.SomaExperimentCurator(dataset, schema)

Bases: SlotsCurator

Curator for TileDB-SOMA.

Parameters:
  • dataset (SOMAExperiment | Artifact) – The tiledbsoma.Experiment object.

  • schema (Schema) – A Schema object that defines the validation constraints.

Example

curate_soma_experiment.py
import lamindb as ln
import bionty as bt
import tiledbsoma as soma
import tiledbsoma.io

adata = ln.core.datasets.small_dataset1(otype="AnnData")
tiledbsoma.io.from_anndata("small_dataset.tiledbsoma", adata, measurement_name="RNA")
experiment = soma.Experiment.open("small_dataset.tiledbsoma")

obs_schema = ln.Schema(
    name="soma_obs_schema",
    features=[
        ln.Feature(name="cell_type_by_expert", dtype=bt.CellType).save(),
        ln.Feature(name="cell_type_by_model", dtype=bt.CellType).save(),
    ],
).save()

var_schema = ln.Schema(
    name="soma_var_schema",
    features=[
        ln.Feature(name="var_id", dtype=bt.Gene.ensembl_gene_id).save(),
    ],
    coerce_dtype=True,
).save()

soma_schema = ln.Schema(
    name="soma_experiment_schema",
    otype="tiledbsoma",
    slots={
        "obs": obs_schema,
        "ms:RNA.T": var_schema,
    },
).save()

curator = ln.curators.SomaExperimentCurator(experiment, soma_schema)
curator.validate()
artifact = curator.save_artifact(
    key="examples/soma_experiment.tiledbsoma",
    description="SOMA experiment with schema validation",
)
assert artifact.schema == soma_schema
artifact.describe()

See also

from_tiledbsoma().

Attributes

property slots: dict[str, DataFrameCurator]

Access sub curators by slot.

Methods

save_artifact(*, key=None, description=None, revises=None, run=None)

Save an annotated artifact.

Parameters:
  • key (str | None, default: None) – A path-like key to reference artifact in default storage, e.g., "myfolder/myfile.fcs". Artifacts with the same key form a version family.

  • description (str | None, default: None) – A description.

  • revises (Artifact | None, default: None) – Previous version of the artifact. Is an alternative way to passing key to trigger a new version.

  • run (Run | None, default: None) – The run that creates the artifact.

Return type:

Artifact

Returns:

A saved artifact record.

validate()

Validate dataset against Schema.

Raises:

lamindb.errors.ValidationError – If validation fails.

Return type:

None