## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)

## ----install, eval=FALSE------------------------------------------------------
# if (!require("BiocManager", quietly = TRUE))
#     install.packages("BiocManager")
# 
# BiocManager::install("CLAMPData")

## ----load, message=FALSE------------------------------------------------------
library(CLAMPData)
library(ExperimentHub)

## ----list-resources-----------------------------------------------------------
list_clamp_data()

## ----list, message=FALSE, warning=FALSE---------------------------------------
p_counts <- GSE164416_DP_htseq_counts_txt_gz()
p_h5     <- human_gene_v2_5_alz_h5()
p_meta   <- islets_metadata_csv()

cat("Counts path:", p_counts, "\n")
cat("H5 path:", p_h5, "\n")
cat("Metadata path:", p_meta, "\n")

## ----read, message=FALSE, warning=FALSE---------------------------------------
# --- Counts Data (GSE164416) ---
counts <- read_islet_counts()
cat("Counts dimensions:", nrow(counts), "genes x", ncol(counts) - 1, "samples\n\n")
knitr::kable(counts[1:5, 1:6], caption = "Gene counts (first 5 genes)")

# --- Sample Metadata ---
meta <- read_islet_metadata()
cat("Metadata dimensions:", nrow(meta), "samples x", ncol(meta), "variables\n")
cat("Sample types:", paste(unique(meta$type), collapse = ", "), "\n\n")
knitr::kable(head(meta), caption = "Sample metadata (first 6 rows)")

## ----schema-------------------------------------------------------------------
clamp_h5_schema()

## ----validate, message=FALSE--------------------------------------------------
if (requireNamespace("rhdf5", quietly = TRUE)) {
  print(validate_clamp_h5(human_gene_v2_5_alz_h5()))
}

## ----expr, message=FALSE, warning=FALSE---------------------------------------
# --- HDF5 Gene-Set Priors ---
if (requireNamespace("rhdf5", quietly = TRUE)) {
  expr <- read_clamp_alz_expression()
  cat("Expression matrix:", nrow(expr), "genes x", ncol(expr), "samples\n")
} else {
    message("Install 'rhdf5' from Bioconductor to inspect HDF5 contents: ",
          "BiocManager::install('rhdf5')")
}

## ----session------------------------------------------------------------------
sessionInfo()

