Simultaneously plots DNA copy number data from multiple platforms.

Share:

Description

This function plots DNA copy number data from multiple platforms in vertically aligned panels. It aligns the position of probes across plots for easy comparison. It can also show the positions of breakpoints in a joint segmentation.

Usage

1
plot.crossplatform(pos, y, anchor, chpts = NULL, ranking = NULL, yhat = NULL, platform.names, num.panels = NA, xlim = NULL, ...)

Arguments

pos

A vector of sorted integer arrays, one array for each platform. pos[[k]] should give the positions, in increasing order, of the probes of the k-th platform.

y

A vector of intensity levels for each platform. y[[k]] should be the intensity levels corresponding to pos[[k]] for platform k.

anchor

The anchor set, returned by a call to merge.pos(...)

chpts

(optional) A set of positions of change-points, given in reference to the anchor set.

ranking

(optional) A set of integers showing the ranking of the change-points.

yhat

(optional) A vector of estimated intensity levels, with yhat[[k]] being the fitted values for y[[k]].

platform.names

(optional) A list of platform names.

num.panels

(optional) The number of vertical planels to divide the plotting area (default=length(pos)).

xlim

The limits of the x-axis in all of the plots.

...

Other plotting arguments.

Author(s)

Nancy R. Zhang

References

Zhang, NR, Senbabaoglu, Y. and Li, J.Z. (2009) Joint Estimation of DNA Copy Number from Multiple Platforms. Under review, download manuscript from http://www-stat.stanford.edu/~nzhang/web_multiplatform/

See Also

mpcbs, mpcbs.mbic, merge.pos

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
data(mpcbs.example)

# there are 3 platforms represented in this data example: Illumina, Affymetrix, and Agilent.
names(mpcbs.example)

# K is the number of platforms.
K=3

# Store the chromosome positions in vector pos,
# the intensities in vector y:

pos=vector("list",K)
pos[[1]] = mpcbs.example$illu[,1]
pos[[2]] = mpcbs.example$affy[,1]
pos[[3]] = mpcbs.example$agil[,1]

y = vector("list",K)
y[[1]] = mpcbs.example$illu[,2]
y[[2]] = mpcbs.example$affy[,2]
y[[3]] = mpcbs.example$agil[,2]

# Names of the platforms:
platform.names=c("Illumina","Affymetrix","Agilent")

# Get the anchor set.
anchor = merge.pos(pos)

# Plot the data

plot.crossplatform(pos,y,anchor=anchor,platform.names=platform.names, col="darkgray")

seg<-mpcbs.mbic(y,pos,anchor, MAX.CHPTS=50, platform.names=platform.names,plots=TRUE)
  
# Give it yhat:

plot.crossplatform(pos,y, yhat=seg$yhat, anchor=anchor, platform.names=platform.names, col="darkgray")

# Give it chpts, and it will show breaks:

plot.crossplatform(pos,y, yhat=seg$yhat, chpts=seg$chpts, anchor=anchor, platform.names=platform.names, col="darkgray")

# Very useful:  you can zoom in on the plots using parameter "xlim":

plot.crossplatform(pos,y, yhat=seg$yhat, chpts=seg$chpts, anchor=anchor, platform.names=platform.names, col="darkgray", xlim=c(5e7,1e8))

# Try zooming in further:

plot.crossplatform(pos,y, yhat=seg$yhat, chpts=seg$chpts, anchor=anchor, platform.names=platform.names, col="darkgray", xlim=c(5e7,6e7))