PANDA / README.md
bryan7264's picture
add model card with yaml front-matter
b255489 verified
|
Raw
History Blame Contribute Delete
2.39 kB
---
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.