Skip to main content

Multi-task framework for single-cell multimodal data (classification, dimension reduction, feature selection, simulation, augmentation) across RNA / ADT / ATAC.

Project description

Matilda: Multi-task learning from single-cell multimodal omics


Matilda is a multi-task framework for learning from single-cell multimodal omics data. Matilda leverages the information from the multi-modality of such data and trains a neural network model to simultaneously learn multiple tasks including data simulation, dimension reduction, visualization, classification, and feature selection.

For more details, please check out our publication.


This repository packages Matilda as a Python package (pip install matilda-sc, import matilda) and an R package, wrapping the unchanged published engine, with documentation and runnable Colab tutorials.

Install

Python (import name matilda; PyPI distribution matilda-sc):

pip install matilda-sc

R (Python is provisioned automatically by basilisk, so you never install or manage it):

remotes::install_github("PYangLab/Matilda", subdir = "matilda-r")

Two interfaces, one engine

Matilda ships as a Python package (import matilda) and an R package (matilda, operating on a SingleCellExperiment). Both call the same engine, so on the same hardware they give the same result. Pick the interface that matches your workflow; see the documentation for both APIs and full tutorials.

Quickstart (Python)

Work with in-memory AnnData (or arrays, or file paths) and get results back as objects. After train, there is one verb per task: classify / reduce / markers / simulate.

import matilda

# rna/adt/atac: AnnData | ndarray | scipy.sparse | path | None
# labels: a vector, an `.obs` column name, or a .csv path (string or numeric labels)
fit = matilda.train(rna, adt=adt, atac=atac, labels="cell_type")

res = matilda.classify({"rna": q_rna, "adt": q_adt, "atac": q_atac},
                       model=fit, query_labels=q_labels)
res.predictions        # DataFrame: cell_id, real, predicted, probability
res.celltype_accuracy  # DataFrame: celltype, accuracy, n

lat = matilda.reduce({"rna": rna, "adt": adt, "atac": atac}, model=fit)                        # lat.latent
mk  = matilda.markers({"rna": rna, "adt": adt, "atac": atac}, model=fit, labels="cell_type")   # mk.markers
sim = matilda.simulate({"rna": rna, "adt": adt, "atac": atac}, model=fit, celltype="B.Naive", n=200, labels="cell_type")  # sim.simulated

The modality combination is inferred automatically (RNA only, RNA+ADT for CITE-seq, RNA+ATAC for SHARE-seq, all three for TEA-seq). classify reconciles features automatically: if the query is missing some of the model's features it takes the per-modality reference intersection (real values, no zero-padding), retrains, and classifies; res.retrained / res.common_features report what happened. See the Quickstart and API reference for the full surface.

Citation

If you use Matilda, please cite the Matilda paper (see the Citation page).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matilda_sc-0.2.1.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matilda_sc-0.2.1-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file matilda_sc-0.2.1.tar.gz.

File metadata

  • Download URL: matilda_sc-0.2.1.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for matilda_sc-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2af27a2b0c1862d90f1bc2deb1cdea9716063312a9e3e605d31babff87752ed9
MD5 abe6c2562ec965e488750ddddecaacc7
BLAKE2b-256 9ced066f60563468b52c47b92003b82fcd99340dcda14972c8a6b34944414d3b

See more details on using hashes here.

File details

Details for the file matilda_sc-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: matilda_sc-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 41.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for matilda_sc-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9f91c60b751b0431c732b5bd0c5bdeee5b109dc92c5fb0679def83b4fa6d76f
MD5 ae9252a7421947e2b3445bbd948282d2
BLAKE2b-256 153d1ff7325de5193370befa14348aa0cbc04e18cc39f008b3a8819583b27378

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page