load the tsv data into a dataframe called mygenes.
install the package ‘plotly’
mygenes <- read.table('~/gene_dist_head.tsv',header=TRUE)
install.packages('plotly')
trying URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.6/plotly_4.9.0.tgz'
Content type 'application/x-gzip' length 2801589 bytes (2.7 MB)
==================================================
downloaded 2.7 MB
The downloaded binary packages are in
/var/folders/zj/8tv7p4jn2gbbx9n49kbzwzt80000gn/T//RtmpvKjieG/downloaded_packages
put in a summary of my genes into a data frame
summary(mygenes)
transcript_type feature chr
protein_coding :2001054 exon :1306656 1 : 238010
nonsense_mediated_decay: 293471 CDS : 791856 2 : 189916
processed_transcript : 173401 UTR : 304070 17 : 166529
retained_intron : 150034 transcript : 215170 19 : 163304
lincRNA : 55928 stop_codon : 73411 3 : 159475
antisense : 45811 start_codon: 73358 11 : 157597
(Other) : 108613 (Other) : 63791 (Other):1753481
start end
Min. : 577 Min. : 647
1st Qu.: 31698816 1st Qu.: 31700419
Median : 56565463 Median : 56566763
Mean : 73148763 Mean : 73152067
3rd Qu.:108204790 3rd Qu.:108206944
Max. :249230780 Max. :249231242
Test_graph.r script
library(ggplot2) # We load in libraries
library(plotly)
Registered S3 method overwritten by 'data.table':
method from
print.data.table
Registered S3 methods overwritten by 'htmltools':
method from
print.html tools:rstudio
print.shiny.tag tools:rstudio
print.shiny.tag.list tools:rstudio
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
Attaching package: ‘plotly’
The following object is masked from ‘package:ggplot2’:
last_plot
The following object is masked from ‘package:stats’:
filter
The following object is masked from ‘package:graphics’:
layout
# We define a factor set of autosomes
autosomes<-c("1","2","3","4","5","6","7","8","9","10",
"11","12","13","14","15","16","17","18","19","20","21","22")
# We create a new dataframe called 'genes' which only has autosomes, however we still have those additional factors
genes<- mygenes[ which(mygenes$chr %in% autosomes), ]
# We remove the factors and then order them so they are numerical order and not alphabetical
genes$chr <- factor(genes$chr, levels = autosomes)
# We plot in ggplot
ggplot(data = genes) + geom_bar(mapping = aes(x = chr, fill = feature), width = 1)

lets go to polar coordinates:
ggplot(data = genes) +
geom_bar(mapping = aes(x = chr, fill = feature), width = 1) +
coord_polar()

using ggplotly to create interactive grap:
aa<-ggplot(data = genes) + geom_bar(mapping = aes(x = chr, fill = feature), width = 1)
ggplotly(aa)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyBsb2FkIHRoZSB0c3YgZGF0YSBpbnRvIGEgZGF0YWZyYW1lIGNhbGxlZCBteWdlbmVzLgojIGluc3RhbGwgdGhlIHBhY2thZ2UgJ3Bsb3RseScKYGBge3J9Cm15Z2VuZXMgPC0gcmVhZC50YWJsZSgnfi9nZW5lX2Rpc3RfaGVhZC50c3YnLGhlYWRlcj1UUlVFKQppbnN0YWxsLnBhY2thZ2VzKCdwbG90bHknKQpgYGAKCiMgcHV0IGluIGEgc3VtbWFyeSBvZiBteSBnZW5lcyBpbnRvIGEgZGF0YSBmcmFtZQpgYGB7cn0Kc3VtbWFyeShteWdlbmVzKQpgYGAKCiMgVGVzdF9ncmFwaC5yIHNjcmlwdApgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKSAjIFdlIGxvYWQgaW4gbGlicmFyaWVzCmxpYnJhcnkocGxvdGx5KQojIFdlIGRlZmluZSBhIGZhY3RvciBzZXQgb2YgYXV0b3NvbWVzCmF1dG9zb21lczwtYygiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLAogIjExIiwiMTIiLCIxMyIsIjE0IiwiMTUiLCIxNiIsIjE3IiwiMTgiLCIxOSIsIjIwIiwiMjEiLCIyMiIpICAKIyBXZSBjcmVhdGUgYSBuZXcgZGF0YWZyYW1lIGNhbGxlZCAnZ2VuZXMnIHdoaWNoIG9ubHkgaGFzIGF1dG9zb21lcywgaG93ZXZlciB3ZSBzdGlsbCBoYXZlIHRob3NlIGFkZGl0aW9uYWwgZmFjdG9ycwpnZW5lczwtIG15Z2VuZXNbIHdoaWNoKG15Z2VuZXMkY2hyICVpbiUgYXV0b3NvbWVzKSwgXSAKIyBXZSByZW1vdmUgdGhlIGZhY3RvcnMgYW5kIHRoZW4gb3JkZXIgdGhlbSBzbyB0aGV5IGFyZSBudW1lcmljYWwgb3JkZXIgYW5kIG5vdCBhbHBoYWJldGljYWwKZ2VuZXMkY2hyIDwtIGZhY3RvcihnZW5lcyRjaHIsIGxldmVscyA9IGF1dG9zb21lcykgCiAjIFdlIHBsb3QgaW4gZ2dwbG90IApnZ3Bsb3QoZGF0YSA9IGdlbmVzKSArICBnZW9tX2JhcihtYXBwaW5nID0gYWVzKHggPSBjaHIsIGZpbGwgPSBmZWF0dXJlKSwgd2lkdGggPSAxKQpgYGAKCiMgbGV0cyBnbyB0byBwb2xhciBjb29yZGluYXRlczoKYGBge3J9CmdncGxvdChkYXRhID0gZ2VuZXMpICsKIGdlb21fYmFyKG1hcHBpbmcgPSBhZXMoeCA9IGNociwgZmlsbCA9IGZlYXR1cmUpLCB3aWR0aCA9IDEpICsKIGNvb3JkX3BvbGFyKCkKYGBgCgojIHVzaW5nIGdncGxvdGx5IHRvIGNyZWF0ZSBpbnRlcmFjdGl2ZSBncmFwOgpgYGB7cn0KYWE8LWdncGxvdChkYXRhID0gZ2VuZXMpICsgIGdlb21fYmFyKG1hcHBpbmcgPSBhZXMoeCA9IGNociwgZmlsbCA9IGZlYXR1cmUpLCB3aWR0aCA9IDEpCmdncGxvdGx5KGFhKQpgYGA=