Raw File
functions.R
get.bedpe.chr2R = function(df,min.reads=10,min.dist=3000000){
  require(Sushi)
  #detach("package:dplyr", unload=TRUE)
  #detach("package:plyr", unload=TRUE)
  require(dplyr)
  require(stringr)
  
  chrom=2
  chromstart=1
  chromend=25286936
  
  df = subset(df,df$V1==chrom)
  df$dist = abs(df$V2-df$V5)
  df = subset(df,df$dist>min.dist)
  df$dist=NULL
  bedpe = df
  bedpe$V4 = ifelse(bedpe$V4=="=",bedpe$V1)
  ex.data = data("Sushi_5C.bedpe")
  #str(Sushi_5C.bedpe)
  colnames(bedpe)=colnames(Sushi_5C.bedpe)[c(1:6)]
  bedpe$name = NA
  #head(bedpe)
  # bedpe$score = log10(abs(bedpe$start1-bedpe$start2))
  
  dfr1=bedpe
  dfr1$distc = cut(bedpe$start1,include.lowest = TRUE,breaks = seq(1,chromend-200000,by = 100000))
  dfr1 <- dfr1 %>% mutate(start=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"^[0-9-e+.]+")),
                          end=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"[0-9-e+.]+$")),
                          mid=start+((end-start)/2))
  
  dfr2=bedpe
  dfr2$distc = cut(bedpe$start2,include.lowest = TRUE,breaks = seq(1,chromend,by = 100000))
  dfr2 <- dfr2 %>% mutate(start=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"^[0-9-e+.]+")),
                          end=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"[0-9-e+.]+$")),
                          mid=start+((end-start)/2))
  
  
  bedpe$start1 = dfr1$start
  bedpe$start2 = dfr2$start
  bedpe$end1 = dfr1$end
  bedpe$end2 = dfr2$end
  
  head(bedpe)
  bedpe2 = as.data.frame(bedpe %>% dplyr::group_by_all() %>% dplyr::summarise(score = n()))
  head(bedpe2)
  inv.coord = data.frame('start1'=c(14500000,8800000),"start2"=c(18700000,17700000))
  inv2rns = data.frame('start1'=c(15300000),"start2"=c(20200000))
  #fiveormoreeu = data.frame('start1' = c(5500000,12700000),'start2'=c(25100000,18900000))
  smol = c(12700000,18900000)
  # bedpe2$id = ifelse(bedpe2$start1 %in% inv.coord$start1 &
  #                       bedpe2$start2 %in% inv.coord$start2,
  #                     "In(2R)Mal",ifelse(bedpe2$start1<5300000,
  #                                        "heterochromatin","other"))
  bedpe2$id = ifelse(bedpe2$start1 %in% inv.coord$start1 & bedpe2$start2 %in% inv.coord$start2,
                     "In(2R)Mal",
                     ifelse(bedpe2$start1 %in% inv2rns$start1 & bedpe2$start2 %in% inv2rns$start2,
                            "In(2R)NS", "unknown"))
  
  bedpe2 = subset(bedpe2, bedpe2$score>min.reads)
  
  
  return(bedpe2)
}


my.bedpe.plot.nreads.chr2R = function(dat,mytitle="Title"){
  
  chrom=2
  chromstart=1
  chromend=25286936
  
  dat = subset(dat,dat$chrom1==chrom & dat$chrom2==chrom)
  dat$id2 = ifelse(dat$id=="In(2R)Mal",1,
                   ifelse(dat$id=="In(2R)NS",2,3))
  str(dat)
  
  # dat$id2 = if(length(unique(dat$id2))==1){
  #   runif(nrow(dat),min = 3,max = 4)
  # } else {
  #     dat$id2
  #   }
  
  str(dat)
  
  # colores=ifelse(1%in%dat$id2, colorRampPalette(c("darkorange","grey")),
  #                ifelse(2%in%dat$id2, colorRampPalette(c("blue","grey")), colorRampPalette(c("grey","grey"))))
  # 
  # colores
  # 
  #colores
  #plot.new()
  
  try(
    ifelse(
      length(unique(dat$id2))==1, 
      plotBedpe(dat,
                heights = dat$score,
                chrom = '2',
                chromstart = chromstart,
                chromend = chromend,
                plottype = 'ribbons'),
      plotBedpe(dat,
                heights = dat$score,
                chrom = '2',
                chromstart = chromstart,
                chromend = chromend,
                plottype = 'ribbons',
                colorby = dat$id2,
                colorbycol = topo.colors)
    ), silent=TRUE)
  
  
  labelgenome(chrom = "2R", chromstart,chromend,n=50,scale="Mb")
  #abline(v=c(14591034,18774475),col='black')
  #abline(v=c(8855601,15616195),col='black',lty=6)
  abline(v = c())
  #legend("topright",inset=0.01,legend=c("In(2R)Mal","In(2R)NS","heterochromatin","unknown"),col=c(topo.colors(4)),pch=19,bty='n',text.font=2)
  # legend("topright",legend = levels(as.factor(dat$id)),
  #        col = c(topo.colors(4)),
  #        pch=19,bty='n',text.font=2)
  axis(side=2,las=2,tcl=.2)
  title(mytitle)
}


get.bedpe.chr2L = function(df,min.reads=50,min.dist=3000000){
  require(Sushi)
  #detach("package:dplyr", unload=TRUE)
  #detach("package:plyr", unload=TRUE)
  require(dplyr)
  require(stringr)
  
  chrom='1'
  chromstart=1
  chromend=23513712
  
  df = subset(df,df$V1==chrom)
  df$dist = abs(df$V2-df$V5)
  df = subset(df,df$dist>min.dist)
  df$dist=NULL
  bedpe = df
  bedpe$V4 = ifelse(bedpe$V4=="=",bedpe$V1)
  ex.data = data("Sushi_5C.bedpe")
  #str(Sushi_5C.bedpe)
  colnames(bedpe)=colnames(Sushi_5C.bedpe)[c(1:6)]
  bedpe$name = NA
  #head(bedpe)
  # bedpe$score = log10(abs(bedpe$start1-bedpe$start2))
  
  dfr1=bedpe
  dfr1$distc = cut(bedpe$start1,include.lowest = TRUE,breaks = seq(1,chromend-200000,by = 100000))
  dfr1 <- dfr1 %>% mutate(start=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"^[0-9-e+.]+")),
                          end=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"[0-9-e+.]+$")),
                          mid=start+((end-start)/2))
  
  dfr2=bedpe
  dfr2$distc = cut(bedpe$start2,include.lowest = TRUE,breaks = seq(1,chromend,by = 100000))
  dfr2 <- dfr2 %>% mutate(start=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"^[0-9-e+.]+")),
                          end=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"[0-9-e+.]+$")),
                          mid=start+((end-start)/2))
  
  
  bedpe$start1 = dfr1$start
  bedpe$start2 = dfr2$start
  bedpe$end1 = dfr1$end
  bedpe$end2 = dfr2$end
  
  head(bedpe)
  bedpe2 = as.data.frame(bedpe %>% dplyr::group_by_all() %>% dplyr::summarise(score = n()))
  head(bedpe2)
  inv.coord = data.frame('start1'=c(2200000),"start2"=c(13100000))
  #inv2rns = data.frame('start1'=c(15300000),"start2"=c(20200000))
  #fiveormoreeu = data.frame('start1' = c(5500000,12700000),'start2'=c(25100000,18900000))
  smol = c(12700000,18900000)
  # bedpe2$id = ifelse(bedpe2$start1 %in% inv.coord$start1 &
  #                       bedpe2$start2 %in% inv.coord$start2,
  #                     "In(2R)Mal",ifelse(bedpe2$start1<5300000,
  #                                        "heterochromatin","other"))
  bedpe2$id = ifelse(bedpe2$start1 %in% inv.coord$start1 & bedpe2$start2 %in% inv.coord$start2,
                     "In(2L)t", "unknown")
  
  bedpe2 = subset(bedpe2, bedpe2$score>min.reads)
  bedpe2
  
  return(bedpe2)
}


my.bedpe.plot.nreads.chr2L = function(dat,mytitle="Title"){
  
  
  chrom='1'
  chromstart=1
  chromend=23513712
  
  dat = subset(dat,dat$chrom1==chrom & dat$chrom2==chrom)
  dat$id2 = ifelse(dat$id=="In(2L)t",1,2)
  dat
  
  # dat$id2 = if(length(unique(dat$id2))==1){
  #   runif(nrow(dat),min = 3,max = 4)
  # } else {
  #   dat$id2
  # }
  # 
  # dat
  
  #colores=ifelse(1%in%dat$id2, colorRampPalette(c("blue","grey")), colorRampPalette(c("grey","grey")))
  
  #dat
  #colores
  #plot.new()
  
  try(ifelse(
      length(unique(dat$id2))==1, 
      plotBedpe(dat,
                heights = dat$score,
                chrom = '1',
                chromstart = chromstart,
                chromend = chromend,
                plottype = 'ribbons'),
      plotBedpe(dat,
                heights = dat$score,
                chrom = '1',
                chromstart = chromstart,
                chromend = chromend,
                plottype = 'ribbons',
                colorby = dat$id2,
                colorbycol = topo.colors)
      ), 
    silent=TRUE)
  
  
  
  labelgenome(chrom = "2L", chromstart,chromend,n=50,scale="Mb")
  #abline(v=c(14591034,18774475),col='black')
  #abline(v=c(8855601,15616195),col='black',lty=6)
  #legend("topright",inset=0.01,legend=c("In(2R)Mal","In(2R)NS","heterochromatin","unknown"),col=c(topo.colors(4)),pch=19,bty='n',text.font=2)
  # legend("topright",legend = levels(as.factor(dat$id)),
  #        col = c(topo.colors(4)),
  #        pch=19,bty='n',text.font=2)
  axis(side=2,las=2,tcl=.2)
  title(mytitle)
}

get.bedpe.Sd  = function(df,min.reads=1,min.dist=3000){
  require(Sushi)
  #detach("package:dplyr", unload=TRUE)
  #detach("package:plyr", unload=TRUE)
  require(dplyr)
  require(stringr)
  
  df = subset(df,df$V1==1)
  df$dist = abs(df$V2-df$V5)
  df = subset(df,df$dist>min.dist)
  df$dist=NULL
  bedpe = df
  bedpe$V4 = ifelse(bedpe$V4=="=",bedpe$V1)
  ex.data = data("Sushi_5C.bedpe")
  #str(Sushi_5C.bedpe)
  colnames(bedpe)=colnames(Sushi_5C.bedpe)[c(1:6)]
  bedpe$name = NA
  #head(bedpe)
  # bedpe$score = log10(abs(bedpe$start1-bedpe$start2))
  
  dfr1=bedpe
  dfr1$distc = cut(bedpe$start1,include.lowest = TRUE,breaks = seq(19400000,19600000,by = 500))
  dfr1 <- dfr1 %>% mutate(start=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"^[0-9-e+.]+")),
                          end=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"[0-9-e+.]+$")),
                          mid=start+((end-start)/2))
  
  dfr2=bedpe
  dfr2$distc = cut(bedpe$start2,include.lowest = TRUE,breaks = seq(19400000,19600000,by = 500))
  dfr2 <- dfr2 %>% mutate(start=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"^[0-9-e+.]+")),
                          end=as.integer(str_extract(str_replace_all(distc,"[\\(\\)\\[\\]]",""),"[0-9-e+.]+$")),
                          mid=start+((end-start)/2))
  
  
  bedpe$start1 = dfr1$start
  bedpe$start2 = dfr2$start
  bedpe$end1 = dfr1$end
  bedpe$end2 = dfr2$end
  
  head(bedpe)
  bedpe2 = as.data.frame(bedpe %>% dplyr::group_by_all() %>% dplyr::summarise(score = n()))
  bedpe2$name ='unknown'
  head(bedpe2)
  
  bedpe2 = subset(bedpe2,bedpe2$score>min.reads)
  bedpe2 = bedpe2[complete.cases(bedpe2),]
  
  return(bedpe2)
}

my.bedpe.plot.Sd = function(dat,mytitle="Title"){
  
  
  chrom='1'
  chromstart=19430000
  chromend=19460000
  
  # pbpe = plotBedpe(dat,1,chromstart,chromend,heights = dat$score,
  #                  plottype="loops",colorby=dat$score,colorbycol=SushiColors(3))
  pbpe = plotBedpe(dat,1,chromstart,chromend,heights = dat$score,
                   plottype="loops")
  
  
  labelgenome(chrom = "2L", chromstart,chromend,n=50,scale="bp")
  abline(v=c(19441959,19447317),col='black',lty=6)
  axis(side=2,las=2,tcl=.2)
  title(mytitle)
}
back to top