Giter VIP home page Giter VIP logo

cream's Introduction

CREAM (Clustering of genomic REgions Analysis Method)

Travis Build Status codecov AppVeyor Build status CRAN_Status_Badge CRAN_Downloads

Overview

CREAM is 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.

Installation

# Install from CRAN
install.packages('CREAM')

# Installing the development version from GitHub:
# install.packages("devtools")
devtools::install_github("bhklab/CREAM")

Usage

# Identify COREs using CREAM
IdentifiedCOREs <- CREAM( in_path = system.file("extdata", "A549_Chr21.bed", package = "CREAM"), MinLength = 1000, peakNumMin = 2 )

Getting help

Contact us by filing an issue in the CREAM issues page.

cream's People

Contributors

alimadani avatar bhaibeka avatar christophereeles avatar kofiav avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

xflicsu edsu7

cream's Issues

CREAM error: chromosome with low number of regions and you may get error

Hi,

recently I came across this tool and wanted to give it a try. When I used a bed file it gave the following error

Error in quantile.default(bb) :
  missing values and NaN's not allowed if 'na.rm' is FALSE
In addition: Warning messages:
1: In CREAM(in_path = "my_70percent_overlap.bed", out_path = "./my_70percent_overlap_CORES_CREAM.bed",  :
  There are chromosome with low number of regions and you may get error. The reason is that highest Order may become larger than the number of regions in a chromosome. Hence, there will not be enough regions in that chromosome for clustering.
2: In log(SortedWindow_Vec[-RemovePeaks]) : NaNs produced

How would you suggest to deal with it?

Thank you.

Missing information in DESCRIPTION

DESCRIPTION file requires the following info:

  • Title: (acronym has to be described). Make sure to type out the title in Title Case
  • Description: (detailed description of what the package does)
  • Imports: packages that provide functions, methods, or classes that are used inside your package name space.
  • Suggests: packages used in vignettes or examples, or in conditional code.
  • biocViews: “keywords” used to describe a given package (see https://www.bioconductor.org/developers/how-to/biocViews/)

See https://www.bioconductor.org/developers/package-guidelines/#dependencies for more on R package guidelines.

Nothing pointing to WindowSizeRecog_freecutoff?

I have been trying to implement LOCKs using this repository and your codeocean link from your recent paper (https://codeocean.com/capsule/6911149/tree/v1).

I understand that the CREAM_Cutoff is the iterative optimization of WScutoff. The new CREAM parameter optimize=TRUE evokes ElementRecog_freecutoff instead of ElementRecog. However, there is also a WindowSizeRecog_freecutoff, but I do not see any scripts evoking it. Was this not implemented in the final version of the CREAM update?

Application of LOCKs updated framework to define COREs

A general theory question: can/should the updated CREAM framework (used to define LOCKs) also be used to define COREs on accessibility data?

From my understanding, the CREAM_Cutoff iterations just identify an optimal WScutoff threshold, i.e. the optimal window size within the empirical distribution. This suggests to me that this optimization would also improve detecting canonical COREs as well. Further this framework could be practically applied to cluster peaks from almost any chromatin feature (not just modified lysine residues), I would guess.

WindowSizeRecog_freecutoff: Outliers not defined

The object 'Outliers' is called in WindowSizeRecog_freecutoff but not defined. CREAM() with current build errors because 'Outliers' is not defined.

In WindowSizeRecog, 'Outliers' is defined as: Outliers <- which(bb < TightReg). May need to just add this line to _freecutoff version?

input issue

I tried to use CREAM with output from Genrich (narrowPeaks) format. I run into this error and unsure how to proceed. Would you mind helping me?
#CREAMfunction
IdentifiedCOREs <- CREAM(in_path=system.file("extdata", "816_775.narrowPeaks.bed", package = "CREAM"), MinLength = 1000, peakNumMin = 2 )
Error in read.table(in_path, sep = "\t") : no lines available in input
In addition: Warning message:
In file(file, "rt") :
file("") only supports open = "w+" and open = "w+b": using the former

Removing direct writing command in user's local directory

The command
write.table(CombinedData , file = out_path,
row.names=FALSE, col.names = FALSE, quote = FALSE, sep = "\t")
at the end of CREAM function should be replaced by
return(CombinedData)

The example and description of the function should be modified accordingly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.