Project your data

Send an expression matrix and get back, for every cell, coordinates in the shared space and a label or an abstention with its reason.

Connect to a projection service

There is no hosted service yet. This page sends your matrix to a projection service you run yourself, from a clone of the repository, and to nothing else:

pip install -r service/requirements.txt
python -m service.app

Not checked yet.

Send a matrix

Supported label space

A projection is only meaningful onto cell types the atlas actually supports. The service returns no label when a query falls outside this space rather than guessing at it.

Service contract

What this page sends and what comes back. The full contract is in docs/service/projection-api.md.

Schema illustration. Every value below is a placeholder showing the response shape. None of them is a measurement.
POST /api/project
Content-Type: multipart/form-data

  modality                      : "rna" | "prot"
  matrix                        : CSV or TSV (or a DIA-NN report), features in rows, cells in columns
  restrict_to_supported_classes : "true" | "false"   (optional, default "false")

200 Response
{
  "atlas_version"        : <string>,
  "model_version"        : <string>,
  "n_cells"              : <int>,
  "n_features_matched"   : <int>,
  "n_features_unmatched" : <int>,
  "value_scale"          : {"detected": <string>, "transformed": <bool>},
  "label_space"          : {"restricted_to_supported_classes": <bool>, "candidate_classes": [<string>, ...]},
  "gene_id_resolution"   : {"matched": <int>, "unmapped": <int>, "ambiguous": <int>, ...},
  "cells": [
    {
      "cell_id"        : <string>,
      "coordinates"    : [<float>, <float>, <float>],
      "observed_genes" : <int>,
      "label"          : <string>,
      "label_set"      : [<string>, ...],
      "confidence"     : <float 0-1>,
      "abstained"      : false
    },
    {
      "cell_id"        : <string>,
      "coordinates"    : [<float>, <float>, <float>],
      "observed_genes" : <int>,
      "label"          : null,
      "label_set"      : [],
      "confidence"     : null,
      "abstained"      : true,
      "abstain_reason" : "coverage_too_low" | "outside_supported_region"
                         | "no_confident_label" | "ambiguous_between_classes"
    }
  ]
}

label_set is a conformal prediction set at the stated coverage level, not a single argmax. abstained is true when the query falls outside the region the atlas has evidence for.