Giter VIP home page Giter VIP logo

multihiccompare's Introduction

multiHiCcompare

Overview

multiHiCcompare is an extension of the original HiCcompare R package (http://bioconductor.org/packages/HiCcompare/ or https://github.com/dozmorovlab/HiCcompare). multiHiCcompare provides functions for the joint normalization and comparison of complex Hi-C experiments. multiHiCcompare operates on processed Hi-C data in the form of sparse upper triangular matrices. The developmental version is available at https://github.com/jstansfield0/multiHiCcompare, the stable version is available at https://github.com/dozmorovlab/multiHiCcompare.

multiHiCcompare accepts four-column text files storing chromatin interaction matrices in a sparse matrix format. There are many sources of public Hi-C data such as http://aidenlab.org/data.html and http://cooler.readthedocs.io/en/latest/index.html. multiHiCcompare is designed to the give the user the ability to perform a comparative analysis on the 3D structure of the genomes of cells in different biological states or under different experimental conditions. multiHiCcompare implements a cyclic loess joint normalization algorithm to remove bias between multiple Hi-C datasets and prepare them for comparison. multiHiCcompare also provides a general linear model based difference detection method that makes use of the edgeR R package's framework.

The main functions of multiHiCcompare are:

  • cyclic_loess() and fastlo() for performing joint normalization.
  • hic_exactTest() and hic_glm() for performing comparisons between experimental conditions.

Some example Hi-C data along with an extensive vignette documenting the usage of multiHiCcompare are included in the package.

Read the full paper describing the methods used in multiHiCcompare here: .

Installation

First make sure you have all dependencies installed in R.

install.packages(c('dplyr', 'data.table', 'devtools', 'qqman', 'metap', 'pheatmap', 'pbapply'))

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install(c("BiocParallel", "HiCcompare", "edgeR", "GenomicRanges", "GenomeInfoDbData"))

To install HiCcompare from bioconductor open R and enter the following commands. Currently it is recommended to use the GitHub release or the development version of the bioconductor release.

# It is recommended to use the github release until the next Bioconductor update
# BiocManager::install("multiHiCcompare")
# library(multiHiCcompare)

Or to install the latest version of HiCcompare directly from the github release open R and enter the following commands.

library(devtools)
install_github('jstansfield0/multiHiCcompare', build_vignettes = TRUE)
library(multiHiCcompare)

Usage

To use multiHiCcompare you will first need to obtain some Hi-C data. Data is available from the sources listed in the overview along with many others. You will need to extract the data and read it into R as either a 3 column sparse upper triangular matrix and then combine it with an additional column for the chromosome. Hi-C data ready to be used in multiHiCcompare should look like the following:

  chr  region1  region2 IF
1  22 16000000 16000000 11
2  22 16100000 16100000  1
3  22 16200000 16200000  3
4  22 16300000 16300000 15
5  22 16400000 16400000  3
6  22 16400000 16500000  1
...

The four columns correspond to the chromosome, the start location of the first interacting region (in basepairs), the start location of the second interacting region, and the interaction frequency (IF) of the interaction.

Below is an example analysis of a Hi-C experiment.

# load data
library(multiHiCcompare)
data("r1", "r2", "r3", "r4")

# make hicexp object
hicexp <- make_hicexp(r1, r2, r3, r4, groups = c(1,1,2,2))

# jointly normalize data
hicexp <- cyclic_loess(hicexp)

# compare groups
hicexp <- hic_exactTest(hicexp)

# view manhattan plot of results
manhattan_hicexp(hicexp)

Refer to the multiHiCcompare vignette for full usage instructions. For a full explanation of the methods used in multiHiCcompare see the manuscript here .

To view the usage vignette:

browseVignettes("multiHiCcompare")

Tutorial for Differential Analysis of Hi-C Data

For more detailed instructions and examples on how to perform differential analyses on Hi-C data please see our tutorial paper "R Tutorial: Detection of Differentially Interacting Chromatin Regions From Multiple Hi‐C Dataset" published in Current Protocols in Bioinformatics. https://doi.org/10.1002/cpbi.76

Citation

Please cite multiHiCcompare if you use it in your analysis.

John C Stansfield, Kellen G Cresswell, Mikhail G Dozmorov; multiHiCcompare: joint normalization and comparative analysis of complex Hi-C experiments, Bioinformatics, , btz048, https://doi.org/10.1093/bioinformatics/btz048

Contributions & Support

Suggestions for new features and bug reports are welcome. Please create a new issue for any of these or contact the author directly: @jstansfield0 ([email protected])

Contributors

Authors: @jstansfield0 ([email protected]) & @mdozmorov ([email protected])

multihiccompare's People

Contributors

jstansfield0 avatar mdozmorov avatar nturaga avatar vobencha avatar armenabnousi avatar menggf avatar

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.