Question: Gviz: How to plot transcripts with grouping given transcript names and a TxDb?
1
gravatar for stianlagstad
18 months ago by
stianlagstad830
Oslo, Norway
stianlagstad830 wrote:

(I also asked this question on the Bioconductor support site here.)

I'm stumped. I'm trying to plot a few transcripts at the same time, given transcript names and a TxDb. These are examples of approaches I've tried:

# ------------------------------------------------------------------------------
# Setup:
library(TxDb.Hsapiens.UCSC.hg19.knownGene)
library(Gviz)
txdb <- TxDb.Hsapiens.UCSC.hg19.knownGene

# ------------------------------------------------------------------------------
# Try 1:
gr <- GenomicFeatures::exons(
  txdb,
  vals = list(tx_name = c("uc001aaa.3", "uc010nxq.1")),
  columns = list("EXONNAME", "TXNAME", "GENEID"))
track <- Gviz::GeneRegionTrack(gr)
Gviz::plotTracks(track)
# Creates a plot, but doesn't show transcript grouping

enter image description here

# ------------------------------------------------------------------------------
# Try 2
gr <- GenomicFeatures::transcripts(
  txdb,
  vals = list(tx_name = c("uc001aaa.3", "uc010nxq.1")),
  columns = list("EXONNAME", "TXNAME", "GENEID"))
track <- Gviz::GeneRegionTrack(gr)
Gviz::plotTracks(track)
# Creates a plot, but has no exon/intron information

enter image description here

# ------------------------------------------------------------------------------
# Try 3
gr <- exonsBy(txdb, by = "tx", use.names=TRUE)[c("uc001aaa.3", "uc010nxq.1")]
track <- Gviz::GeneRegionTrack(gr)
# Error in .fillWithDefaults(DataFrame(chromosome = as.character(seqnames(range)),  : 
# Number of elements in argument 'feature' is invalid

None of these work for me. I want to display exon/intron-structures and have arrows between exons. Does anyone have suggestions?

gviz bioconductor R • 1.0k views
ADD COMMENTlink modified 18 months ago by Pierre Lindenbaum98k • written 18 months ago by stianlagstad830
2
gravatar for stianlagstad
18 months ago by
stianlagstad830
Oslo, Norway
stianlagstad830 wrote:

I found a solution that worked! Typical to find it shortly after asking the question, but here it is:

# ------------------------------------------------------------------------------
# Try 4
gr <- exonsBy(txdb, by = "tx", use.names=TRUE)[c("uc001aaa.3", "uc010nxq.1")]
gr <- unlist(gr)
elementMetadata(gr)$transcript <- names(gr)
track <- Gviz::GeneRegionTrack(gr)
Gviz::plotTracks(track)

enter image description here

Using exonsBy gives a GrangesList with one GRanges object for each transcript. Unlisting the GrangesList creates a named (important!) GRanges object with all exons. Using those names to set the $transcript metadata column solved the problem.

ADD COMMENTlink written 18 months ago by stianlagstad830
2
gravatar for Pierre Lindenbaum
18 months ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum98k wrote:

can't resist: using mysql+ucsc and XSLT :-P

the stylesheet: https://github.com/lindenb/xslt-sandbox/blob/master/stylesheets/bio/ucsc/ucsc-sql2svg.xsl

mysql --user=genome --host=genome-mysql.cse.ucsc.edu  -D hg19 -e 'select * from knownGene where name in ("uc001aaa.3","uc010nxq.1")' -X |\
xsltproc stylesheets/bio/ucsc/ucsc-sql2svg.xsl  - > out.svg

enter image description here

ADD COMMENTlink modified 18 months ago • written 18 months ago by Pierre Lindenbaum98k
3

dont like the design very much

ADD REPLYlink written 12 months ago by tiago211287770

Thanks, that's an interesting way to create transcript visualizations!

ADD REPLYlink written 18 months ago by stianlagstad830
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1374 users visited in the last hour