{"id":19106774,"url":"https://github.com/bodenmillergroup/cytoviewer","last_synced_at":"2025-04-30T18:04:00.137Z","repository":{"id":89228176,"uuid":"566018233","full_name":"BodenmillerGroup/cytoviewer","owner":"BodenmillerGroup","description":"An interactive multi-channel image viewer for R","archived":false,"fork":false,"pushed_at":"2024-06-25T08:04:54.000Z","size":5248,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"devel","last_synced_at":"2025-04-12T21:45:58.029Z","etag":null,"topics":["bioconductor","imaging","r","shiny","visualization"],"latest_commit_sha":null,"homepage":"https://bodenmillergroup.github.io/cytoviewer/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BodenmillerGroup.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-14T20:00:38.000Z","updated_at":"2025-02-14T22:09:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"459fcc0e-7ec8-45ed-b2b9-fbeaecb83332","html_url":"https://github.com/BodenmillerGroup/cytoviewer","commit_stats":{"total_commits":103,"total_committers":7,"mean_commits":"14.714285714285714","dds":0.2038834951456311,"last_synced_commit":"78c3ded2d58371d87274c46b8faf30e7ccef1f2a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BodenmillerGroup%2Fcytoviewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BodenmillerGroup%2Fcytoviewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BodenmillerGroup%2Fcytoviewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BodenmillerGroup%2Fcytoviewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BodenmillerGroup","download_url":"https://codeload.github.com/BodenmillerGroup/cytoviewer/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251758162,"owners_count":21638988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioconductor","imaging","r","shiny","visualization"],"created_at":"2024-11-09T04:09:25.558Z","updated_at":"2025-04-30T18:04:00.100Z","avatar_url":"https://github.com/BodenmillerGroup.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"vignettes/imgs/cytoviewer_sticker.png\" align=\"right\" width=\"100\"/\u003e\n\n# cytoviewer\n\n\u003c!-- badges: start --\u003e\n\n[![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)\n\n\u003c!-- badges: end --\u003e\n\nAn interactive multi-channel image viewer for R.\n\nThis shiny application allows users to interactively visualize multi-channel images and segmentation masks generated by imaging mass 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) / [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.\n\nRead the **BMC Bioinformatics paper** here: [doi.org/10.1186/s12859-023-05546-z](https://doi.org/10.1186/s12859-023-05546-z).\n\n## Check status\n\n| Bioc branch |                                                                                                                 Checks                                                                                                                 |\n|:------------------------------------------:|:--------------------------:|\n|   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) |\n|    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)    |\n\n## Requirements\n\nThe `cytoviewer` package requires R version \\\u003e= 4.0. It builds on data objects and functions contained in the [cytomapper](https://bioconductor.org/packages/release/bioc/html/cytomapper.html) package.\n\n## Installation\n\nThe `cytoviewer` package can be installed from `Bioconductor` via:\n\n``` r\nif (!requireNamespace(\"BiocManager\", quietly = TRUE))\n    install.packages(\"BiocManager\")\n\nBiocManager::install(\"cytoviewer\")\n```\n\nThe development version of `cytoviewer` can be installed from Github via:\n\n``` r\nif (!requireNamespace(\"remotes\", quietly = TRUE))\n    install.packages(\"remotes\")\n\nremotes::install_github(\"BodenmillerGroup/cytoviewer\")\n```\n\nTo load the package in your R session, type the following:\n\n``` r\nlibrary(cytoviewer)\n```\n\n## Basic usage\n\n``` r\nlibrary(cytoviewer)\n\n# Load example datasets \nlibrary(cytomapper)\ndata(\"pancreasImages\")\ndata(\"pancreasMasks\")\ndata(\"pancreasSCE\")\n\n# Use cytoviewer with images, masks and object\napp \u003c- cytoviewer(image = pancreasImages, \n                  mask = pancreasMasks, \n                  object = pancreasSCE, \n                  img_id = \"ImageNb\", \n                  cell_id = \"CellNb\")\n\nif (interactive()) {\n  \n  shiny::runApp(app)\n\n  }\n```\n\nFor more detailed information on package usage and functionality, please refer to \u003chttps://bodenmillergroup.github.io/cytoviewer/\u003e.\n\n## Application overview\n\n![**Figure 1: cytoviewer interface and functionality.**](vignettes/imgs/cytoviewer_overview.png)\n\n**(A)** The supported functionality (right) of *cytoviewer* depends on the data inputs (left). To match information between the objects, cell (cell_id) and image (img_id) identifiers can be provided. SCE/SPE = *SingleCellExperiment*/*SpatialExperiment*.\n\n**(B)** The graphical user interface of *cytoviewer* is divided into a body, header, and sidebar. The body of *cytoviewer* includes the image viewer, which has three tabs: Composite (Image-level), Channels (Image-level), and Mask (Cell-level). Zooming is supported for Composite and Mask tabs. The package version, R session information, help page, and a drop-down menu for image downloads are located in the header. The sidebar menu has controls for sample selection, image visualization, mask visualization, and general settings. Scale bar: 150 µm\n\n**(C)** *cytoviewer* supports different viewing modes. Top: The \"channels\" tab of image-level visualization displays individual channels. Shown are Ecad (magenta), CD8a (cyan), and CD68 (yellow) marking tumor cells, CD8+ T cells, and myeloid cells, respectively. Center: The \"composite\" tab of image-level visualization visualizes image composites combining multiple channels. These composite images can be overlayed with cell outlines, which can be colored by cell-specific metadata. Shown here are cell outlines colored by cell area (continous value) and cell type (categorical value; tumor cells in white). Channel color settings are as follows for all markers: Contrast: 2,5; Brightness: 1; Gamma: 1.2. Bottom: The \"mask\" tab can be used to visualize segmentation masks that can be colored by cell-specific metadata. Shown here are segmentation masks colored by cell area (continuous) and cell type (categorical; tumor cells in magenta). Scale bars: 150 µm.\n\n**(D)** \"Image appearance\" controls can be used to add legends or titles and to change the scale bar length for image-level (top) and cell level (bottom) visualization. The cell-level mask plot depicts tumor (magenta), myeloid (yellow), and CD8+ T cells (cyan). Scale bars: 100 µm.\n\n**Adapted from Meyer et al., 2024**\n\n## Contributing\n\nFor feature requests, please open an issue [here](https://github.com/BodenmillerGroup/cytoviewer/issues).\n\nAlternatively, feel free to fork the repository, add your changes and issue a pull request.\n\n## Citation\n\nIf you are using `cytoviewer` in your work, please cite the paper as:\n\n```         \nMeyer, L., Eling, N., \u0026 Bodenmiller, B. (2024). cytoviewer: an R/Bioconductor package for interactive visualization \nand exploration of highly multiplexed imaging data. BMC Bioinformatics, doi.org/10.1186/s12859-023-05546-z\n```\n\n## Authors\n\n[Lasse Meyer](https://github.com/lassedochreden) lasse.meyer 'at' dqbm.uzh.ch\n\n[Nils Eling](https://github.com/nilseling) nils.eling 'at' dqbm.uzh.ch\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodenmillergroup%2Fcytoviewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbodenmillergroup%2Fcytoviewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodenmillergroup%2Fcytoviewer/lists"}