File size: 2,392 Bytes
0a1c815
b255489
 
 
 
 
 
 
 
 
0a1c815
 
b255489
0a1c815
b255489
 
0a1c815
b255489
0a1c815
b255489
0a1c815
b255489
0a1c815
b255489
 
 
 
 
 
 
 
 
 
 
 
0a1c815
b255489
0a1c815
 
b255489
 
 
 
0a1c815
b255489
 
 
 
0a1c815
 
b255489
0a1c815
b255489
 
 
0a1c815
b255489
 
 
 
 
 
 
 
0a1c815
 
b255489
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
---
license: mit
tags:
  - single-cell
  - scRNA-seq
  - cell-type-classification
  - contrastive-learning
  - domain-adaptation
library_name: pytorch
pipeline_tag: feature-extraction
---

# PANDA — Pan-tissue Adversarial Normalized Domain-invariant Anchored MLP

Prototype-anchored MLP classifier for scRNA-seq cell identity across skin, hematopoietic, and pancreatic tissues.
Trained under a composite of SupCon + VICReg + prototype-InfoNCE + GRL dataset+depth adversary + HSIC decorrelation + prototype-repulsion.

Two variants: **PANDA-PCA** and **PANDA-Marker** (adds a marker gene channel).

Code + paper: https://github.com/bryanc5864/PRISM

## Contents

| Path | Description |
|---|---|
| `checkpoints/{system}/{pca,marker}/panda_final.pt` | Final trained weights per system × variant (6 core models) |
| `checkpoints/pan_skin_dingwall_derm/panda_final.pt` | Line C: PANDA-Marker trained on Dingwall Derm labels |
| `data/corpus/{system}/harmonized/` | Training corpora (h5ad + stats + PCA basis) |
| `data/external_labels/` | Paper-supplement label files per source study |
| `data/processed/dingwall_replica/` | Independent scanpy reproduction of Dingwall Seurat pipeline |
| `discovery/` | Discovery-analysis outputs backing every paper claim |
| `figures/` | Main + supplement + biology figures + merged PDFs |
| `panda/`, `scripts/` | Model + analysis code (also on GitHub) |
| `PAPER.tex`, `PAPER.pdf` | Manuscript |
| `README.md` | Full end-to-end reproduction recipe |

## Quick fetch

```bash
# essentials only (~30 GB)
huggingface-cli download bryan7264/PANDA \
    --local-dir . \
    --include "checkpoints/**" "data/corpus/**" "data/external_labels/**" "discovery/**"

# individual system
huggingface-cli download bryan7264/PANDA \
    --local-dir . \
    --include "data/corpus/pan_skin/**" "checkpoints/pan_skin/**"
```

## Usage

```python
import torch
from panda.model import PANDAEncoder

ck = torch.load("checkpoints/pan_skin/marker/panda_final.pt", map_location="cpu",
                weights_only=False)
model = PANDAEncoder(variant="marker", n_pca=50,
                     n_markers=len(ck["marker_genes"]),
                     n_classes=len(ck["classes"]), n_sub=3,
                     n_datasets=len(ck["datasets"]))
model.load_state_dict(ck["model"])
model.eval()
```

See PAPER.pdf for full experimental setup and README.md for the reproduction recipe.