Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.
/ CrossICC Public archive

An Interactive Consensus Clustering framework for Cross-platform data analysis

License

Notifications You must be signed in to change notification settings

bioinformatist/CrossICC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CrossICC

check in Biotreasury

Table of the content

Overview

Unsupervised clustering of high-throughput molecular profiling data is widely adopted for discovering cancer subtypes. However, cancer subtypes derived from a single dataset are not usually applicable across multiple datasets from different platforms. We previously published an iterative clustering algorithm to address the issue (see this paper), but its use was hampered due to lack of implementation. In this work, we presented CrossICC that was an R package implementation of this method. Moreover, many new features were added to improve the performance of the algorithm. Briefly, CrossICC utilizes an iterative strategy to derive the optimal gene set and cluster number from consensus similarity matrix generated by consensus clustering. CrossICC is able to deal with multiple cross platform datasets so that requires no between-dataset normalizations. This package also provides abundant functions to help users visualize the identified subtypes and evaluate the subtyping performance. Specially, many cancer-related analysis methods are embedded to facilitate the clinical translation of the identified cancer subtypes.

There are two modes for the integration of clusters derived cross-platform datasets: cluster mode and sample mode. For cluster mode, samples from each platform are clustered separately and centroids of each sub cluster derived from ConsensusClusterPlus were further clustered to generate super cluster. This process avoided removing batch effect across platforms. The details step by step illustration of this algorithm can be found in our previous published paper and our recent submitted paper[coming soon]. For sample mode, sub clusters were firstly derived from ConsensusClusterPlus in each platform. We then calculated correlation coefficient between samples and centroids of clusters to get a new feature vector of each samples. Based on this new matrix, samples were divided into new clusters.

Installation

Via GitHub (latest)

  • Important! From bioconductor >3.12, CrossICC is nolonger available from biocondutor. This is because one core dependency of CrossICC MergeMaid is not mentained after that version. Here, we provide the only may to install MergeMaid before CrossICC installed:
  • Step 1. Download MergeMaid source code. via Shell console or directly download from URL below https://bioconductor.riken.jp/packages/3.1/bioc/src/contrib/MergeMaid_2.40.0.tar.gz
$ wget https://bioconductor.riken.jp/packages/3.1/bioc/src/contrib/MergeMaid_2.40.0.tar.gz
  • Step 2. Install CrossICC from R console.
# install MergeMaid from Source

install.packages("MergeMaid_2.40.0.tar.gz",build="source")
# install CrossICC from github
install.packages("devtools")
devtools::install_github("bioinformatist/CrossICC")

Usage

CrossICC has the ability to automatically process arbitrary numbers of expression datasets, no matter which platform they came from (Even you can use sequencing and microarray data together). What you only need is a list of matrices in R, without any type of pre-processing (never need manipulation like filtering or normalization).

library(CrossICC)
data(demo.platforms)
CrossICC.obj <- CrossICC(demo.platforms, skip.mfs = TRUE, max.iter = 100, 
                         cross = "cluster", fdr.cutoff = 0.1, 
                         ebayes.cutoff = 0.1, filter.cutoff = 0.1)

CrossICC will automatically iterate your data until it reaches convergence. By default, CrossICC will generate an .rds formatted object in your home path (~/, a.k.a $HOME in Linux), followed by an shiny app as shown below that is opened in your default browser, which provides you a very intuitive way to view the results.

Shiny app

Our package also comes with a shiny app. To run it:

  • Step 3(optional)
pkg.suggested <- c('ggalluvial', 'ggsci','rmarkdown', 'knitr', 'shiny', 'shinydashboard', 'shinyWidgets', "shinycssloaders", 'DT', 'ggthemes', 'ggplot2', 'pheatmap', 'RColorBrewer', 'tibble')
checkPackages <- function(pkg){
  if (!requireNamespace(pkg, quietly = TRUE)) {
    warning(paste0("Package ",pkg," needed for shiny app. Installing...."))
    install.packages(pkg)
  }
}
lapply(pkg.suggested, checkPackages)
shiny::runApp(system.file("shiny", package = "CrossICC"))

FAQ

  • Question 1: NA values involved in our data set, how to go through them?

A: Users may encounter unexpected errors due to NA values in raw dataset. Therefore, we strongly recommanded that users checked the NA valus in their data set before loading it into CrossICC. To check the completed cases in matrix, completed.cases can be a good option to do that. Here, we also present an example for users to impute there data in case they don’t want to remove case in the dataset. The imputation method shown here are KNN method from impute package.

# for a individual matrix, plz do imputation using the following r code
tempdata.impute=impute.knn(as.matrix(tempdata) ,k = 10, rowmax = 0.5, colmax = 0.8)
normalize.Data=as.data.frame(tempdata.impute$data)
  • Question 2 : can I install the CrossICC from bioconductor.

A: No, from bioconductor >3.12, CrossICC is nolonger available from biocondutor. This is because one core dependency of CrossICC MergeMaid is not mentained and we didnot get the lisence to update the package. So users could only install our package from github directly.

Contribution

Qi Zhao @likelet and Yu Sun @bioinformatist implemented the packages. Zhixiang Zuo @zhixiang supervise the project. Zekun Liu performed the test and helped run an example of the package. For more information or questions, plz contact either of the authors above.

Citation

Zhao Qi, Yu Sun, Zekun Liu, Hongwan Zhang, Xingyang Li, Kaiyu Zhu, Ze-Xian Liu, Jian Ren, and Zhixiang Zuo.(2020). CrossICC: iterative consensus clustering of cross-platform gene expression data without adjusting batch effect. Briefings in Bioinformatics, 21(5), 1818-1824.

About

An Interactive Consensus Clustering framework for Cross-platform data analysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published