/bakana-remotes

Remote readers for the bakana scRNA-seq analysis pipeline

Primary LanguageJavaScript

Remote readers for bakana

Unit tests Documentation NPM

Overview

This package provides a variety of remote readers for the bakana package, allowing us to perform scRNA-seq analyses on datasets from other sources. Currently we support:

  • takane-formatted -SummarizedExperiment objects in the gypsum bucket.
  • takane-formatted -SummarizedExperiment objects via the SewerRat API.
  • Selected count matrices and row/column DataFrames from ExperimentHub. (This is soft-deprecated as the datasets are a subset of those provided via gypsum.)

Quick start

Usage is as simple as:

import * as remotes from "bakana-remotes";
import * as bakana from "bakana";

// Add desired readers for unserialization.
bakana.availableReaders["gypsum"] = remotes.GypsumDataset;

For gypsum-sourced datasets, we can construct the following object, which uses the Zeisel brain single-cell dataset from 2015:

let gyp = new remotes.GypsumDataset("scRNAseq", "zeisel-brain-2015", "2023-12-14");

Similarly, SewerRat-sourced datasets can be pulled from shared filesystems (e.g., on HPCs) using the following:

let sewer = new remotes.SewerRatDataset(
    "/path/to/dataset", 
    url = "https://somewhere.edu/sewerrat"
);

These objects can then be used in an entry of datasets in bakana.runAnalysis().

We also provide the equivalent Result objects, if users just want to read existing analysis results:

let gyp2 = new remotes.GypsumDataset(
    "scRNAseq", 
    "ernst-spermatogenesis-2019", 
    "2023-12-21",
    path = "emptydrop"
);

let sewer2 = new remotes.SewerRatResult(
    "/path/to/result", 
    url = "https://somewhere.edu/sewerrat"
);

Check out the API documentation for more details.

Links

See the bakana documentation for more details on how to create a custom Dataset reader. Implementations of readers for other databases are welcome.