diff --git a/R/datasets.R b/R/datasets.R index 875a0d5..9fcae4d 100644 --- a/R/datasets.R +++ b/R/datasets.R @@ -93,6 +93,10 @@ flyem_scene4dataset <- memoise::memoise(function(dataset=NULL) { # there are some key layers here sc2=fafbseg::ngl_decode_scene(ds$versions[[1]]$neuroglancer) ll=c(sc$layers[1], sc2$layers[1], sc$layers[-1], sc2$layers[-1]) + if(!is.null(ds$orderedLayers) && all(ds$orderedLayers %in% names(ll))) { + # reorder layers based on clio config information putting preferred ones first + ll=ll[union(ds$orderedLayers, names(ll))] + } fafbseg::ngl_layers(sc) <- ll sc }) @@ -100,7 +104,7 @@ flyem_scene4dataset <- memoise::memoise(function(dataset=NULL) { flyem_servers4dataset <- memoise::memoise(function(dataset=NULL) { sc=flyem_scene4dataset(dataset) dl=flyem_dvidlayer4scene(sc) - u=dl$source$url + u=if(is.character(dl$source)) dl$source else dl$source$url dvid=sub("dvid-service=.*", "", u) dvid=sub("dvid://", "", dvid) dvid=sub("(https://[^/]+).*", "\\1", dvid) @@ -112,7 +116,10 @@ flyem_servers4dataset <- memoise::memoise(function(dataset=NULL) { flyem_dvidlayer4scene <- function(sc) { dvidlayer <- sapply(sc$layers, function(x) isTRUE(try(grepl("dvid", x$source$url), silent = T))) - # if(sum(dvidlayer)!=1) + if(sum(dvidlayer)<1) { + # try again just with source + dvidlayer <- sapply(sc$layers, function(x) isTRUE(try(grepl("dvid", x$source), silent = T))) + } # warning("Unable to extract a unique DVID layer!") dl=sc$layers[[min(which(dvidlayer))]] dl