MyNixOS website logo
Description

Selection and Ranking of Omics Biomarkers Combinations Made Easy.

Provides functions and a workflow to easily and powerfully calculating specificity, sensitivity and ROC curves of biomarkers combinations. Allows to rank and select multi-markers signatures as well as to find the best performing sub-signatures, now also from single-cell RNA-seq datasets. The method used was first published as a Shiny app and described in Mazzara et al. (2017) <doi:10.1038/srep45477> and further described in Bombaci & Rossi (2019) <doi:10.1007/978-1-4939-9164-8_16>, and widely expanded as a package as presented in the bioRxiv pre print Ferrari et al. <doi:10.1101/2022.01.17.476603>.

pages-build-deployment Lifecycle:experimental Codecov test coverage

Combiroc

The combiroc package is a totally new music in multi-markers analysis: an R package for efficient and easy combinatorial selection of biomarkers and sensitivity/specificity-driven prioritization of features.

Latest version introduces new features to work on single-cell RNAseq datasets too, selecting smaller markers sub-signatures that can be used to efficiently identify and annotate cell clusters.

This is the development version of CombiROC package (combiroc), code in this repo is work in progress and it is uploaded here "as-is" with no warranties implied. Improvements and new features will be added on a regular basis, please check on this github page for new features and releases.

The CombiROC approach was first released as a Shiny Application which is still available at combiroc.eu but it has limited features as well as low computational power and is not further maintained. If you need to cite the web-app please refer to Mazzara et al. Scientific Reports 2017 and Bombaci & Rossi, Methods Mol Biol 2019.

For full capabilities and customized analyses we suggest to use the R package instead. You can install the combiroc package from CRAN or, for all new and improved workflow features, the latest development version from this repo (see below).

If you are using the combiroc package in your research, please cite our "Less is more" bioRxiv preprint: Ferrari et al.Combiroc: when 'less is more' in bulk and single cell marker signatures. bioRxiv 2022.01.17.476603; doi: https://doi.org/10.1101/2022.01.17.476603

Combiroc bioRxiv preprint Supplementary material

The bioRxiv preprint's Supplementary Material 1 and 2 can be accessed here:

Installation (from CRAN)

Be aware that CRAN version is not necessarily in sync with the development version. Documentation on these pages refers to the latest development version, if you install combiroc from CRAN please refer to documentation from CRAN's release of combiroc.

# You can install combiroc pulling it from CRAN:
install.packages("combiroc")

Development version

# To install the most recent development version from this repository install "remotes" first:
install.packages("remotes")
library(remotes)
# remotes is a lightweight replacement of install functions from devtools
# if you already have devtools, you can also use devtools::install_github() 

# Then install the development version of CombiROC:
remotes::install_github("ingmbioinfo/combiroc", 
                        dependencies = TRUE, build_vignettes = TRUE)

Full Documentation - Tutorial

Full documentation is in the package's vignette. You can also find the rendered version of the vignette in the combiroc-package website created with pkgdown.

Quick start example

library(combiroc)

# load the preformatted demo dataset
# (you can load a dataset of yours using load_data() function: see full docs)
data <- demo_data

# shape it in long format (prone to plotting)
data_long <- combiroc_long(data)

# study the distribution of you markers' signal
# arguments values to be adjusted according to  data
distr <- markers_distribution(data_long, case_class = 'A', 
                              y_lim = 0.0015, x_lim = 3000, 
                              signalthr_prediction = TRUE, 
                              min_SE = 40, min_SP = 80, 
                              boxplot_lim = 2000)

# explore the distr object: boxplot of signals
distr$Boxplot

# explore the distr object: densities of classes with signal threshold (signalthr)
distr$Density_plot
distr$Density_summary

# explore the distr object: ROC and its coordinates
distr$ROC
head(distr$Coord, n=10)

# combinatorial analysis, indicatinf case class anf for combinations of up to 3 markers:
tab <- combi(data, signalthr = 328, combithr = 1,
             case_class = "A", max_length = 3)

# ranked combinations              
rmks <- ranked_combs(tab, min_SE = 40, min_SP = 80)

# check ranked combinations
rmks$table
rmks$bubble_chart

# results report for specific markers/combinations
reports <-roc_reports(data, markers_table = tab, case_class = 'A',
                      single_markers =c('Marker1'), 
                      selected_combinations = c(11,15))

# results outputs
reports$Plot
reports$Metrics

Issues - Bugs

If you find a bug, or to share ideas for improvement, feel free to start an issue. We do have a roadmap but we also listen!

Contributors

  • Package authors and maintainers: Ivan Ferrari & Riccardo L. Rossi
  • Original code of Shiny App: Saveria Mazzara
  • Initial idea & conception: Mauro Bombaci

Trivia

We were so happy to finally had the chance to develop the combiroc package that we felt very "rock": this is why the combiroc hexagon sticker logo is a homage to Eddie Van Halen who left us in 2020, and the "Frankenstrat", his iconic guitar.

Metadata

Version

0.3.4

License

Unknown

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows