Question: Gviz: How to plot transcripts with grouping given transcript names and a TxDb?
1
gravatar for stianlagstad
23 months ago by
stianlagstad890
Oslo, Norway
stianlagstad890 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.3k views
ADD COMMENTlink modified 23 months ago by Pierre Lindenbaum104k • written 23 months ago by stianlagstad890
2
gravatar for stianlagstad
23 months ago by
stianlagstad890
Oslo, Norway
stianlagstad890 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 23 months ago by stianlagstad890
2
gravatar for Pierre Lindenbaum
23 months ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum104k 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 23 months ago • written 23 months ago by Pierre Lindenbaum104k
3

dont like the design very much

ADD REPLYlink written 17 months ago by tiago211287890

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

ADD REPLYlink written 23 months ago by stianlagstad890
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: 1837 users visited in the last hour