Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mcanouil/insane

An Interactive Web Application for Quality Control and Analysis of Insulin Secretion from Pancreatic Beta Cells
https://github.com/mcanouil/insane

beta-cells endoc-betah1 insulin-secretion pancreas r r-package rstats shiny statistics stats

Last synced: about 1 month ago
JSON representation

An Interactive Web Application for Quality Control and Analysis of Insulin Secretion from Pancreatic Beta Cells

Awesome Lists containing this project

README

        

---
output: github_document
---

```{r, echo = FALSE}
library(knitr)
library(gifski)
opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)

gif_template <- gifski(
png_files = list.files(
path = dirname(opts_chunk$get("fig.path")),
pattern = "template_",
full.names = TRUE
),
gif_file = paste0(opts_chunk$get("fig.path"), "template.gif"),
width = 1920 * 2/3, height = 1080 * 2/3,
delay = 3,
loop = TRUE,
progress = FALSE
)

if (
file.exists("man/figures/insane_app.mp4") &
!file.exists(paste0(opts_chunk$get("fig.path"), "insane_app.gif"))
) {
system("ffmpeg -i man/figures/insane_app.mp4 -vf fps=1 man/figures/insane_app%04d.png")
gif_app <- gifski(
png_files = list.files(
path = dirname(opts_chunk$get("fig.path")),
pattern = "insane_app.*.png",
full.names = TRUE
),
gif_file = paste0(opts_chunk$get("fig.path"), "insane_app.gif"),
width = 1920 * 2/3,
height = 1080 * 2/3,
delay = 0.50,
loop = TRUE,
progress = FALSE
)
unlink(list.files(
path = dirname(opts_chunk$get("fig.path")),
pattern = "insane_app.*.png",
full.names = TRUE
))
}
gif_app <- paste0(opts_chunk$get("fig.path"), "insane_app.gif")
```

# INsulin Secretion ANalysEr

[![GitHub
tag](https://img.shields.io/github/tag/mcanouil/insane.svg?label=latest%20tag&include_prereleases)](https://github.com/mcanouil/insane)
[![Codecov test
coverage](https://codecov.io/gh/mcanouil/insane/branch/main/graph/badge.svg)](https://app.codecov.io/gh/mcanouil/insane/tree/main/)
[![R-CMD-check](https://github.com/mcanouil/insane/workflows/R-CMD-check/badge.svg)](https://github.com/mcanouil/insane/actions)
[![CRAN\_Status\_Badge](https://www.r-pkg.org/badges/version-ago/insane)](https://cran.r-project.org/package=insane)
[![cran
checks\_worst](https://badges.cranchecks.info/worst/insane.svg)](https://cran.r-project.org/web/checks/check_results_insane.html)
[![CRAN\_Download\_total](https://cranlogs.r-pkg.org/badges/insane)](https://cran.r-project.org/package=insane)
[![DOI](https://zenodo.org/badge/170500704.svg)](https://zenodo.org/badge/latestdoi/170500704)

A user-friendly interface, using Shiny, to analyse glucose-stimulated insulin secretion (GSIS) assays in pancreatic beta cells or islets.
The package allows the user to import several sets of experiments from different spreadsheets and to perform subsequent steps: summarise in a tidy format, visualise data quality and compare experimental conditions without omitting to account for technical confounders such as the date of the experiment or the technician.
Together, insane is a comprehensive method that optimises pre-processing and analyses of GSIS experiments in a friendly-user interface.
The Shiny App was initially designed for EndoC-betaH1 cell line following method described in Ndiaye et al., 2017 (https://doi.org/10.1016/j.molmet.2017.03.011).

## Installation

```{r, eval = FALSE}
# Install insane from CRAN:
install.packages("insane")

# Or the the development version from GitHub:
# install.packages("remotes")
remotes::install_github("mcanouil/insane")
```

```{r, eval = FALSE}
library("insane")
go_insane()
```
```{r, echo = FALSE}
include_graphics(gsub(".*/man", "man", gif_app))
```

## Overview

The Shiny (R package) application __insane__ (*INsulin Secretion ANalysEr*) provides a web interactive tool to import experiments of insulin secretion using cell lines such as EndoC-βH1.

1. [Excel Template](#excel-template-top)
2. [The App](#the-app-top)
1. [Technical Quality-Control](#technical-quality-control-top)
2. [Statistical analyses](#statistical-analyses-top)
3. [List of Outliers (Issues Detected)](#list-of-outliers-issues-detected-top)

### Excel Template ([top](#overview))

An Excel template is provided within the app to help users import their experiments in an easy way.

```{r, echo = FALSE}
include_graphics(gsub(".*/man", "man", gif_template))
```

### The App ([top](#overview))

__insane__ provides a user-friendly interface which can handle several projects separately.

```{r, echo = FALSE}
include_graphics(paste0(opts_chunk$get("fig.path"), "app_001.png"))
```

#### Technical Quality-Control ([top](#overview))

__insane__ performs technical quality-control of the optical density measured in each steps of the experiments:

* blank (*BLANK*),
* lysat (*LYSATE*),
* supernatant (*SUPERNATANT1* and *SUPERNATANT2*).

This technical quality-control step checks:

* the variability among the duplicated optical density measures of each samples;
* the variability in the blank curves (intercept and slope estimates) among all experiments in a project.

```{r, echo = FALSE}
include_graphics(paste0(opts_chunk$get("fig.path"), "app_002.png"))
```

#### Statistical analyses ([top](#overview))

__insane__ performs statistical analyses of the experimental conditions, *e.g.*, one silenced gene (*siGENE*) compared to an insulin secretion *reference* (*siNTP*) in two stimulation conditions (*Glc* and *Glc + A*).

Conditions are compared using a linear regression with `Date` and `Operator` as covariates (if needed) to control for heterogeneity.

* Using all experiments in the selected project

* Boxplot version

```{r, echo = FALSE, out.width = "65%"}
include_graphics(paste0(opts_chunk$get("fig.path"), "app_003.png"))
```

* Histogram version

```{r, echo = FALSE, out.width = "65%"}
include_graphics(paste0(opts_chunk$get("fig.path"), "app_004.png"))
```

* Using some of the experiments in the selected project

```{r, echo = FALSE, out.width = "65%"}
include_graphics(paste0(opts_chunk$get("fig.path"), "app_005.png"))
```

If and when some experiments are failing any of the technical quality-controls, a summary of the issues regarding the selected experiments can be displayed using the button `Show Issues in the Selected Experiments`.

```{r, echo = FALSE, out.width = "50%"}
include_graphics(paste0(opts_chunk$get("fig.path"), "app_006.png"))
include_graphics(paste0(opts_chunk$get("fig.path"), "app_007.png"))
```

#### List of Outliers (Issues Detected) ([top](#overview))

A comprehensive list of all issues detected in the selected project is available in an `Outliers` tab.

```{r, echo = FALSE}
include_graphics(paste0(opts_chunk$get("fig.path"), "app_008.png"))
```

*Note*: The `Outliers` tab is displayed only if there is at least one issue in the selected project.

## Getting help

If you encounter a clear bug, please file a minimal reproducible example on [github](https://github.com/mcanouil/insane/issues).
For questions and other discussion, please contact the package maintainer.

---

Please note that this project is released with a [Contributor Code of Conduct](https://github.com/mcanouil/insane/blob/main/.github/CODE_OF_CONDUCT.md).
By participating in this project you agree to abide by its terms.