Skip to content

Commit

Permalink
iterating
Browse files Browse the repository at this point in the history
  • Loading branch information
johnkerl committed Jul 26, 2023
1 parent 9d2919d commit 8fb284a
Show file tree
Hide file tree
Showing 3 changed files with 211 additions and 74 deletions.
2 changes: 0 additions & 2 deletions apis/python/src/tiledbsoma/io/registration/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
ExperimentAmbientLabelMapping,
)
from .id_mappings import AxisIDMapping, ExperimentIDMapping, get_dataframe_values
from .signatures import Signature

__all__ = (
"AxisIDMapping",
"AxisAmbientLabelMapping",
"ExperimentIDMapping",
"ExperimentAmbientLabelMapping",
"Signature",
"get_dataframe_values",
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json
from dataclasses import dataclass
from typing import Any, Dict, Optional, Sequence
from typing import Any, Dict, Optional, Sequence, Tuple

import anndata as ad
import pandas as pd
Expand All @@ -10,6 +10,7 @@
import tiledbsoma.logging

from .id_mappings import AxisIDMapping, ExperimentIDMapping, get_dataframe_values
from .signatures import Signature


@dataclass
Expand Down Expand Up @@ -310,6 +311,27 @@ def from_h5ad_append_on_experiment(
var_field_name=var_field_name,
)

@classmethod
def pre_check(
cls,
experiment_uri: Optional[str],
h5ad_file_names: Sequence[str],
*,
measurement_name: str = "RNA",
obs_field_name: str = "obs_id",
var_field_name: str = "var_id",
) -> Tuple[bool, Optional[str]]:
"""TODO: docstring"""
signatures = {}
if experiment_uri is not None:
signature = Signature.fromSOMAExperiment(experiment_uri)
signatures[experiment_uri] = signature
for h5ad_file_name in h5ad_file_names:
signature = Signature.fromH5AD(h5ad_file_name)
signatures[h5ad_file_name] = signature

return Signature.compatible(signatures)

@classmethod
def from_h5ad_appends_on_experiment(
cls,
Expand All @@ -322,6 +344,8 @@ def from_h5ad_appends_on_experiment(
) -> Self:
"""TODO: docstring"""

# TODO: call the pre-check method and raise if not OK

if experiment_uri is not None and tiledbsoma.Experiment.exists(experiment_uri):
registration_data = cls.from_isolated_soma_experiment(
experiment_uri,
Expand Down
Loading

0 comments on commit 8fb284a

Please sign in to comment.