{"id":19312476,"url":"https://github.com/exaexa/panelbuilder","last_synced_at":"2025-07-28T12:36:11.174Z","repository":{"id":149763921,"uuid":"370437804","full_name":"exaexa/panelbuilder","owner":"exaexa","description":"Panel optimization and unmixing tool for multicolor and spectral cytometry","archived":false,"fork":false,"pushed_at":"2025-03-06T11:09:10.000Z","size":272,"stargazers_count":5,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T06:24:15.880Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exaexa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2021-05-24T17:44:56.000Z","updated_at":"2025-03-06T11:09:14.000Z","dependencies_parsed_at":"2023-04-25T17:32:47.115Z","dependency_job_id":null,"html_url":"https://github.com/exaexa/panelbuilder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fpanelbuilder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fpanelbuilder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fpanelbuilder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fpanelbuilder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exaexa","download_url":"https://codeload.github.com/exaexa/panelbuilder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248563717,"owners_count":21125339,"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":[],"created_at":"2024-11-10T00:34:57.207Z","updated_at":"2025-04-12T11:42:19.546Z","avatar_url":"https://github.com/exaexa.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# PanelBuildeR\n\nA small R Shiny app for base processing of flow cytometry samples. Main\nfunctions include:\n\n- advanced acquisition of clean spectra from single-stains\n- exporting and importing saved spectra in interoperable JSON format\n- combining spectra in panels, calculating SNRs (and some other useful metrics)\n  for the spectra combinations\n- multicolor and spectral unmixing/compensation\n\nThe functionality is mostly cytometer- and method-agnostic, and should\ngenerally work with anything that produces FCS3 files. We have successfully\napplied this to data from several cytometer vendors (both spectral and the\n\"traditional\" multicolor).\n\n#### Acknowledgements\n\nPanelBuildeR was developed at the [IOCB Prague](https://www.uochb.cz/)\nand [IHBT Prague](https://www.uhkt.cz/),\nin cooperation with [Liston Lab](http://www.liston.babraham.ac.uk/)\nof the [Babraham Institute](https://www.babraham.ac.uk/).\nThe development was supported by the Czech node of [ELIXIR](https://elixir-europe.org/),\nthe European infrastructure for life science.\n\n\u003cimg src=\"media/uochb.svg\" alt=\"IOCB logo\" height=\"64px\"\u003e   \u003cimg src=\"media/uhkt.svg\" alt=\"IHBT logo\" height=\"64px\"\u003e   \u003cimg src=\"media/babraham.svg\" alt=\"Babraham Institute logo\" height=\"64px\"\u003e   \u003cimg src=\"media/elixir.svg\" alt=\"ELIXIR logo\" height=\"64px\"\u003e\n\n## Screenshot\n\n![screenshot](media/screenshot.png)\n\n## Available algorithms \u0026 tools\n\n- Spectra acquisition:\n  - cleaning spectra with non-linear regression (e.g.: remove harsh\n    autofluorescence from a singlestain with dim antigen/fluorochrome\n    combination)\n  - Theil-Sen etimation (extremely noise- and outlier-resistant)\n- Panel quality estimation using signal-to-noise ratios\n  - Estimation of spectra of hypothetical singlestains from available\n    data about antigen and fluorochrome brightness\n  - (Not yet implemented:) finding of optimal panel assignments\n- Unmixing\n  - non-linear regression (the implemented variant is similar to non-negative\n    least squares, but also supports non-negative residuals to better capture\n    the incoming Poisson noise)\n  - OLS and several weighted variants thereof\n  - MAPE-like unmixing\n  - some useful data exported FCS files, e.g. unmixing RMSE and specific residuals\n  - simple post-unmixing compensation\n\n## Installation\n\nYou can install this using `devtools` directly from the GitHub repository. You will first need the unmixing package `nougad`:\n\n```r\ndevtools::install_github('exaexa/nougad')\n```\n\nCheck out the [`nougad`\ndocumentation](https://github.com/exaexa/nougad/blob/master/README.md) for some\nhelpful hints about installation; in particular there might be very desirable\nhardware-accelerated variants.\n\nAfter that, install PanelBuildeR:\n\n```r\ndevtools::install_github('exaexa/panelbuilder')\n```\n\nOnce the package is installed, simply run the `panelbuilder()` function:\n\n```r\nlibrary(panelbuilder)\npanelbuilder()\n```\n\nYou should get a browser window open with the PanelBuildeR UI running.\n\n## Quick How-To\n\n- Use the menu on the left side to navigate\n- Import spectra from singlestains on the \"Import\" page. Take care with\n  proper annotation of the spectra, you will need it later. Do not forget to\n  measure the autofluorescence!\n- On \"Spectra\" page, select spectra that you want to use. You will see them on\n  \"Panel\" page.\n- **Panel design:** If you imported multiple spectra that describe the same\n  antigen, you may switch them on the \"Panel\" page now, trying you multiple\n  variants of your panel. In some cases, the program may have enough\n  information to estimate the spectra from singlestains that you did not import,\n  which you can use too. This gives some estimate of how the panel will perform\n  before you try it with real reagents and cells.\n- **Unmixing:** You may use the imported singlestains on the \"Unmixing\" page,\n  for unmixing/compensating any FCS file that contains matching channels. The\n  unmixing will use the antigen/fluorochrome combination specified on the\n  \"Panel\" page.\n\n## Development\n\nPanelBuildeR is designed for easy modification, so that we can quickly try\nvarious new ideas and algorithms for processing the samples and spectra. To get\na \"development\" environment, clone the repository, and use `test.R` for\nbootstrapping and running a local installation:\n\n```r\ngit clone https://github.com/exaexa/panelbuilder.git\ncd panelbuilder\nR -f test.R\n```\n\nThe software is new, there may be bugs and compatibility problems.\nIf anything looks fishy, feel free to open an issue!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexaexa%2Fpanelbuilder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexaexa%2Fpanelbuilder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexaexa%2Fpanelbuilder/lists"}