Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
temp/WIP
Browse files Browse the repository at this point in the history
johnkerl committed Jan 30, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 2f12828 commit 4325a12
Showing 19 changed files with 288 additions and 146 deletions.
2 changes: 1 addition & 1 deletion apis/python/setup.py
Original file line number Diff line number Diff line change
@@ -244,7 +244,7 @@ def run(self):
str(tiledb_dir / "lib"),
]

CXX_FLAGS = ["-O3"]
CXX_FLAGS = ["-g", "-O0"]

if platform.machine() == "x86_64":
CXX_FLAGS.append("-mavx2")
24 changes: 20 additions & 4 deletions apis/python/src/tiledbsoma/common.cc
Original file line number Diff line number Diff line change
@@ -15,6 +15,8 @@

namespace tiledbsoma {

using namespace pybind11::literals; // to bring in the `_a` literal

std::unordered_map<tiledb_datatype_t, std::string> _tdb_to_np_name_dtype = {
{TILEDB_INT32, "int32"},
{TILEDB_INT64, "int64"},
@@ -185,22 +187,36 @@ bool is_tdb_str(tiledb_datatype_t type) {
py::object _buffer_to_table(std::shared_ptr<ArrayBuffers> buffers) {
auto pa = py::module::import("pyarrow");
auto pa_table_from_arrays = pa.attr("Table").attr("from_arrays");
auto pa_array_import = pa.attr("Array").attr("_import_from_c");
auto pa_schema_import = pa.attr("Schema").attr("_import_from_c");
auto py_array_importer = pa.attr("Array").attr("_import_from_c");
auto pa_schema_importer = pa.attr("Schema").attr("_import_from_c");

py::list array_list;
py::list names;

for (auto& name : buffers->names()) {
auto column = buffers->at(name);
auto [pa_array, pa_schema] = ArrowAdapter::to_arrow(column);
auto array = pa_array_import(
auto array = py_array_importer(
py::capsule(pa_array.get()), py::capsule(pa_schema.get()));
array_list.append(array);
names.append(name);
}

return pa_table_from_arrays(array_list, names);
auto py_arrow_table = pa_table_from_arrays(array_list, names);

// ----------------------------------------------------------------
ArrowSchema c_arrow_schema;
uintptr_t c_arrow_schema_ptr = (uintptr_t)(&c_arrow_schema);

py_arrow_table.attr("schema").attr("_export_to_c")(c_arrow_schema_ptr);
ArrowAdapter::set_metadata_for_pandas(&c_arrow_schema);
auto py_arrow_schema = pa_schema_importer(py::capsule(&c_arrow_schema));

py_arrow_table = pa_table_from_arrays(
array_list, "schema"_a = py_arrow_schema);
// ----------------------------------------------------------------

return py_arrow_table;
}

std::optional<py::object> to_table(
2 changes: 1 addition & 1 deletion apis/r/R/MappingBase.R
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ MappingBase <- R6::R6Class(
public = list(
#' @param ... Ignored
#'
#' @return \Sexpr[results=rd]{tiledbsoma:::rd_return_virtual()}
#' @return NOPENOPENOPE[results=rd]{tiledbsoma:::rd_return_virtual()}
#'
initialize = function(...) {
calls <- vapply_char(
2 changes: 1 addition & 1 deletion apis/r/R/SOMAContextBase.R
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ SOMAContextBase <- R6::R6Class(
public = list(
#' @template param-config
#'
#' @return \Sexpr[results=rd]{tiledbsoma:::rd_return_virtual()}
#' @return NOPENOPENOPE[results=rd]{tiledbsoma:::rd_return_virtual()}
#'
initialize = function(config = NULL) {
calls <- vapply_char(
46 changes: 23 additions & 23 deletions apis/r/R/SOMAExperimentAxisQuery.R
Original file line number Diff line number Diff line change
@@ -507,14 +507,14 @@ SOMAExperimentAxisQuery <- R6::R6Class(

#' @description Loads the query as a \code{\link[SeuratObject]{Seurat}} object
#'
#' @param X_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_xlayers()}
#' @param obs_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index()}
#' @param var_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index(axis = 'var')}
#' @param obs_column_names \Sexpr[results=rd]{tiledbsoma:::rd_outgest_metadata_names()}
#' @param var_column_names \Sexpr[results=rd]{tiledbsoma:::rd_outgest_metadata_names(axis = 'var')}
#' @param obsm_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_mlayers()}
#' @param varm_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_mlayers(axis = 'varm')}
#' @param obsp_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_players()}
#' @param X_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_xlayers()}
#' @param obs_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index()}
#' @param var_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index(axis = 'var')}
#' @param obs_column_names NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_metadata_names()}
#' @param var_column_names NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_metadata_names(axis = 'var')}
#' @param obsm_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_mlayers()}
#' @param varm_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_mlayers(axis = 'varm')}
#' @param obsp_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_players()}
#' @param drop_levels Drop unused levels from \code{obs} and \code{var} factor columns
#'
#' @return A \code{\link[SeuratObject]{Seurat}} object
@@ -734,10 +734,10 @@ SOMAExperimentAxisQuery <- R6::R6Class(

#' @description Loads the query as a Seurat \code{\link[SeuratObject]{Assay}}
#'
#' @param X_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_xlayers()}
#' @param obs_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index()}
#' @param var_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index(axis = 'var')}
#' @param var_column_names \Sexpr[results=rd]{tiledbsoma:::rd_outgest_metadata_names(axis = 'var')}
#' @param X_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_xlayers()}
#' @param obs_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index()}
#' @param var_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index(axis = 'var')}
#' @param var_column_names NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_metadata_names(axis = 'var')}
#' @param drop_levels Drop unused levels from \code{var} factor columns
#'
#' @return An \code{\link[SeuratObject]{Assay}} object
@@ -839,8 +839,8 @@ SOMAExperimentAxisQuery <- R6::R6Class(
#' @param varm_layer Name of the array in \code{varm} to load as the
#' feature loadings; by default, will try to determine \code{varm_layer}
#' from \code{obsm_layer}
#' @param obs_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index()}
#' @param var_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index(axis = 'var')}
#' @param obs_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index()}
#' @param var_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index(axis = 'var')}
#'
#' @return A \code{\link[SeuratObject]{DimReduc}} object
#'
@@ -1012,7 +1012,7 @@ SOMAExperimentAxisQuery <- R6::R6Class(
#' @description Loads the query as a Seurat \link[SeuratObject:Graph]{graph}
#'
#' @param obsp_layer Name of array in \code{obsp} to load as the graph
#' @param obs_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index()}
#' @param obs_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index()}
#'
#' @return A \code{\link[SeuratObject]{Graph}} object
#'
@@ -1060,14 +1060,14 @@ SOMAExperimentAxisQuery <- R6::R6Class(
#' @description Loads the query as a
#' \code{\link[SingleCellExperiment]{SingleCellExperiment}} object
#'
#' @param X_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_xlayers('sce')}
#' @param obs_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index('sce')}
#' @param var_index \Sexpr[results=rd]{tiledbsoma:::rd_outgest_index('sce', 'var')}
#' @param obsm_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_mlayers('sce')}
#' @param obs_column_names \Sexpr[results=rd]{tiledbsoma:::rd_outgest_metadata_names('sce')}
#' @param var_column_names \Sexpr[results=rd]{tiledbsoma:::rd_outgest_metadata_names('sce', 'var')}
#' @param obsp_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_players('sce')}
#' @param varp_layers \Sexpr[results=rd]{tiledbsoma:::rd_outgest_players('sce', 'varp')}
#' @param X_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_xlayers('sce')}
#' @param obs_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index('sce')}
#' @param var_index NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_index('sce', 'var')}
#' @param obsm_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_mlayers('sce')}
#' @param obs_column_names NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_metadata_names('sce')}
#' @param var_column_names NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_metadata_names('sce', 'var')}
#' @param obsp_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_players('sce')}
#' @param varp_layers NOPENOPENOPE[results=rd]{tiledbsoma:::rd_outgest_players('sce', 'varp')}
#' @param drop_levels Drop unused levels from \code{obs} and \code{var} factor columns
#'
#' @return A \code{\link[SingleCellExperiment]{SingleCellExperiment}} object
2 changes: 1 addition & 1 deletion apis/r/R/ScalarMap.R
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ ScalarMap <- R6::R6Class(
inherit = MappingBase,
public = list(
#' @param type Limit the \code{ScalarMap} to a preset type; choose from:
#' \Sexpr[results=rd]{tiledbsoma:::rd_atomic()}
#' NOPENOPENOPE[results=rd]{tiledbsoma:::rd_atomic()}
#'
#' @return An instantiated \code{ScalarMap} object with the
#' type set to \code{type}
Loading

0 comments on commit 4325a12

Please sign in to comment.