Name Mode Size
R 040000
man 040000
src 040000
tests 040000
vignettes 040000
.Rbuildignore 100644 0 kb
.gitignore 100644 0 kb
DESCRIPTION 100644 1 kb
LICENSE 100644 1 kb
NAMESPACE 100644 1 kb
NEWS.md 100644 1 kb
README.md 100644 4 kb
README.md
# scPassport 🧬 > A passport system for single-cell objects. Stamp your Seurat, SingleCellExperiment, or SummarizedExperiment data with full metadata, lineage tracking, and processing logs — all stored inside the `.rds` file itself. --- ## Installation ```r # Install from GitHub remotes::install_github("sedatkacar56/scPassport") ``` --- ## What It Does Every object gets a **passport** that travels with it forever: | Object Type | Passport Location | Processing Log Location | |---|---|---| | Seurat | `@misc$passport` | `@misc$processing_log` | | SingleCellExperiment | `metadata(obj)$passport` | `metadata(obj)$processing_log` | | SummarizedExperiment | `metadata(obj)$passport` | `metadata(obj)$processing_log` | | Section | Fields | |---|---| | Identity | object_id, rds_self (RDS number), created | | Animal | animal_id, species, sex, age, condition, tissue | | Experiment | project, researcher, date, notes | | Lineage | parent_id, rds_parent, lineage chain, children, rds_children | | Custom | anything you want to add | | Processing Log | every step logged with cell count + timestamp | --- ## Quick Start ### Seurat ```r library(scPassport) # Stamp your object — popup opens, fill the form WTHeme <- scPassport(WTHeme) # Log processing steps WTHeme <- NormalizeData(WTHeme) WTHeme <- log_step(WTHeme, "NormalizeData", params = list(method = "LogNormalize")) # Stamp a child subset — parent linked automatically EndofrHeme <- subset(WTHeme, subset = cell_type == "Endothelial") EndofrHeme <- scPassport(EndofrHeme, parent = WTHeme) # Read passport anytime read_passport(EndofrHeme) ``` ### SingleCellExperiment ```r library(scPassport) library(SingleCellExperiment) sce <- SingleCellExperiment(assays = list(counts = count_matrix)) # Same functions — passport goes into metadata(sce)$passport sce <- scPassport(sce) sce <- log_step(sce, "scran normalization") read_passport(sce) ``` ### SummarizedExperiment ```r library(scPassport) library(SummarizedExperiment) se <- SummarizedExperiment(assays = list(counts = count_matrix)) # Same functions — passport goes into metadata(se)$passport se <- scPassport(se) se <- log_step(se, "DESeq2 normalization") read_passport(se) ``` --- ## Output of `read_passport()` ``` ========== PASSPORT ========== Object ID : EndofrHeme RDS Self : 225 Created : 2026-03-09 10:34:12 -------- Animal -------- Animal ID : M01 Species : Rattus norvegicus Sex : male Age : P60 Condition : Heme Tissue : Lung - Endothelial -------- Experiment -------- Project : HEME rat PROJECT Researcher : Sedat Date : 2026-03-09 Notes : rpca integrated, subset from WTHeme -------- Lineage -------- Parent : WTHeme RDS Parent : 224 Chain : WTHeme Children : gCapC, gCapB, gCapD RDS Children: 226, 227, 228 -------- Custom Fields -------- integration_type: rpca ILMN_name : ILMN_5564 ======= PROCESSING LOG ======= [1] NormalizeData | 54184 cells | 2026-03-09 ... [2] RunPCA | 54184 cells | 2026-03-09 ... [3] Subset Endothelial | 12453 cells | 2026-03-09 ... ============================== ``` --- ## Functions | Function | Description | |---|---| | `scPassport(obj)` | Open popup to fill/update passport | | `scPassport(obj, parent = WTHeme)` | Stamp child, auto-link to parent | | `scPassport(obj, read = TRUE)` | Print passport to console | | `read_passport(obj)` | Print passport to console | | `log_step(obj, "step name", params = list(...))` | Log a processing step | Works with **Seurat**, **SingleCellExperiment**, and **SummarizedExperiment** objects. --- ## Author **Sedat Kacar** Pulmonary Post Doc — Indiana University *Praise be to Allah (SWT)*