## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")

## ----fixtures-----------------------------------------------------------------
library(projectData)
source(system.file("examples", "fixtures.R", package = "projectData"))

lib <- fixture_library()
fixture_package(lib, "rnaseqData", "1.0.0", lazy = TRUE, datasets = list(
  counts_rna = list(counts_rna = matrix(1:6, 2)),
  meta_rna   = list(meta_rna = data.frame(sample = c("a", "b")))
))
fixture_package(lib, "proteinData", "2.1.0", lazy = FALSE, datasets = list(
  counts_prot = list(counts_prot = matrix(7:12, 2)),
  meta_prot   = list(meta_prot = data.frame(sample = c("a", "b")))
))

## ----attach-------------------------------------------------------------------
data_attach("rnaseqData", lib.loc = lib)

## ----use----------------------------------------------------------------------
data_config(messages = TRUE)
counts_rna

## ----attach-second------------------------------------------------------------
data_attach("proteinData", lib.loc = lib)
counts_prot

## ----catalog------------------------------------------------------------------
data_catalog()[, c("collection", "exposed_name", "resource", "state")]

## ----explicit-----------------------------------------------------------------
data_get("meta_prot")
data_get("meta_rna", collection = "rnaseqData")

## ----several------------------------------------------------------------------
str(data_get(c("meta_rna", "meta_prot")))

## ----get-unattached-----------------------------------------------------------
fixture_package(lib, "imagingData", "0.3.0", lazy = TRUE, datasets = list(
  counts_img = list(counts_img = matrix(13:18, 2))
))

counts_img <- data_get("counts_img", package = "imagingData", lib.loc = lib)
counts_img
"imagingData" %in% data_collections()$package[data_collections()$attached]

## ----query--------------------------------------------------------------------
data_detach()

fixture_package(lib, "rnaseqBatch2", "1.0.0", lazy = TRUE, datasets = list(
  counts_rna = list(counts_rna = matrix(101:106, 2)),
  meta_rna   = list(meta_rna = data.frame(sample = c("c", "d")))
))

data_query(c("rnaseqData", "rnaseqBatch2"), lib.loc = lib,
           id = c("batch1", "batch2"))[, c("collection", "exposed_name", "binding")]
nrow(data_collections())

## ----conflict, error = TRUE---------------------------------------------------
try({
data_attach(c("rnaseqData", "rnaseqBatch2"), lib.loc = lib, id = c("batch1", "batch2"))
counts_rna
})

## ----prefer-------------------------------------------------------------------
data_prefer("counts_rna", "batch1")
counts_rna

## ----prefer-others, error = TRUE----------------------------------------------
try({
meta_rna
})

## ----primary------------------------------------------------------------------
data_primary("batch1")
meta_rna

## ----get----------------------------------------------------------------------
data_get("counts_rna", collection = "batch2")

## ----suffix-------------------------------------------------------------------
data_attach("rnaseqBatch2", lib.loc = lib, id = "batch2", suffix = ".batch2",
            replace = TRUE)
counts_rna.batch2

## ----cleanup------------------------------------------------------------------
data_detach()

