Title: | Clustering of Genomic Regions Analysis Method |
---|---|
Description: | Provides a new method for identification of clusters of genomic regions within chromosomes. Primarily, it is used for calling clusters of cis-regulatory elements (COREs). 'CREAM' uses genome-wide maps of genomic regions in the tissue or cell type of interest, such as those generated from chromatin-based assays including DNaseI, ATAC or ChIP-Seq. 'CREAM' considers proximity of the elements within chromosomes of a given sample to identify COREs in the following steps: 1) It identifies window size or the maximum allowed distance between the elements within each CORE, 2) It identifies number of elements which should be clustered as a CORE, 3) It calls COREs, 4) It filters the COREs with lowest order which does not pass the threshold considered in the approach. |
Authors: | Seyed Ali Madani Tonekaboni [aut], Victor Kofia [aut], Mathieu Lupien [aut], Benjamin Haibe-Kains [aut, cre] |
Maintainer: | Benjamin Haibe-Kains <[email protected]> |
License: | GPL (>= 3) |
Version: | 1.1.1 |
Built: | 2024-11-12 04:25:45 UTC |
Source: | https://github.com/bhklab/cream |
CREAM is the main function for CORE identification
CREAM(in_path, WScutoff = 1.5, MinLength = 1000, peakNumMin = 2)
CREAM(in_path, WScutoff = 1.5, MinLength = 1000, peakNumMin = 2)
in_path |
Path to the input file (The file inclusing the functional regions) Note. You have to make sure that there is no overlapping regions within the input file |
WScutoff |
Threshold used to identify WS within distribution of maximum distance between peaks for each order of CORE |
MinLength |
Criteria for the minimum number of functional regions in the input file |
peakNumMin |
Minimum number of peaks for CORE identification |
Bed file including the identified COREs
CREAM(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), MinLength = 1000, peakNumMin = 2)
CREAM(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), MinLength = 1000, peakNumMin = 2)
ElementRecog is a function to identify COREs
ElementRecog(InputData, windowSize_Vec, peakNumMax, peakNumMin)
ElementRecog(InputData, windowSize_Vec, peakNumMax, peakNumMin)
InputData |
The input data as a table including chromosome regions in which the first column is chromosome annotation, and second and third columns are start and ending positions. |
windowSize_Vec |
Vector of window sizes ordered based on order of CORE |
peakNumMax |
Maximum order of COREs (e.g. maximum number of peaks within COREs) |
peakNumMin |
Minimum order of COREs (e.g. minimum number of peaks within COREs) |
Identified COREs for the given input regions
InputData <- read.table(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), sep="\t") colnames(InputData) <- c("chr", "start", "end") MinLength <- 1000 if(nrow(InputData) < MinLength){ stop(paste( "Number of functional regions is less than ", MinLength, ".", sep = "", collapse = "")) } peakNumMin <- 2 WScutoff <- 1.5 WindowVecFinal <- WindowVec(InputData, peakNumMin, WScutoff) OutputList <- ElementRecog(InputData, WindowVecFinal, (1+length(WindowVecFinal)), peakNumMin)
InputData <- read.table(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), sep="\t") colnames(InputData) <- c("chr", "start", "end") MinLength <- 1000 if(nrow(InputData) < MinLength){ stop(paste( "Number of functional regions is less than ", MinLength, ".", sep = "", collapse = "")) } peakNumMin <- 2 WScutoff <- 1.5 WindowVecFinal <- WindowVec(InputData, peakNumMin, WScutoff) OutputList <- ElementRecog(InputData, WindowVecFinal, (1+length(WindowVecFinal)), peakNumMin)
PeakMinFilt is a function to filter the lowest Order of COREs which distance between functional regions is close to the corresponding Window Size
PeakMinFilt(Clusters_init, WindowVecFinal)
PeakMinFilt(Clusters_init, WindowVecFinal)
Clusters_init |
Table of indetified COREs before filteration |
WindowVecFinal |
Vector of window sizes ordered based on order of CORE |
Minimum order of COREs
WindowSizeRecog is a function to specify window size for each order of COREs
WindowSizeRecog(InputData, COREorder, WScutoff)
WindowSizeRecog(InputData, COREorder, WScutoff)
InputData |
The input data as a table including chromosome regions in which the first column is chromosome annotation, and second and third columns are start and ending positions. |
COREorder |
Order of the COREs which window size has to be determined for. |
WScutoff |
Threshold used to identify WS within distribution of maximum distance between peaks for each order of CORE |
Window size identified for each order of CORE
InputData <- read.table(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), sep="\t") colnames(InputData) <- c("chr", "start", "end") MinLength <- 1000 if(nrow(InputData) < MinLength){ stop(paste( "Number of functional regions is less than ", MinLength, ".", sep = "", collapse = "")) } peakNumMin <- 2 WScutoff <- 1.5 WindowSize <- WindowSizeRecog(InputData, peakNumMin, WScutoff)
InputData <- read.table(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), sep="\t") colnames(InputData) <- c("chr", "start", "end") MinLength <- 1000 if(nrow(InputData) < MinLength){ stop(paste( "Number of functional regions is less than ", MinLength, ".", sep = "", collapse = "")) } peakNumMin <- 2 WScutoff <- 1.5 WindowSize <- WindowSizeRecog(InputData, peakNumMin, WScutoff)
WindowVec is a function to specify window size for each order of COREs
WindowVec(InputData, peakNumMin, WScutoff)
WindowVec(InputData, peakNumMin, WScutoff)
InputData |
The input data as a table including chromosome regions in which the first column is chromosome annotation, and second and third columns are start and ending positions. |
peakNumMin |
Minimum order of COREs |
WScutoff |
Threshold used to identify WS within distribution of maximum distance between peaks for each order of CORE |
Vector of window sizes from order 2 up to maximum order of COREs
InputData <- read.table(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), sep="\t") colnames(InputData) <- c("chr", "start", "end") MinLength <- 1000 if(nrow(InputData) < MinLength){ stop(paste( "Number of functional regions is less than ", MinLength, ".", sep = "", collapse = "")) } peakNumMin <- 2 WScutoff <- 1.5 WindowVecFinal <- WindowVec(InputData, peakNumMin, WScutoff)
InputData <- read.table(system.file("extdata", "A549_Chr21.bed", package = "CREAM"), sep="\t") colnames(InputData) <- c("chr", "start", "end") MinLength <- 1000 if(nrow(InputData) < MinLength){ stop(paste( "Number of functional regions is less than ", MinLength, ".", sep = "", collapse = "")) } peakNumMin <- 2 WScutoff <- 1.5 WindowVecFinal <- WindowVec(InputData, peakNumMin, WScutoff)