Signals pertaining to transcriptional activation are transferred from enhancers found in intergenic loci to genes in the form of transcription factors, cofactors, and various transcriptional machineries such as RNA Pol II. How and where this information is transmitted to and from is central for decoding the regulatory landscape of any gene and identifying enhancers. Esearch3D is an unsupervised algorithm to predict enhancers. It reverses engineering the flow of information and identifies intergenic regulatory enhancers using solely gene expression and 3D genomic data. It models chromosome conformation capture (3C) data as chromatin interaction network (CIN) and then exploits graph-theory algorithms to integrate RNA-seq data to calculate an imputed activity score (IAS) for intergenic regions. We also provide a visualisation tool to allow an easy interpretation of the results.
Manindeer *, Giudice * et al. Esearch3D: Propagating gene expression in chromatin networks to illuminate active enhancers
*equally contributed
Esearch3D is available on R, you can install it by:
install.packages("devtools")
install.packages("htmltools", version="0.5.2", type="source")
devtools::install_github(
repo="LucaGiudice/Esearch3D",
ref = "main",
dependencies = "Depends",
upgrade = "always",
quiet = T
# type = "binary" # usable only in Windows OS
)
There are the following vignettes:
Schematic diagram of the network propagation used to impute activity values at intergenic nodes:
A schematic of how multi-gene and single-gene propagation differ in the relative imputed activity scores. Multi-gene propagation highlights I6, an enhancer labelled node, with a higher IAS than single-gene propagation.
Few lines of code to run D3SearchE prediction:
library(Esearch3D)
#Load and set up the example data ----
data("dummy_data_l")
#gene - fragment interaction network
gf_net=dummy_data_l$gf_net
#gene-fragment-fragment interaction network
ff_net=dummy_data_l$ff_net
#sample profile with starting values for genes and fragments
input_m=dummy_data_l$input_m
#length of chromosomes
chr_len=dummy_data_l$chr_len
#gene annotation
ann_net_b=dummy_data_l$ann_net_b
#Two step propagation -----
#Propagation over the gene-fragment network
gf_prop=rwr_OVprop(g=gf_net,input_m = input_m, no_cores=2, r=0.1)
#Propagation over the gene-fragment-fragment network
ff_prop=rwr_OVprop(g=ff_net,input_m = gf_prop, no_cores=2, r=0.8)
#Create igraph object with all the information included
net=create_net2plot(gf_net,input_m,gf_prop,ann_net_b,frag_pattern="F",ff_net,ff_prop)
#Start GUI
start_GUI(net, ann_net_b, chr_len, example=T)
#Single gene propagation -----
degree = 3
frag_pattern = "F"
gene_in=c("G1")
contrXgene_l=rwr_SGprop(gf_net, ff_net, gene_in, frag_pattern,
degree = degree, r1 = 0.1, r2 = 0.8, no_cores = 2)
#Create igraph object with all the information included
sff_prop=as.matrix(contrXgene_l$G1$contr_lxDest$ff_prop[,gene_in])
colnames(sff_prop)=gene_in
#Create igraph object with all the information included
net=create_net2plot(gf_net,input_m,gf_prop,ann_net_b,frag_pattern="F",ff_net,ff_prop)
#Start GUI
start_GUI(net, ann_net_b, chr_len, example=T)
Following plot shows you an example of how to interact with the GUI and its functionalities
MIT @ Giudice Luca
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.