This file reads a liger object stored in RDS files under all kinds of types.
A liger object with in-memory data created from package version since 1.99.
A liger object with on-disk H5 data associated, where the link to H5 files will be automatically restored.
A liger object created with older package version, and can be updated to the latest data structure by default.
Arguments
- filename
Path to an RDS file of a
liger
object of old versions.- dimredName
The name of variable in
cellMeta
slot to store the dimensionality reduction matrix, which originally located intsne.coords
slot. Default"tsne.coords"
.- clusterName
The name of variable in
cellMeta
slot to store the clustering assignment, which originally located inclusters
slot. Default"clusters"
.- h5FilePath
Named character vector for all H5 file paths. Not required for object run with in-memory analysis. For object containing H5-based analysis (e.g. online iNMF), this must be supplied if the H5 file location is different from that at creation time.
- update
Logical, whether to update an old (<=1.99.0)
liger
object to the currect version of structure. DefaultTRUE
.
Value
New version of liger object
Examples
# Save and read regular current-version liger object
tempPath <- tempfile(fileext = ".rds")
saveRDS(pbmc, tempPath)
pbmc <- readLiger(tempPath, dimredName = NULL)
#> ℹ Detected <liger> object with up-to-date structure.
# Save and read H5-based liger object
h5Path <- system.file("extdata/ctrl.h5", package = "rliger")
h5tempPath <- tempfile(fileext = ".h5")
file.copy(from = h5Path, to = h5tempPath)
#> [1] TRUE
lig <- createLiger(list(ctrl = h5tempPath))
#> Found more than one class "H5D" in cache; using the first, from namespace 'rliger'
#> Also defined by ‘hdf5r’
#> Found more than one class "H5D" in cache; using the first, from namespace 'rliger'
#> Also defined by ‘hdf5r’
#> Found more than one class "H5D" in cache; using the first, from namespace 'rliger'
#> Also defined by ‘hdf5r’
#> ! No human mitochondrial gene found in the union of dataset "ctrl"
#> ℹ calculating QC for dataset "ctrl"
#>
#> ℹ Updated QC variables: "nUMI", "nGene", "mito", "ribo", and "hemo"
#> ℹ calculating QC for dataset "ctrl"
#> ✔ calculating QC for dataset "ctrl" ... done
#>
tempPath <- tempfile(fileext = ".rds")
saveRDS(lig, tempPath)
lig <- readLiger(tempPath, h5FilePath = list(ctrl = h5tempPath))
#> ℹ Detected <liger> object with up-to-date structure.
#> ℹ Restoring dataset "ctrl"
#> Found more than one class "H5D" in cache; using the first, from namespace 'rliger'
#> Also defined by ‘hdf5r’
#> ✔ Restoring dataset "ctrl" ... done
#>
if (FALSE) {
# Read a old liger object <= 1.0.1
# Assume the dimensionality reduction method applied was UMAP
# Assume the clustering was derived with Louvain method
lig <- readLiger(
filename = "path/to/oldLiger.rds",
dimredName = "UMAP",
clusterName = "louvain"
)
}