--- title: "Paired-end Interaction Tracks" author: "Paul Shannon" package: igvR date: "`r Sys.Date()`" output: BiocStyle::html_document vignette: > %\VignetteIndexEntry{"Paired-end Interaction Tracks"} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} options(width=120) knitr::opts_chunk$set( collapse = TRUE, eval=interactive(), echo=TRUE, comment = "#>" ) ``` # Overview With the popularity and wide availability of [Hi-C](https://en.wikipedia.org/wiki/Hi-C_(genomic_analysis_technique)) data - a high throughput chromatin confirmation capture technology - an appropriate display format was needed. The igv.js team created the [Interact](https://github.com/igvteam/igv.js/wiki/Interact) track, supporint the [bedpe](https://bedtools.readthedocs.io/en/latest/content/general-usage.html#bedpe-format) data file format. # Example We demonstrate this track with a few lines extracted from the Encode project's [ENCFF110BUX](https://www.encodeproject.org/search/?type=Experiment&searchTerm=ENCFF110BUX) experiment, from Michael Snyder's lab, showing the boundaries and extent of two topologically-associated domains (TADS), typically small genomic regions which are somewhat isolated from neighboring regions, which is believed to play a role in restricting enhancer/promoter interactions. An equally important, and perhaps more common use of paired-end interaction data is to represent Hi-C maps of enhancer-promoter interactions. These data also rely upon the *bedpe* file format. igv.js provides several visualization parameters not yet supported in igvR. To define a TAD, two genomic locations are required, as shown here and in the code below: ``` chrom1 start1 end1 chrom2 start2 end2 2 105780000 105790000 2 105890000 105900000 2 105575000 105600000 2 106075000 106100000 ``` # Code These few lines provide a complete, if minimal introduction to the *BedpeInteractionsTrack*. ```{r eval=FALSE} library(igvR) igv <- igvR() setBrowserWindowTitle(igv, "Paired-end demo") setGenome(igv, "hg38") tbl.bedpe <- data.frame(chrom1=c("2","2"), start1=c(105780000, 105575000), end1=c(105790000, 105600000), chrom2=c("2","2"), start2=c(105890000, 106075000), end2=c(105900000, 106100000), stringsAsFactors=FALSE) # construct a "region of interest" (roi) string from tbl.bedpe # this is where our two features are found. shoulder <- 300000 roi <- sprintf("%s:%d-%d", tbl.bedpe$chrom1[1], min(tbl.bedpe$start1) - shoulder, max(tbl.bedpe$end2) + shoulder) showGenomicRegion(igv, roi) track <- BedpeInteractionsTrack("ENCFF110BUX", tbl.bedpe) displayTrack(igv, track) ``` # Display ```{r, eval=TRUE, echo=FALSE, out.width="95%"} knitr::include_graphics("pairedEnd.png") ``` # Session Info ```{r eval=TRUE} sessionInfo() ```