Learn R Programming

annmap (version 1.14.0)

ngsPlot: Plotting BAM file data alongside the features of a chromosome

Description

These functions aid plotting a-la xmapbridge but in a format that is more publication friendly

Usage

# Utility Methods convertBamToRle( bam.file.name, chr, start, end, chr.name.mapping=function( name ){ name } ) generateBridgeData( xrange, bamFiles, colours=NULL, names=NULL ) ngsTraceScale( vector.of.xbams.and.ybams ) ngsTraceLabel( rle.data ) ngsTracePlotter( rle.data, start, end, ylim, trace.label.properties=list(), smoothing.function=function( rle, ... ) { IRanges::runmean( rle, k=1001, endrule='constant' ) }, trace.clip='inherit', trace.draw.scale=FALSE, trace.bor='transparent', trace.pad=c(0,0), ... )
# Plotting Methods ngsBridgePlot( xrange, data=list(), main=NULL, sub=NULL, highlights=NULL, trace.plotter=ngsTracePlotter, genome.layout.weight=4, trace.scale=ngsTraceScale, trace.draw.scale=NULL, trace.match.strand=TRUE, probe.plot=NULL, exon.depth.plot=genomicExonDepthPlot, .genes=NULL, .exons=NULL, ... )

Arguments

bam.file.name
The name of the BAM file to read in
chr
The chromosome of interest.
start
The start of the region of interest
end
The end of the region of interest
chr.name.mapping
The function to convert between the Annmap chr name to the chr name in the BAM file. By default, this just uses chr supplied as the parameter, however it can be set to any function you like. One example of this is generalisedNameToNCBI
xrange
The genomic range for the x-axis. Should be a GRanges object.
bamFiles
A vector containing the filenames of your BAM files.
colours
A vector of colours for each file (sensible defaults will be chosen if NULL).
names
A vector of names to show on the traces drawn by ngsTracePlotter
vector.of.xbams.and.ybams
The trace.scale function is passes a vector of the elements of xbams and ybams concatenated together.
rle.data
A list containing fields rle (the Rle data to be plotted), name (the name of the Trace) and col (the colour for the trace).
ylim
A vector of min and max values for this plot (usually retrieved from ngs.trace.scale)
trace.label.properties
Properties to be sent to the grid.text call for plotting the label on the trace. To hide the label, this should be NA.
smoothing.function
A function that generates a smoothed RLE object.
trace.clip
Is the trace clipped to it's bounding box? One of 'inherit', 'on' or 'off'. See viewport.
trace.draw.scale
If TRUE, x and y scales are drawn with main=TRUE (see grid.xaxis and grid.yaxis), if FALSE, then neither axis is drawn. You can control individual axis drawing by passing a vector such as trace.draw.scale='x' to just draw the x axis. You can also pass a list such as trace.draw.scale=list(x=TRUE,y=FALSE), and this will draw both the x and y axis, but pass main=TRUE to the grid.xaxis call, and main=FALSE to grid.yaxis
trace.bor
The colour for a box that is drawn round this trace.plot.
trace.pad
A 2 element vector consisting of the number of 'lines' of padding to allow at the top and bottom of the plot respecively
data
A list containing an element per trace. Each element of this list is, in turn, passed to the trace.plotter and trace.scale functions where the plotting happens -- see details. )
main
The main title for the plot.
sub
A sub-title for the plot.
highlights
Highlight regions for the plot. See genomicPlot.
trace.plotter
The function to call to draw the traces (see ngsTracePlotter)
genome.layout.weight
The weight for the genomic plot in the layout of this grid
trace.scale
Either a function to calculate the global max for the NGS traces (see ngsTraceScale) OR a 2 element vector cntaining the min and max extent of the trace.
trace.match.strand
If TRUE, we will only draw the rle data from the strand defined in xrange. If false, we will draw all of the rle data. Can also be set to '+' or '-' to only draw the trace from the given strand (ignoring the strand of xrange).
probe.plot
The function to plot the probes (see genomicProbePlot), NULL if not drawn.
exon.depth.plot
The function to draw the exon depth (see genomicExonDepthPlot), NULL if not drawn.
.genes
Optionally pass a list of genes to limit the plot to.
.exons
An optional list of exons to limit the plot to.
...
Parameters passed on to functions called by this function

Details

convertBamToRle will take a BAM file name, and a region of interest and return a list() containing two elements, '+' and '-'. Each element will be an Rle object, one for each strand.

The data parameter to ngsBridgePlot is a list of elements as defined in the rle.data parameter, one element per NGS trace, ie:

    library(grid)
    library(annmap)

# Connect to datasource with annmapConnect()

# Ensure we have a clean plot grid.newpage()

bamFiles = c( 'data1.bam', 'data2.bam', 'data3.bam' ) colours = rainbow( 3, v=0.5, s=0.5 ) data = lapply( seq_along( bamFiles ), function( idx ) { list( rle=convertBamToRle( bamFiles[ idx ], 'I', 40000, 100000 ), col=colours[ idx ], name=paste( 'Trace', bamFiles[ idx ] ) ) } ) ngsBridgePlot( RangedData( space='I', ranges=IRanges( 40000, 100000 ) ), data=data, main='Example Plot' )

See Also

genomicProbePlot, genomicPlot, genomicExonDepthPlot