library(diffloop)
library(diffloopdata)
library(ggplot2)
library(GenomicRanges)
library(ggrepel)
library(DESeq2)
library(digest)
library(edgeR)
library(limma)

DiffLoop - from HiChIPPER output – from HiC-Pro output

#Read in loop file ##If not a mango file ## Control_HDAC_SMC3 <- loopsMake("~/Desktop/HDAC_HiChIP/")
Control_HDAC_SMC3 <- loopsMake.mango("~/Desktop/HDAC_HiChIP")  
celltypes <- c("Control_SMC3", "HDAC_SMC3")
Control_HDAC_SMC3 <- updateLDGroups(Control_HDAC_SMC3, celltypes)
dim(Control_HDAC_SMC3)
##   anchors interactions samples colData rowData
## 1   40390       134649       2       2       1
#Subset loops and perform mango correction
Control_HDAC_SMC3 <- subsetLoops(Control_HDAC_SMC3, Control_HDAC_SMC3@rowData$loopWidth >= 5000)
Control_HDAC_SMC3_Mango <- mangoCorrection(Control_HDAC_SMC3, FDR = 0.01)
dim(Control_HDAC_SMC3_Mango)
##   anchors interactions samples colData rowData
## 1   24242        35855       2       2       3
#Filter loops based on width and minumun number of loops per sample
Control_HDAC_SMC3_Filtered <- filterLoops(Control_HDAC_SMC3_Mango, width = 5000, nreplicates = 2, nsamples = 1)
dim(Control_HDAC_SMC3_Filtered)
##   anchors interactions samples colData rowData
## 1   14663        17810       2       2       3
loopMetrics(Control_HDAC_SMC3_Filtered)
##        Control_SMC3 HDAC_SMC3
## unique        18947     78190
#Call differential loops for single replicate
Control_HDAC_SMC3_Filtered@rowData$diffCount <- Control_HDAC_SMC3_Filtered@counts[,2] - Control_HDAC_SMC3_Filtered@counts[,1]

Control_HDAC_SMC3_Filtered@rowData$diffCount <- Control_HDAC_SMC3_Filtered@counts[,1] - Control_HDAC_SMC3_Filtered@counts[,2]

#Annotating Differential Loops to Peaks - Here using SMC3 peaks 
Control_SMC3_pad <- rmchr(padGRanges(bedToGRanges("~/Desktop/SKCM-WNEG_M_vs_SKCM-WNEG_G_macs1_peaks.bed"), pad = 5000))
HDAC_SMC3_pad <- rmchr(padGRanges(bedToGRanges("~/Desktop/SKCM-WH81_M_vs_SKCM-WH81_G_macs1_peaks.bed"), pad = 5000))

#Pad enhancers using SMC3 peaks and promoters using human TSS
enhancer <- union(Control_SMC3_pad, HDAC_SMC3_pad)
promoter <- padGRanges(getHumanTSS(), pad = 5000)

#Annotate Differential Loops
Control_HDAC_SMC3_annotated_loops <- annotateLoops(Control_HDAC_SMC3_Filtered, enhancer = enhancer, promoter = promoter)
head(Control_HDAC_SMC3_annotated_loops)
## An object of class "loops"
## Slot "anchors":
## GRanges object with 6 ranges and 0 metadata columns:
##       seqnames          ranges strand
##          <Rle>       <IRanges>  <Rle>
##   [1]        1 6843325-6847408      *
##   [2]        1 7265853-7269456      *
##   [3]        1 7372237-7374913      *
##   [4]        1 7722547-7731877      *
##   [5]        1 7809412-7814422      *
##   [6]        1 8019895-8023080      *
##   -------
##   seqinfo: 23 sequences from an unspecified genome; no seqlengths
## 
## Slot "interactions":
##      left right
## [1,]    1     2
## [2,]    1     3
## [3,]    4     5
## [4,]    6    20
## [5,]    7    24
## [6,]    8    16
## 
## Slot "counts":
##      Control_SMC3 HDAC_SMC3
## [1,]            0         2
## [2,]            0         2
## [3,]            4         3
## [4,]            0         2
## [5,]            0         2
## [6,]            0         2
## 
## Slot "colData":
##              sizeFactor       groups
## Control_SMC3          1 Control_SMC3
## HDAC_SMC3             1    HDAC_SMC3
## 
## Slot "rowData":
##   loopWidth    mango.FDR      mango.P diffCount loop.type
## 1    422288 0.0001708118 1.510107e-05        -2       e-p
## 2    528208 0.0001056135 8.316585e-06        -2       e-p
## 3     84705 0.0031685219 4.464202e-04         1       e-e
## 4    340927 0.0002607523 2.548722e-05        -2       e-e
## 5    369299 0.0002064391 1.909710e-05        -2       e-e
## 6    183103 0.0015446761 2.030407e-04        -2       e-e
#Summary of Differential Enhancer-Promoter and Enhancer-Enhancer SMC3-mediated loops
Control_HDAC_SMC3_annotated_loops_summary <- summary(Control_HDAC_SMC3_annotated_loops)
head(Control_HDAC_SMC3_annotated_loops_summary)
##   chr_1 start_1   end_1 chr_2 start_2   end_2 Control_SMC3 HDAC_SMC3 loopWidth
## 1     1 6843325 6847408     1 7265853 7269456            0         2    422288
## 2     1 6843325 6847408     1 7372237 7374913            0         2    528208
## 3     1 7722547 7731877     1 7809412 7814422            4         3     84705
## 4     1 8019895 8023080     1 8361130 8363700            0         2    340927
## 5     1 8063135 8066846     1 8432315 8436265            0         2    369299
## 6     1 8072825 8076859     1 8256794 8259096            0         2    183103
##      mango.FDR      mango.P diffCount loop.type               region
## 1 0.0001708118 1.510107e-05        -2       e-p chr1:6818325-7294456
## 2 0.0001056135 8.316585e-06        -2       e-p chr1:6818325-7399913
## 3 0.0031685219 4.464202e-04         1       e-e chr1:7697547-7839422
## 4 0.0002607523 2.548722e-05        -2       e-e chr1:7994895-8388700
## 5 0.0002064391 1.909710e-05        -2       e-e chr1:8038135-8461265
## 6 0.0015446761 2.030407e-04        -2       e-e chr1:8047825-8284096

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.