adata.obs['dataset_group'] - string storing assignment to disease, query and control
adata.obs['OOR_state'] - boolean storing assignment to OOR state (e.g. known pop in simulation, IFN high in COVID19)
In first instance this should include utils for data splitting and checking for important columns. Then real disease datasets can be served via the API.
PBMC integrated dataset, with assignment of dataset group
COVID19 + PBMC datasets (disease specific cells = IFN high)
Methods
Methods are wrappers around a workflow (e.g. scVI + scArches + milo) with a specific selection of reference and query dataset.
Naming convention: integrationMethodID_diffMethodID_integrationReference_diffReference
scArches_atlas_milo_ctrl (PAC design)
scArches_atlas_milo_atlas (PA design)
scArches_atlas_scCODA_ctrl (scCODA PAC design)
scArches_atlas_labelUncertainty_atlas
scArches_atlas_labelUncertainty_atlas
Methods return:
adata.uns['sample_adata'] - sample-level anndata object, this can store method specific info in obs (samples) and var (groups of cells)
adata.uns['sample_adata'].varm['groups'] - sparse matrix storing assignment of cells to groups (used to compute fraction of OOR cells)
adata.uns['sample_adata'].obs['disease_enrichment_score'] - e.g. logFC for milo
adata.uns['sample_adata'].obs['disease_enrichment_signif'] - is the enrichment significant? binary (not all the methods have to store this)
Metrics
On aggregated cells: computes a fraction of OOR cells over groups of cells defined by methods. Then FPR/TPR/FDR/AUPRC are computed
On single-cells: TBD
API
Each method produces a statistic over groups of cells (e.g. clusters/nhoods/metacells)
Following structure of OpenProblems tasks
Datasets
Datasets consist of one anndata object with
adata.obs['dataset_group']
- string storing assignment to disease, query and controladata.obs['OOR_state']
- boolean storing assignment to OOR state (e.g. known pop in simulation, IFN high in COVID19)In first instance this should include utils for data splitting and checking for important columns. Then real disease datasets can be served via the API.
Methods
Methods are wrappers around a workflow (e.g. scVI + scArches + milo) with a specific selection of reference and query dataset. Naming convention:
integrationMethodID_diffMethodID_integrationReference_diffReference
scArches_atlas_milo_ctrl
(PAC design)scArches_atlas_milo_atlas
(PA design)scArches_atlas_scCODA_ctrl
(scCODA PAC design)scArches_atlas_labelUncertainty_atlas
scArches_atlas_labelUncertainty_atlas
Methods return:
adata.uns['sample_adata']
- sample-level anndata object, this can store method specific info inobs
(samples) andvar
(groups of cells)adata.uns['sample_adata'].varm['groups']
- sparse matrix storing assignment of cells to groups (used to compute fraction of OOR cells)adata.uns['sample_adata'].obs['disease_enrichment_score']
- e.g. logFC for miloadata.uns['sample_adata'].obs['disease_enrichment_signif']
- is the enrichment significant? binary (not all the methods have to store this)Metrics
API
Each method produces a statistic over groups of cells (e.g. clusters/nhoods/metacells)