diff --git a/DESCRIPTION b/DESCRIPTION index 270182f..b333e71 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: cytoviewer -Version: 1.1.2 +Version: 1.1.3 Title: An interactive multi-channel image viewer for R Description: This R package supports interactive visualization of multi-channel images diff --git a/NEWS b/NEWS index 4971faf..4685e50 100644 --- a/NEWS +++ b/NEWS @@ -1,30 +1,23 @@ Changes in version 0.1.0 (2022-11-14): - + initial version Changes in version 0.1.1 (2022-11-18): - + first working version Changes in version 0.1.2 (2022-11-28): - + allow selecting of cell types Changes in version 0.1.5 (2023-02-14): - + small fixes to solve check issues Changes in version 0.1.6 (2023-02-23): - + public release of cytoviewer on GitHub + main functionality done Changes in version 0.99.0 (2023-03-23): - + code preparations for Bioconductor submission Changes in version 0.99.1 (2023-04-12): - + code adjustments after Bioconductor approval + included reactive image / mask reading @@ -42,4 +35,7 @@ Changes in version 1.0.1 (2023-07-27): + added more tests and validation checks Changes in version 1.1.2 (2023-10-09): -+ vignette updates \ No newline at end of file ++ vignette updates + +Changes in version 1.1.3 (2023-10-19): ++ enlarged default display area and changed default color settings diff --git a/R/interface_cytoviewer.R b/R/interface_cytoviewer.R index 9cf69bf..ba4d1c8 100644 --- a/R/interface_cytoviewer.R +++ b/R/interface_cytoviewer.R @@ -203,7 +203,6 @@ colourInput(inputId = "color6", label = "Color", value = "blue")), hr(), - #icon = icon("fas fa-sliders-h"), startExpanded = FALSE), menuItem("Advanced controls", checkboxInput("outline", "Show cell outlines", @@ -266,7 +265,7 @@ tabsetPanel( tabPanel("Composite",box( withSpinner( - svgPanZoomOutput("imagePlot"), type = 6), + svgPanZoomOutput("imagePlot", width = "100%", height = "75vh"), type = 6), title = NULL, id = "expression", status = "primary", width = 12, height = NULL)), tabPanel("Channels", value = "tiles_tab", width = 12, diff --git a/R/utils_cytoviewer.R b/R/utils_cytoviewer.R index 43a756f..0e95c94 100644 --- a/R/utils_cytoviewer.R +++ b/R/utils_cytoviewer.R @@ -336,7 +336,7 @@ if (input$outline && !is.null(input$outline_by)){ if (input$outline_by == "") { - req(img_id) + req(img_id, cur_markers) cur_mask <- .get_mask(input, mask, img_id, cur_image) @@ -356,7 +356,7 @@ } else if (input$outline_by != "") { - req(img_id, cell_id) + req(img_id, cell_id, cur_markers) validate( need(is.null(dim(colData(object)[[input$outline_by]])), @@ -486,7 +486,7 @@ if (input$outline && !is.null(input$outline_by)){ if(input$outline_by == "") { - req(img_id) + req(img_id, markers) cur_mask <- .get_mask(input, mask, img_id, cur_image) @@ -507,7 +507,7 @@ } else if (input$outline_by != "") { - req(img_id, cell_id) + req(img_id, cell_id, markers) cur_entries <- length(unique(colData(object)[[input$outline_by]])) @@ -742,8 +742,8 @@ style = "color: black;padding-top: 0px"), style = "color: black; padding-top: 0px", lapply(seq_along(input$select_outline), function (i){ - cur_col <- c(brewer.pal(12, "Paired"), - brewer.pal(8, "Pastel2")[-c(3,5,8)], + cur_col <- c(brewer.pal(9, "Set1"), + brewer.pal(8, "Pastel2"), brewer.pal(12, "Set3")[-c(2,3,8,9,11,12)]) colourInput(inputId = paste0("color_outline",i), label = if (is.logical(colData(object)[[input$outline_by]])) { @@ -882,8 +882,8 @@ style = "color: black;padding-top: 0px"), style = "color: black; padding-top: 0px", lapply(seq_along(input$color_by_selection), function (i){ - cur_col <- c(brewer.pal(12, "Paired"), - brewer.pal(8, "Pastel2")[-c(3,5,8)], + cur_col <- c(brewer.pal(9, "Set1"), + brewer.pal(8, "Pastel2"), brewer.pal(12, "Set3")[-c(2,3,8,9,11,12)]) colourInput(inputId = paste0("color_by",i), label = if (is.logical(colData(object)[[input$color_by]])) { @@ -1072,7 +1072,7 @@ image, img_id, cell_id){ renderUI({ if(input$plotcells){ - box(withSpinner(svgPanZoomOutput("cellsPlot"),type = 6), + box(withSpinner(svgPanZoomOutput("cellsPlot", width = "100%",height = "75vh"),type = 6), title = NULL, id = "expression", status = "primary", diff --git a/README.md b/README.md index b65f807..c574a4d 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@ -[![codecov](https://codecov.io/gh/BodenmillerGroup/cytoviewer/branch/devel/graph/badge.svg)](https://app.codecov.io/gh/BodenmillerGroup/cytoviewer/tree/devel) [![docs](https://github.com/BodenmillerGroup/cytoviewer/actions/workflows/docs.yml/badge.svg)](https://github.com/BodenmillerGroup/cytoviewer/actions/workflows/docs.yml) +[![codecov](https://codecov.io/gh/BodenmillerGroup/cytoviewer/branch/devel/graph/badge.svg)](https://app.codecov.io/gh/BodenmillerGroup/cytoviewer/tree/devel) + @@ -17,16 +18,17 @@ cytometry and other highly multiplexed imaging techniques. The `cytoviewer` package is divided into image-level (Composite and Channels) and cell-level visualization (Masks). It allows users to overlay individual images with segmentation masks, integrates well -with [SingleCellExperiment](https://bioconductor.org/packages/release/bioc/html/SingleCellExperiment.html) -and [SpatialExperiment](https://bioconductor.org/packages/release/bioc/html/SingleCellExperiment.html) -objects for metadata visualization and supports image downloads. +with [SingleCellExperiment](https://bioconductor.org/packages/release/bioc/html/SingleCellExperiment.html) / [SpatialExperiment](https://bioconductor.org/packages/release/bioc/html/SingleCellExperiment.html) +and [CytoImageList](https://www.bioconductor.org/packages/release/bioc/html/cytomapper.html) +objects for metadata and image visualization and supports image downloads. ## Check status | Bioc branch | Checks | |:------------------------------------------:|:--------------------------:| -| Release | [![build-check-release](https://github.com/BodenmillerGroup/cytoviewer/workflows/build-checks-release/badge.svg)](https://github.com/BodenmillerGroup/cytoviewer/actions?query=workflow%3Abuild-checks-release) | -| Devel | [![build-check-devel](https://github.com/BodenmillerGroup/cytoviewer/workflows/build-checks-devel/badge.svg)](https://github.com/BodenmillerGroup/cytoviewer/actions?query=workflow%3Abuild-checks-devel) | +| Release | [![build-checks-release](https://github.com/BodenmillerGroup/cytoviewer/actions/workflows/build-checks-release.yml/badge.svg?branch=devel)](https://github.com/BodenmillerGroup/cytoviewer/actions/workflows/build-checks-release.yml) | +| Devel | [![build-checks-devel](https://github.com/BodenmillerGroup/cytoviewer/actions/workflows/build-checks-devel.yml/badge.svg?branch=devel)](https://github.com/BodenmillerGroup/cytoviewer/actions/workflows/build-checks-devel.yml) | + ## Requirements @@ -62,7 +64,7 @@ To load the package in your R session, type the following: library(cytoviewer) ``` -## Usage +## Basic usage ``` r library(cytoviewer) @@ -82,11 +84,14 @@ app <- cytoviewer(image = pancreasImages, if (interactive()) { - shiny::runApp(app, launch.browser = TRUE) + shiny::runApp(app) } ``` +For more detailed information on package usage and functionality, +please refer to [https://bodenmillergroup.github.io/cytoviewer/](https://bodenmillergroup.github.io/cytoviewer/). + ## Contributing For feature requests, please open an issue