Allele-specific chromatin architecture shapes imprinted domains and coordinates a distal enhancer and antisense transcription at the mouse Mest-Copg2 domain.
The 8 matches · 3 of them tie a paragraph to a whole file, not to given lines: weak matches, whose lines are not tinted
- [1] § Methods › Capture Hi-C analysis ↔ Figure1/BB_CHiC_GRCm39_Figure1.sh, lines 49–89 · score 0.85 · hicup2juicer, SNPsplit, usemid, digested, v0, g2
- [2] § Results › Methylation-sensitive CTCF at ICRs shapes allelic architecture ↔ Figure4/BB_CHiC_GRCm39_contactanalysisChromHMM_FIgure4.R, lines 1127–1186 · score 0.61 · Cdkn1c, Kcnq1ot1, imprinted genes, Peg10, Peg3, Snrpn
- [3] § Results › Methylation-sensitive CTCF at ICRs shapes allelic architecture ↔ Figure2/BB_CHiC_GRCm39_Figure2.sh, the whole file · a weak match · score 0.60 · sDMRs, gDMRs, Methylated alleles, unmethylated, domain
- [4] § Results › Methylation-sensitive CTCF at ICRs shapes allelic architecture ↔ Figure2/BB_CHiC_GRCm39_Figure2.sh, the whole file · a weak match · score 0.54 · sDMRs, gDMRs, Coolpuppy, Density, unmethylated, cortex
- [5] § Results › Methylation-sensitive CTCF at ICRs shapes allelic architecture ↔ Figure4/BB_CHiC_GRCm39_contactanalysisChromHMM_FIgure4.R, lines 1348–1395 · score 0.54 · Kcnq1ot1, Peg12, Usp29, Kcnk9, Peg13, Sgce
- [6] § Results › Imprinted domains exhibit allele-specific chromatin architectures ↔ Figure4/BB_CHiC_GRCm39_contactanalysisChromHMM_FIgure4.R, lines 1127–1186 · score 0.54 · Kcnq1ot1, Peg12, Usp29, Kcnk9, Peg13, Sgce
- [7] § Methods › Capture Hi-C analysis ↔ FigureSupp10/BB_CHiC_GRCm39_FigureSupp10.sh, the whole file · a weak match · score 0.52 · Juicer pre, strain, g2, g1, tool, hic
- [8] § Methods › Capture Hi-C analysis ↔ Figure1/BB_CHiC_GRCm39_Figure1.sh, lines 49–89 · score 0.51 · Juicer pre, g2, g1, tool, filtered, hic
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R · 1,400 lines · 53 KB · no license · 3 matches
- library(dplyr)
- library(ggplot2)
- library(scales)
- library(tidyverse)
- library(valr)
- library(palr)
- library(GenomicRanges)
- #personalized theme
- my_theme = theme(
- text = element_text(size = 10),
- axis.title.x = element_text(size = 12),
- axis.title.y = element_text(size = 12),
- axis.text = element_text(size = 10, colour = 'black'),
- axis.text.x = element_text(vjust = 0.5, size = 10, angle=90),
- legend.title=element_text(size=0),
- legend.text=element_text(size=12),
- legend.position = "top",
- #legend.position = "none",
- plot.title = element_text(lineheight=.8, face="bold", size = 16),
- panel.border = element_blank(),
- panel.background = element_rect(fill = 'white'),
- panel.grid.minor = element_blank(),
- panel.grid.major = element_blank(),
- axis.line.x = element_line(colour = 'black', size=0.5, linetype='solid'),
- axis.line.y = element_line(colour = 'black', size=0.5, linetype='solid'))
- #==============================
- func.paircounts.mat <- function(viewpoint) {
- #mat positive region
- mat_chr_pos <- mat_chr_reg %>%
- filter(mat_chr_reg$V3 > viewpoint-2500 & mat_chr_reg$V3 < viewpoint+2500)
- #mat negative region
- mat_chr_neg <- mat_chr_reg %>%
- filter(mat_chr_reg$V5 > viewpoint-2500 & mat_chr_reg$V5 < viewpoint+2500)
- #mat merge both regions
- mat_chr_pos2 <- as.data.frame(mat_chr_pos$V1)
- mat_chr_pos2$V2 <- mat_chr_pos$V5
- colnames(mat_chr_pos2) <- c("V1","V2")
- mat_chr_neg2 <- as.data.frame(mat_chr_neg$V1)
- mat_chr_neg2$V2 <- mat_chr_neg$V3
- colnames(mat_chr_neg2) <- c("V1","V2")
- mat_chr_plot <- rbind(mat_chr_neg2,mat_chr_pos2)
- mat_chr_plot$chr <- chrnumb
- mat_chr_plot$allele <- "mat"
- #remove proximal contacts
- mat_chr_plot <- mat_chr_plot %>% filter(V2 < viewpoint-50000 | V2 > viewpoint+50000)
- return(mat_chr_plot)
- }
- func.paircounts.pat <- function(viewpoint) {
- #pat positive region
- pat_chr_pos <- pat_chr_reg %>%
- filter(pat_chr_reg$V3 > viewpoint-2500 & pat_chr_reg$V3 < viewpoint+2500)
- #pat negative region
- pat_chr_neg <- pat_chr_reg %>%
- filter(pat_chr_reg$V5 > viewpoint-2500 & pat_chr_reg$V5 < viewpoint+2500)
- #pat merge both regions
- pat_chr_pos2 <- as.data.frame(pat_chr_pos$V1)
- pat_chr_pos2$V2 <- pat_chr_pos$V5
- colnames(pat_chr_pos2) <- c("V1","V2")
- pat_chr_neg2 <- as.data.frame(pat_chr_neg$V1)
- pat_chr_neg2$V2 <- pat_chr_neg$V3
- colnames(pat_chr_neg2) <- c("V1","V2")
- pat_chr_plot <- rbind(pat_chr_neg2,pat_chr_pos2)
- pat_chr_plot$chr <- chrnumb
- pat_chr_plot$allele <- "pat"
- #remove proximal contacts
- pat_chr_plot <- pat_chr_plot %>% filter(V2 < viewpoint-50000 | V2 > viewpoint+50000)
- return(pat_chr_plot)
- }
- #==============================
- func.activebed <- function(active) {
- #contacts from active TSS
- bed1 <- as.data.frame(active$chr)
- bed1 <- cbind(bed1, active$start)
- bed1 <- cbind(bed1, active$V2)
- bed1 <- cbind(bed1, active$V1)
- colnames(bed1) <- c("chrom","start","end","name")
- bed1$chrom <- sub("^", "chr", bed1$chrom)
- return(bed1)
- }
- func.inactivebed <- function(inactive) {
- #contacts from inactive TSS
- bed2 <- as.data.frame(inactive$chr)
- bed2 <- cbind(bed2, inactive$start)
- bed2 <- cbind(bed2, inactive$V2)
- bed2 <- cbind(bed2, inactive$V1)
- colnames(bed2) <- c("chrom","start","end","name")
- bed2$chrom <- sub("^", "chr", bed2$chrom)
- return(bed2)
- }
- func.biallele1bed <- function(biallele1) {
- #contacts from biallelic TSS
- bed3 <- as.data.frame(biallele1$chr)
- bed3 <- cbind(bed3, biallele1$start)
- bed3 <- cbind(bed3, biallele1$V2)
- bed3 <- cbind(bed3, biallele1$V1)
- colnames(bed3) <- c("chrom","start","end","name")
- bed3$chrom <- sub("^", "chr", bed3$chrom)
- return(bed3)
- }
- func.biallele2bed <- function(biallele2) {
- #contacts from biallelic TSS
- bed4 <- as.data.frame(biallele2$chr)
- bed4 <- cbind(bed4, biallele2$start)
- bed4 <- cbind(bed4, biallele2$V2)
- bed4 <- cbind(bed4, biallele2$V1)
- colnames(bed4) <- c("chrom","start","end","name")
- bed4$chrom <- sub("^", "chr", bed4$chrom)
- return(bed4)
- }
- #==============================
- cumm.biallele1bed <- NULL
- cumm.biallele2bed <- NULL
- #==============================
- ## this script may not be very straightforward
- ## basically, you are grabbing contact information from each expressed gene allele and grouping them according to their expression pattern
- ## note: total contact numbers in medium files are normalized to equalize mat and pat numbers
- #==============================
- #===Region1 file analysis
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg1.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg1.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #==============================
- #Sgce pat TSS
- gene <- "Sgce"
- viewpoint <- 4747180
- chrnumb <- 6
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- activebed
- cumm.inactivebed <- inactivebed
- #==============================
- #Peg10 pat TSS
- gene <- "Peg10"
- viewpoint <- 4747306
- chrnumb <- 6
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=6, ranges=IRanges(start=3330467 + 1, end=8138330))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #==============================
- #===Region2 file analysis
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg2.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg2.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #==============================
- #Mest pat TSS
- gene <- "Mest"
- viewpoint <- 30737996
- chrnumb <- 6
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Copg2 TSS
- gene <- "Copg2"
- viewpoint <- 30873712
- chrnumb <- 6
- exp <- "mat"
- noexp <- "pat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=6, ranges=IRanges(start=30068177+1, end=31232042))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #==============================
- #===Region3 pairs file analysis
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg3.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg3.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #==============================
- #==============================
- #Peg3 TSS
- gene <- "Peg3"
- viewpoint <- 6733443
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Usp29 TSS
- gene <- "Usp29"
- viewpoint <- 6733560
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=7, ranges=IRanges(start=6118501 + 1, end=7334692))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #==============================
- #===Region4 file analysis
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg4.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg4.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #==============================
- #==============================
- #Ube3a TSS
- gene <- "Ube3a"
- viewpoint <- 58878498
- chrnumb <- 7
- exp <- "mat"
- noexp <- "pat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Snrpn TSS
- gene <- "Snrpn"
- viewpoint <- 59789967
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #A230006K03Rik TSS
- gene <- "A230006K03Rik"
- viewpoint <- 60961397
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #B230209E15Rik TSS
- gene <- "B230209E15Rik"
- viewpoint <- 61265075
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #A330076H08Rik TSS
- gene <- "A330076H08Rik"
- viewpoint <- 61632103
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Ndn TSS
- gene <- "Ndn"
- viewpoint <- 61998025
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Magel2 TSS
- gene <- "Magel2"
- viewpoint <- 62026727
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Mkrn3 TSS
- gene <- "Mkrn3"
- viewpoint <- 62069901
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Peg12 TSS
- gene <- "Peg12"
- viewpoint <- 62114258
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=7, ranges=IRanges(start=55345629 + 1, end=62207321))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #==============================
- #===Region5 file analysis
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg5a.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg5a.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #==============================
- #H19 TSS not expressed in neurons
- #==============================
- #Igf2 TSS not expressed in neurons
- #==============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=7, ranges=IRanges(start=141663846 + 1, end=142264758))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #===Region5-2
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg5b.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg5b.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #=============================
- #Kcnq1ot1 TSS
- gene <- "Kcnq1ot1"
- viewpoint <- 142850286
- chrnumb <- 7
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #=============================
- #Cdkn1c TSS
- gene <- "Cdkn1c"
- viewpoint <- 143014735
- chrnumb <- 7
- exp <- "mat"
- noexp <- "pat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #=============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=7, ranges=IRanges(start=142266803 + 1, end=144176724))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #==============================
- #===Region6 pairs file analysis
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg6.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg6.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #==============================
- #Dlk1 TSS
- #==============================
- #Meg3 TSS1
- gene <- "Meg3"
- viewpoint <- 109506879
- chrnumb <- 12
- exp <- "mat"
- noexp <- "pat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Rtl1 TSS
- #==============================
- #Rian TSS polycistronic
- #==============================
- #Mirg TSS polycistronic
- #==============================
- #=============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=12, ranges=IRanges(start=108178545 + 1, end=111651244))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #==============================
- #===Region7 pairs file analysis
- mat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Mat_prejuicer_Q30_reg7.medium", header = FALSE, sep = '\t')
- mat_chr_reg <- mat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(mat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- pat_chr_reg <- read.table("Prejuicer/EXP012.CHiC_Pat_prejuicer_Q30_reg7.medium", header = FALSE, sep = '\t')
- pat_chr_reg <- pat_chr_reg[c('V1','V3','V4','V7','V8','V2','V6')]
- colnames(pat_chr_reg) <- c('V1','V2','V3','V4','V5','V6','V7')
- #==============================
- #Kcnk9 TSS
- gene <- "Kcnk9"
- viewpoint <- 72422415
- chrnumb <- 15
- exp <- "mat"
- noexp <- "pat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Peg13 TSS
- gene <- "Peg13"
- viewpoint <- 72682173
- chrnumb <- 15
- exp <- "pat"
- noexp <- "mat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- #Trappc9 TSS
- gene <- "Trappc9"
- viewpoint <- 72933053
- chrnumb <- 15
- exp <- "mat"
- noexp <- "pat"
- #counting all the contacts from the viewpoint 5kb bin
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- #which allele is transcriptionally active?
- if (exp == "pat"){
- active <- pat_chr_plot
- inactive <- mat_chr_plot
- } else if (exp == "mat"){
- active <- mat_chr_plot
- inactive <- pat_chr_plot
- }
- #add viewpoint
- active$start <- viewpoint
- inactive$start <- viewpoint
- #generating bed
- activebed <- func.activebed(active)
- inactivebed <- func.inactivebed(inactive)
- activebed$IG <- gene
- inactivebed$IG <- gene
- #cummulative
- cumm.activebed <- rbind(unique(cumm.activebed),activebed)
- cumm.inactivebed <- rbind(unique(cumm.inactivebed),inactivebed)
- #==============================
- biallelicbed <- read.table("Features/EXP022_CN_BiallelicRNAseq_capture.bed", header=FALSE, sep="\t", stringsAsFactors=FALSE)
- filter_gr <- GRanges(seqnames=15, ranges=IRanges(start=71271582 + 1, end=73517436))
- query_gr <- GRanges(seqnames=biallelicbed[[1]],
- ranges=IRanges(start=biallelicbed[[2]] + 1, end=biallelicbed[[3]]))
- hits <- findOverlaps(query_gr, filter_gr, type = "within")
- filtered_query <- biallelicbed[queryHits(hits), ]
- biallelicregion <- filtered_query
- biallelicregion$viewpoint[biallelicregion$V6 == "-"] <- biallelicregion$V3[biallelicregion$V6 == "-"]
- biallelicregion$viewpoint[biallelicregion$V6 == "+"] <- biallelicregion$V2[biallelicregion$V6 == "+"]
- biallelicregion <- biallelicregion[,c("V4","V1","viewpoint")]
- colnames(biallelicregion) <- c("gene","chrnumb","viewpoint")
- i=1
- for (i in seq_len(nrow(biallelicregion))) {
- gene <- biallelicregion$gene[i]
- viewpoint <- biallelicregion$viewpoint[i]
- chrnumb <- biallelicregion$chrnumb[i]
- exp <- "bi"
- mat_chr_plot <- func.paircounts.mat(viewpoint)
- pat_chr_plot <- func.paircounts.pat(viewpoint)
- if (exp == "bi"){
- biallele1 <- pat_chr_plot
- biallele2 <- mat_chr_plot
- }
- biallele1$start <- viewpoint
- biallele2$start <- viewpoint
- biallele1bed <- func.biallele1bed(biallele1)
- biallele2bed <- func.biallele2bed(biallele2)
- biallele1bed$IG <- gene
- biallele2bed$IG <- gene
- cumm.biallele1bed <- rbind(unique(cumm.biallele1bed),biallele1bed)
- cumm.biallele2bed <- rbind(unique(cumm.biallele2bed),biallele2bed)
- }
- #==============================
- #==============================
- #summary
- cumm.activebed$TSS <- "active allele"
- cumm.inactivebed$TSS <- "inactive allele"
- cumm.biallele1bed$TSS <- "biallele1"
- cumm.biallele2bed$TSS <- "biallele2"
- cumm.all <- rbind(cumm.activebed, cumm.inactivebed,cumm.biallele1bed,cumm.biallele2bed)
- #==============================
- #==============================
- unique(cumm.all$IG)
- summary2 <- cumm.all %>% dplyr::count(TSS)
- summary2$group <- c("mono","bi","bi","mono")
- #==============================
- pdf(file = "EXP012_NumberOfContactsFromTSS_Norm_all_Q30_12_bi-loop.pdf", width = 3.5, height = 3.5)
- p <- ggplot(data=summary2, aes(x=group, y=n, fill=TSS)) +
- geom_bar(stat="identity", position = "fill") +
- scale_y_continuous(expand = c(0, 0)) +
- labs(x = "Imprinted genes", y = "total # contacts from TSS") +
- scale_fill_manual(values=c("chocolate3", "lightblue4","rosybrown3", "gray70")) +
- my_theme + theme(legend.position = "right")
- p
- dev.off()
- #==============================
- cumm.all.filtered3 <- cumm.all %>% filter(TSS %in% c("biallele1","biallele2"))
- summary3 <- cumm.all.filtered3 %>% dplyr::count(IG, TSS)
- #==============================
- pdf(file = "EXP012_NumberOfContactsFromTSS_Norm_individual_fill_Q30_12_bi-loop.pdf", width = 14, height = 3.5)
- p <- ggplot(data=summary3, aes(x=IG, y=n, fill=TSS)) +
- geom_bar(stat="identity", position = "fill") +
- scale_y_continuous(expand = c(0, 0)) +
- labs(x = "Imprinted genes", y = "total # contacts from TSS") +
- scale_fill_manual(values=c("chocolate3", "lightblue4","rosybrown3", "gray70")) +
- my_theme
- p
- dev.off()
- #==============================
- level_order <- c('Sgce','Peg10','Mest','Peg3','Usp29','Snrpn','A230006K03Rik','B230209E15Rik','A330076H08Rik','Ndn','Magel2','Mkrn3','Peg12','Kcnq1ot1','Cdkn1c','Meg3','Peg13',
- 'Copg2','Ube3a','Kcnk9','Trappc9',
- 'Ppp1r9a', 'Casd1', 'Tmem209', 'Zfp583', 'Clcn4','Gabrb3','Ctsd', 'Nap1l4','Cars1')
- cumm.all.filtered <- cumm.all %>% filter(IG %in% level_order)
- cumm.all.filtered <- unique(cumm.all.filtered)
- unique(cumm.all.filtered$IG)
- #==============================
- summary <- cumm.all.filtered %>% dplyr::count(IG, TSS)
- colnames(summary) <- c("IG","TSS","allcounts")
- summary$type[summary$IG %in% c('Sgce','Peg10','Mest','Peg3','Usp29','Snrpn','A230006K03Rik','B230209E15Rik','A330076H08Rik','Ndn','Magel2','Mkrn3','Peg12', 'Kcnq1ot1','Cdkn1c','Meg3','Peg13')] <- "DMR"
- summary$type[summary$IG %in% c('Copg2','Ube3a','Kcnk9','Trappc9')] <- "distal"
- summary$type[summary$IG %in% c('Ppp1r9a', 'Casd1', 'Tmem209', 'Zfp583', 'Clcn4','Gabrb3', 'Ctsd','Nap1l4','Cars1')] <- "nonIG"
- #==============================
- # Basic barplot
- pdf(file = "EXP012_NumberOfContactsFromTSS_Norm_individual_stack_Q30_12_bi-loop.pdf", width = 8, height = 3.5)
- p <- ggplot(data=summary, aes(x=IG, y=allcounts, fill=TSS)) +
- geom_bar(stat="identity") +
- scale_y_continuous(expand = c(0, 0), limit = c(0,3500)) +
- labs(x = "Imprinted genes", y = "total # contacts from TSS") +
- scale_x_discrete(limits = level_order) +
- scale_fill_manual(values=c("chocolate3", "lightblue4","rosybrown3", "gray70")) +
- my_theme
- p
- dev.off()
- pdf(file = "EXP012_NumberOfContactsFromTSS_Norm_individual_fill_Q30_12_bi-loop.pdf", width = 8, height = 3.5)
- p <- ggplot(data=summary, aes(x=IG, y=allcounts, fill=TSS)) +
- geom_bar(stat="identity", position = "fill") +
- scale_y_continuous(expand = c(0, 0)) +
- labs(x = "Imprinted genes", y = "total # contacts from TSS") +
- scale_x_discrete(limits = level_order) +
- scale_fill_manual(values=c("chocolate3", "lightblue4","rosybrown3", "gray70")) +
- my_theme
- p
- dev.off()
- #==============================
- #==============================
- cumm.all.filtered4 <- cumm.all
- cumm.all.filtered4$type <- "nonIG"
- cumm.all.filtered4$type[cumm.all.filtered4$IG %in% c('Sgce','Peg10','Mest','Peg3','Usp29','Snrpn','Peg12', 'Kcnq1ot1','Peg13')] <- "DMR"
- cumm.all.filtered4$type[cumm.all.filtered4$IG %in% c('A230006K03Rik','B230209E15Rik','A330076H08Rik','Ndn','Magel2','Mkrn3','Cdkn1c','Meg3')] <- "DMR"
- cumm.all.filtered4$type[cumm.all.filtered4$IG %in% c('Copg2','Ube3a','Kcnk9','Trappc9')] <- "distal"
- summary4 <- cumm.all.filtered4 %>% dplyr::count(type,TSS)
- pdf(file = "EXP012_NumberOfContactsFromTSS_Norm_groups_stack_Q30_12_bi-loop.pdf", width = 8, height = 3.5)
- p <- ggplot(data=summary4, aes(x=type, y=n, fill=TSS)) +
- geom_bar(stat="identity", position = "fill") +
- scale_y_continuous(expand = c(0, 0)) +
- labs(x = "Imprinted genes", y = "total # contacts from TSS") +
- scale_fill_manual(values=c("chocolate3", "lightblue4","rosybrown3", "gray70")) +
- my_theme + theme(legend.position = "right")
- p
- dev.off()
- #==============================
- #==============================
- ### contact types classified by ChromHMM
- #==============================
- #==============================
- unique(cumm.all$IG)
- cumm.all.filtered <- cumm.all
- cumm.all.filtered <- unique(cumm.all.filtered)
- unique(cumm.all.filtered$IG)
- #==============================
- cumm.all.filtered$active[cumm.all.filtered$IG %in% c('Copg2','Ube3a','Kcnk9','Trappc9','Meg3','Cdkn1c') & cumm.all.filtered$TSS == "active allele"] <- "mat"
- cumm.all.filtered$active[cumm.all.filtered$IG %in% c('Copg2','Ube3a','Kcnk9','Trappc9','Meg3','Cdkn1c') & cumm.all.filtered$TSS == "inactive allele"] <- "pat"
- cumm.all.filtered$active[cumm.all.filtered$IG %in% c('Sgce','Peg10','Mest','Peg3','Usp29','Snrpn','A230006K03Rik','B230209E15Rik','A330076H08Rik','Ndn','Magel2','Mkrn3','Peg12', 'Kcnq1ot1','Peg13') & cumm.all.filtered$TSS == "active allele"] <- "pat"
- cumm.all.filtered$active[cumm.all.filtered$IG %in% c('Sgce','Peg10','Mest','Peg3','Usp29','Snrpn','A230006K03Rik','B230209E15Rik','A330076H08Rik','Ndn','Magel2','Mkrn3','Peg12', 'Kcnq1ot1','Peg13') & cumm.all.filtered$TSS == "inactive allele"] <- "mat"
- cumm.all.filtered$active[cumm.all.filtered$TSS == "biallele1"] <- "mat"
- cumm.all.filtered$active[cumm.all.filtered$TSS == "biallele2"] <- "pat"
- cumm.all.filtered <- unique(cumm.all.filtered)
- cumm.all.filtered$start <- cumm.all.filtered$end
- summary <- cumm.all.filtered %>% dplyr::count(IG, TSS, active)
- colnames(summary) <- c("IG","TSS", "active","allcounts")
- summary$type[summary$IG %in% c('Sgce','Peg10','Mest','Peg3','Usp29','Snrpn','A230006K03Rik','B230209E15Rik','A330076H08Rik','Ndn','Magel2','Mkrn3','Peg12', 'Kcnq1ot1','Cdkn1c','Meg3','Peg13')] <- "DMR"
- summary$type[summary$IG %in% c('Copg2','Ube3a','Kcnk9','Trappc9')] <- "distal"
- summary$type[summary$TSS %in% c("biallele1", "biallele2")] <- "nonIG"
- #==============================
- groups <- c("E1","E2","E3","E4","E5","E6","E7","E8","E9","E10","E11","E12")
- #==============================
- mat.ChromHMM <- read.table("/ChromHMM/Mat_12_segments.bed", header = FALSE, sep = '\t')
- colnames(mat.ChromHMM) <- c("chrom","start","end","group")
- mat.ChromHMM <- mat.ChromHMM[- grep("chr", mat.ChromHMM$chrom),]
- pat.ChromHMM <- read.table("/ChromHMM/Pat_12_segments.bed", header = FALSE, sep = '\t')
- colnames(pat.ChromHMM) <- c("chrom","start","end","group")
- pat.ChromHMM <- pat.ChromHMM[- grep("chr", pat.ChromHMM$chrom),]
- #==============================
- #==============================
- cumm.all.filtered$chrom <- str_replace_all(cumm.all.filtered$chrom,"chr","")
- cumm.all.filtered.mat <- cumm.all.filtered[cumm.all.filtered$active == "mat",]
- cumm.all.filtered.pat <- cumm.all.filtered[cumm.all.filtered$active == "pat",]
- #==============================
- for (group in groups){
- assign(gsub(" ","",paste("summary.mat.counts.",group)), (bed_intersect(cumm.all.filtered.mat, mat.ChromHMM[mat.ChromHMM$group == group,]) %>% count(IG.x, TSS.x)))
- }
- for (group in groups){
- assign(gsub(" ","",paste("summary.pat.counts.",group)), (bed_intersect(cumm.all.filtered.pat, pat.ChromHMM[pat.ChromHMM$group == group,]) %>% count(IG.x, TSS.x)))
- }
- #==============================
- colnames(summary.mat.counts.E1) <- c("IG","TSS","E1")
- colnames(summary.mat.counts.E2) <- c("IG","TSS","E2")
- colnames(summary.mat.counts.E3) <- c("IG","TSS","E3")
- colnames(summary.mat.counts.E4) <- c("IG","TSS","E4")
- colnames(summary.mat.counts.E5) <- c("IG","TSS","E5")
- colnames(summary.mat.counts.E6) <- c("IG","TSS","E6")
- colnames(summary.mat.counts.E7) <- c("IG","TSS","E7")
- colnames(summary.mat.counts.E8) <- c("IG","TSS","E8")
- colnames(summary.mat.counts.E9) <- c("IG","TSS","E9")
- colnames(summary.mat.counts.E10) <- c("IG","TSS","E10")
- colnames(summary.mat.counts.E11) <- c("IG","TSS","E11")
- colnames(summary.mat.counts.E12) <- c("IG","TSS","E12")
- #==============================
- colnames(summary.pat.counts.E1) <- c("IG","TSS","E1")
- colnames(summary.pat.counts.E2) <- c("IG","TSS","E2")
- colnames(summary.pat.counts.E3) <- c("IG","TSS","E3")
- colnames(summary.pat.counts.E4) <- c("IG","TSS","E4")
- colnames(summary.pat.counts.E5) <- c("IG","TSS","E5")
- colnames(summary.pat.counts.E6) <- c("IG","TSS","E6")
- colnames(summary.pat.counts.E7) <- c("IG","TSS","E7")
- colnames(summary.pat.counts.E8) <- c("IG","TSS","E8")
- colnames(summary.pat.counts.E9) <- c("IG","TSS","E9")
- colnames(summary.pat.counts.E10) <- c("IG","TSS","E10")
- colnames(summary.pat.counts.E11) <- c("IG","TSS","E11")
- colnames(summary.pat.counts.E12) <- c("IG","TSS","E12")
- #==============================
- # normalize counts by genome % per each group
- summary.mat.counts.E1$E1 <- summary.mat.counts.E1$E1/0.036
- summary.mat.counts.E2$E2 <- summary.mat.counts.E2$E2/0.317
- summary.mat.counts.E3$E3 <- summary.mat.counts.E3$E3/0.480
- summary.mat.counts.E4$E4 <- summary.mat.counts.E4$E4/0.009
- summary.mat.counts.E5$E5 <- summary.mat.counts.E5$E5/0.038
- summary.mat.counts.E6$E6 <- summary.mat.counts.E6$E6/0.010
- summary.mat.counts.E7$E7 <- summary.mat.counts.E7$E7/0.004
- summary.mat.counts.E8$E8 <- summary.mat.counts.E8$E8/0.010
- summary.mat.counts.E9$E9 <- summary.mat.counts.E9$E9/0.006
- summary.mat.counts.E10$E10 <- summary.mat.counts.E10$E10/0.024
- summary.mat.counts.E11$E11 <- summary.mat.counts.E11$E11/0.015
- summary.mat.counts.E12$E12 <- summary.mat.counts.E12$E12/0.052
- # normalize counts by genome % per each group
- summary.pat.counts.E1$E1 <- summary.pat.counts.E1$E1/0.035
- summary.pat.counts.E2$E2 <- summary.pat.counts.E2$E2/0.310
- summary.pat.counts.E3$E3 <- summary.pat.counts.E3$E3/0.488
- summary.pat.counts.E4$E4 <- summary.pat.counts.E4$E4/0.009
- summary.pat.counts.E5$E5 <- summary.pat.counts.E5$E5/0.038
- summary.pat.counts.E6$E6 <- summary.pat.counts.E6$E6/0.010
- summary.pat.counts.E7$E7 <- summary.pat.counts.E7$E7/0.004
- summary.pat.counts.E8$E8 <- summary.pat.counts.E8$E8/0.010
- summary.pat.counts.E9$E9 <- summary.pat.counts.E9$E9/0.006
- summary.pat.counts.E10$E10 <- summary.pat.counts.E10$E10/0.025
- summary.pat.counts.E11$E11 <- summary.pat.counts.E11$E11/0.015
- summary.pat.counts.E12$E12 <- summary.pat.counts.E12$E12/0.051
- #==============================
- summary.counts.E1 <- rbind(summary.pat.counts.E1, summary.mat.counts.E1)
- summary.counts.E2 <- rbind(summary.pat.counts.E2, summary.mat.counts.E2)
- summary.counts.E3 <- rbind(summary.pat.counts.E3, summary.mat.counts.E3)
- summary.counts.E4 <- rbind(summary.pat.counts.E4, summary.mat.counts.E4)
- summary.counts.E5 <- rbind(summary.pat.counts.E5, summary.mat.counts.E5)
- summary.counts.E6 <- rbind(summary.pat.counts.E6, summary.mat.counts.E6)
- summary.counts.E7 <- rbind(summary.pat.counts.E7, summary.mat.counts.E7)
- summary.counts.E8 <- rbind(summary.pat.counts.E8, summary.mat.counts.E8)
- summary.counts.E9 <- rbind(summary.pat.counts.E9, summary.mat.counts.E9)
- summary.counts.E10 <- rbind(summary.pat.counts.E10, summary.mat.counts.E10)
- summary.counts.E11 <- rbind(summary.pat.counts.E11, summary.mat.counts.E11)
- summary.counts.E12 <- rbind(summary.pat.counts.E12, summary.mat.counts.E12)
- #==============================
- #==============================
- allcounts <- summary
- allcounts <- merge(allcounts, summary.counts.E1, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E2, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E3, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E4, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E5, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E6, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E7, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E8, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E9, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E10, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E11, by=c("IG","TSS"),all=TRUE)
- allcounts <- merge(allcounts, summary.counts.E12, by=c("IG","TSS"),all=TRUE)
- allcounts[is.na(allcounts)] <- 0
- allcounts <- allcounts[,-4]
- #==============================
- allcounts <- allcounts %>% pivot_longer(cols = 5:16, names_to = "countstype", values_to = "n")
- allcounts$group <- paste(allcounts$IG, allcounts$TSS)
- allcounts$group2 <- paste(allcounts$TSS, allcounts$type)
- sum(allcounts$n)
- levelorder <- c("E2","E3","E8",
- "E1","E4",
- "E9","E11","E12",
- "E5", "E6","E7","E10")
- palette <- c("#000000","#666666","#333333",
- "#993333","#FF6633",
- "#FFFF99","#FFFFCC","#FFFF99",
- "#99CC66","#66CC66","#339966","#336633")
- unique(allcounts$group)
- #==============================
- pdf(file = "EXP012_NumberOfContactsFromTSS_Norm_diffcontacttypes_fill_Q30_12_bi-loop.pdf", width = 6.5, height = 5.5)
- p <- ggplot(data=allcounts, aes(x=factor(group2, level=c("active allele DMR","inactive allele DMR","active allele distal","inactive allele distal","biallele1 nonIG","biallele2 nonIG")), y=n, fill=factor(countstype, level=levelorder))) +
- geom_bar(stat="identity", position = "fill") +
- scale_y_continuous(expand = c(0, 0)) +
- labs(x = "Imprinted genes", y = "Normalized # contacts from TSS") +
- scale_fill_manual(values=palette) +
- my_theme + theme(legend.position = "right", legend.text=element_text(size=8))
- p
- dev.off()
- #==============================
- length(unique(allcounts$IG))
- allcounts$n.ave[allcounts$IG %in% c('Copg2','Ube3a','Kcnk9','Trappc9')] <- 4
- allcounts$n.ave[allcounts$IG %in% c('Sgce','Peg10','Mest','Peg3','Usp29','Snrpn','A230006K03Rik','B230209E15Rik','A330076H08Rik',
- 'Ndn','Magel2','Mkrn3','Peg12', 'Kcnq1ot1','Cdkn1c','Meg3','Peg13')] <- 17
- allcounts$n.ave[allcounts$type == "nonIG"] <- length(unique(allcounts$IG)) - 4 - 17
- allcounts$n <- allcounts$n/allcounts$n.ave
- #==============================
- pdf(file = "EXP012_NumberOfContactsFromTSS_Norm_diffcontacttypes_Q30_12_bi-loop.pdf", width = 6.5, height = 5.5)
- p <- ggplot(data=allcounts, aes(x=factor(group2, level=c("active allele DMR","inactive allele DMR","active allele distal","inactive allele distal","biallele1 nonIG","biallele2 nonIG")), y=n, fill=factor(countstype, level=levelorder))) +
- geom_bar(stat="identity") +
- scale_y_continuous(expand = c(0, 0)) +
- labs(x = "Imprinted genes", y = "Normalized # contacts from TSS") +
- scale_fill_manual(values=palette) +
- my_theme + theme(legend.position = "right", legend.text=element_text(size=8))
- p
- dev.off()
- #==============================
BB_CHiC_GRCm39_contactanalysisChromHMM_FIgure4.R at commit 016d4b2, no license · at the source
Overview
Abstract
The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.
Repositories
Its files are read in the Code ↔ Paper reader above, with 8 matches between paragraphs and lines of code.
Whipple-Lab/capture-hic-imprinting
016d4b249d40783a8163af765a2a63d1bfbd1506, 1 June 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
23 files
- Figure1/
BB_CHiC_GRCm39_Figure1.s , Shell, 160 lines, 2 matchesh - Figure2/
BB_CHiC_GRCm39_Figure2.s , Shell, 87 lines, 2 matchesh - Figure4/
BB_CHiC_GRCm39_contactan , R, 1,400 lines, 3 matchesalysisChromHMM_FIgure4.R - Figure6/
BB_CHiC_GRCm39_expectedn , R, 153 linesormalizedviewpointplot_F igure6.R - Figure6/
BB_CHiC_GRCm39_prepairs2 , R, 128 linesviewpointplot_Figure6.R - FigureSupp10/
BB_CHiC_GRCm39_FigureSup , Shell, 50 lines, 1 matchp10.sh - FigureSupp2/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp2.R - FigureSupp2/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp2 .R - FigureSupp3/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp3.R - FigureSupp3/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp3 .R - FigureSupp4/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp4.R - FigureSupp4/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp4 .R - FigureSupp5/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp5.R - FigureSupp5/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp5 .R - FigureSupp6/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp6.R - FigureSupp6/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp6 .R - FigureSupp7/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp7.R - FigureSupp7/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp7 .R - FigureSupp8/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp8.R - FigureSupp8/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp8 .R - FigureSupp9/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp9.R - FigureSupp9/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp9 .R - README.md, Text, 2 lines
Zenodo 21224497
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
- 27 September 2026: the link answers (HTTP 200)
23 files
- Figure1/
BB_CHiC_GRCm39_Figure1.s , Shell, 160 linesh - Figure2/
BB_CHiC_GRCm39_Figure2.s , Shell, 87 linesh - Figure4/
BB_CHiC_GRCm39_contactan , R, 1,400 linesalysisChromHMM_FIgure4.R - Figure6/
BB_CHiC_GRCm39_expectedn , R, 153 linesormalizedviewpointplot_F igure6.R - Figure6/
BB_CHiC_GRCm39_prepairs2 , R, 128 linesviewpointplot_Figure6.R - FigureSupp10/
BB_CHiC_GRCm39_FigureSup , Shell, 50 linesp10.sh - FigureSupp2/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp2.R - FigureSupp2/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp2 .R - FigureSupp3/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp3.R - FigureSupp3/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp3 .R - FigureSupp4/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp4.R - FigureSupp4/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp4 .R - FigureSupp5/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp5.R - FigureSupp5/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp5 .R - FigureSupp6/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp6.R - FigureSupp6/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp6 .R - FigureSupp7/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp7.R - FigureSupp7/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp7 .R - FigureSupp8/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp8.R - FigureSupp8/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp8 .R - FigureSupp9/
BB_CHiC_GRCm39_insulatio , R, 157 linesnscore_FigureSupp9.R - FigureSupp9/
BB_CHiC_GRCm39_prepairs2 , R, 101 linestriangleplot_FigureSupp9 .R - README.md, Text, 2 lines
Code availability statement
The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: Whipple-Lab/
capture-hic-imprinting
Read it in the paper: doi.org/10.1038/s41467-026-76506-3.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 44 scripts, each with its path and the digest of its content;
- 8 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- geo:GSE312069, at NCBI GEO; found in “Data availability”
Data availability statement
The paper has a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to a dataset: NCBI GEO GSE312069
Read it in the paper: doi.org/10.1038/s41467-026-76506-3.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 4 authors, 2 keywords, 15 MeSH terms, 4 funders, 54 references, 1 RRID.
Cite
This paper
Bae, B., Gu, K., Loftus, D., & Whipple, A. J. (2026). Allele-specific chromatin architecture shapes imprinted domains and coordinates a distal enhancer and antisense transcription at the mouse Mest-Copg2 domain. Nature communications, 17(1), 9543. https://
BibTeX
@article{bae2026allele,
author = {Bae, Bongmin and Gu, Katherine and Loftus, Daniel and Whipple, Amanda J},
title = {{Allele-specific chromatin architecture shapes imprinted domains and coordinates a distal enhancer and antisense transcription at the mouse Mest-Copg2 domain}},
journal = {Nature communications},
year = {2026},
month = aug,
volume = {17},
number = {1},
pages = {9543},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/
url = {https://
pmid = {42702594},
pmcid = {PMC13547231}
}
RIS
TY - JOUR
AU - Bae, Bongmin
AU - Gu, Katherine
AU - Loftus, Daniel
AU - Whipple, Amanda J
TI - Allele-specific chromatin architecture shapes imprinted domains and coordinates a distal enhancer and antisense transcription at the mouse Mest-Copg2 domain
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/
VL - 17
IS - 1
SP - 9543
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Allele-specific chromatin architecture shapes imprinted domains and coordinates a distal enhancer and antisense transcription at the mouse Mest-Copg2 domain",
"container-title": "Nature communications",
"author": [
{
"family": "Bae",
"given": "Bongmin"
},
{
"family": "Gu",
"given": "Katherine"
},
{
"family": "Loftus",
"given": "Daniel"
},
{
"family": "Whipple",
"given": "Amanda J"
}
],
"container-title-short":
"volume": "17",
"issue": "1",
"page": "9543",
"DOI": "10.1038/
"PMID": "42702594",
"PMCID": "PMC13547231",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
8
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.21203/rs.3.rs-9927928/v1 [code]
- Genome-wide and allele-resolved maps of the radial architecture of the mouse genomeJournal: Research Square (preprint)In common: reshape2, data.table, ggplot2, 1 other tool, genetics / omics, mouse, 2 references
- [2] doi:10.1371/journal.pgen.1012081
- ADNP regulates chromatin architecture and lineage fidelity during neural differentiation.Journal: PLoS geneticsIn common: mouse, 5 references
- [3] doi:10.1093/bib/bbag096 [code]
- scDIAGRAM: detecting chromatin compartments from individual single-cell Hi-C matrix without imputation or reference features.Journal: Briefings in bioinformaticsIn common: mouse, 5 references
- [4] doi:10.1038/s41467-026-73325-4 [code]
- A scalable Tn5-based method for genome-wide DNA methylation profiling in development and disease.Journal: Nature communicationsIn common: reshape2, ggplot2, tidyverse, genetics / omics, 2 references
- [5] doi:10.1016/j.stemcr.2026.102930 [code]
- ZFHX4 is necessary for dopaminergic neuron differentiation and controls cell cycle by regulating LIN28A.Journal: Stem cell reportsIn common: reshape2, ggplot2, tidyverse, genetics / omics, cellular / molecular, 1 reference
- [6] doi:10.1002/imt2.70163 [code]
- Spatial multi-omics unveils sphingolipid metabolic reprogramming within the retinal pathological niche.Journal: iMetaIn common: reshape2, data.table, ggplot2, 1 other tool, genetics / omics, mouse, cellular / molecular
- [7] doi:10.1038/s12276-026-01801-4 [code]
- Putative glioblastoma origin-like cells in the subventricular zone: isolation and characterization.Journal: Experimental & molecular medicineIn common: reshape2, data.table, ggplot2, 1 other tool, genetics / omics, mouse, cellular / molecular
- [8] doi:10.1371/journal.pcbi.1014573 [code]
- Cell-type-specific m1A dynamics are associated with microglial phenotypic transition and neuronal metabolic adaptation during spinal cord injury.Journal: PLoS computational biologyIn common: reshape2, data.table, ggplot2, 1 other tool, genetics / omics, mouse, cellular / molecular
- [9] doi:10.1172/jci.insight.207270 [code]
- Progressive hypothalamic neuroinflammation in ovariectomized mice parallels aging-related transcriptomic changes in the female human hypothalamus.Journal: JCI insightIn common: reshape2, data.table, ggplot2, 1 other tool, genetics / omics, mouse, cellular / molecular
- [10] doi:10.1186/s13073-026-01704-z [code]
- Gene expression profiling enables refined parcellation of cortical layers in the heterogeneous human cerebral cortex.Journal: Genome medicineIn common: reshape2, data.table, ggplot2, 1 other tool, genetics / omics, mouse, cellular / molecular
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 2 repositories of the authors' code, each at its verified commit and with its license, 44 scripts, and 8 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:f861e5680a8b748c…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
