Skip to content

Commit

Permalink
more queries
Browse files Browse the repository at this point in the history
  • Loading branch information
johnkerl committed Feb 6, 2025
1 parent b67cdbf commit 30a96ef
Showing 1 changed file with 55 additions and 61 deletions.
116 changes: 55 additions & 61 deletions apis/python/remote_tests/test_03_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,64 +65,58 @@ def test_basic_readback(conftest_context, uri_and_info):
assert adata.X.shape == (2700, 13714)


## ----------------------------------------------------------------
### Slicing and filtering objects
## exp.obs.read(
## coords=[slice(0, 99)],
## value_filter="total_counts > 4000",
## column_names=["soma_joinid", "obs_id", "total_counts"],
## ).concat().to_pandas()
## exp.obs.read(
## coords=[slice(0, 99)],
## value_filter='parity == "even" and total_counts > 4000',
## column_names=["soma_joinid", "obs_id", "total_counts", "parity"],
## ).concat().to_pandas()
## exp.ms["RNA"].var.read(
## value_filter="var_id in ['ANXA1', 'IFI44', 'IFI44L', 'OAS1']",
## column_names=["var_id", "gene_ids", "mean_counts"],
## ).concat().to_pandas()
#
## ----------------------------------------------------------------
### Slicing and filtering experiments
## exp.uri
## query = tiledbsoma.ExperimentAxisQuery(
## experiment=exp,
## measurement_name="RNA",
## obs_query=tiledbsoma.AxisQuery(
## value_filter="n_genes_by_counts > 1000",
## ),
## var_query=tiledbsoma.AxisQuery(
## value_filter="n_cells_by_counts > 100",
## ),
## )
##
## (query.n_obs, query.n_vars)
#
## ----------------------------------------------------------------
## query.obs().concat().to_pandas()
## query.X(layer_name="data").tables().concat().to_pandas()
## query.to_anndata(X_name="data")
## query.close()
## with tiledbsoma.ExperimentAxisQuery(
## experiment=exp,
## measurement_name="RNA",
## obs_query=tiledbsoma.AxisQuery(
## value_filter="n_genes_by_counts > 1000",
## ),
## var_query=tiledbsoma.AxisQuery(
## value_filter="n_cells_by_counts > 100",
## ),
## ) as query:
## print(query.to_anndata(X_name="data"))
#
## with tiledbsoma.ExperimentAxisQuery(
## experiment=exp,
## measurement_name="RNA",
## obs_query=tiledbsoma.AxisQuery(
## value_filter='n_genes_by_counts > 1000 and parity == "even"',
## ),
## var_query=tiledbsoma.AxisQuery(
## value_filter="n_cells_by_counts > 100",
## ),
## ) as query:
## print(query.to_anndata(X_name="data"))
@pytest.mark.parametrize(
"uri_and_info",
util_pbmc3k_unprocessed_versions(),
)
def test_dataframe_queries(conftest_context, uri_and_info):
uri, info = uri_and_info
with tiledbsoma.Experiment.open(uri, context=conftest_context) as exp:

qobs = (
exp.obs.read(
coords=[slice(0, 99)],
value_filter="nFeature_RNA > 1000",
column_names=["soma_joinid", "obs_id", "nFeature_RNA"],
)
.concat()
.to_pandas()
)
assert qobs.shape == (22, 3)

qvar = (
exp.ms["RNA"]
.var.read(
value_filter="var_id in ['ANXA1', 'IFI44', 'IFI44L', 'OAS1']",
)
.concat()
.to_pandas()
)
assert qvar.shape == (4, 2)


@pytest.mark.parametrize(
"uri_and_info",
util_pbmc3k_unprocessed_versions(),
)
def test_experiment_queries(conftest_context, uri_and_info):
uri, info = uri_and_info
with tiledbsoma.Experiment.open(uri, context=conftest_context) as exp:

query = tiledbsoma.ExperimentAxisQuery(
experiment=exp,
measurement_name="RNA",
obs_query=tiledbsoma.AxisQuery(
value_filter="nFeature_RNA > 1000",
),
var_query=tiledbsoma.AxisQuery(
value_filter="var_id in ['ANXA1', 'IFI44', 'IFI44L', 'OAS1']",
),
)

assert (query.n_obs, query.n_vars) == (530, 4)


# tiledbsoma.io.show_experiment_shapes
# tiledbsoma.io.upgrade_experiment_shapes
# tiledbsoma.io.resize_experiment

0 comments on commit 30a96ef

Please sign in to comment.