Entering edit mode
kfbargad@lg.ehu.es
▴
260
@kfbargadlgehues-317
Last seen 10.2 years ago
Dear Jim,
thanks for your useful chunk of code. I pasted it and got some
results, i.e, two different types of lines, but the command reached an
erro and didn?t draw all the curves in my degradation plot. I had 27
arrays and got only twelve lines, and the error I got is the
following:
> my.plotAffyRNAdeg(AffyRNAdeg(data), col=1:length(sampleNames(data)))
Error in plot.xy(xy.coords(x, y), type = type, col = col, lty =
lty, ...) :
invalid line type
I got eight solid lines and four ?-? lines
Can you give me some more hints?
Regards,
David
You will likely have a hard time using just colors to separate the
samples. Changing the line type is likely to work better for you.
Unfortunately, plotAffyRNAdeg() doesn't have a lty variable that you
can
use to change the line type. However, it is not difficult to add.
Something like the following might do the trick (although what I have
done here is hackish and ad hoc).
my.plotAffyRNAdeg <- function (rna.deg.obj, transform
= "shift.scale",
cols = NULL, lntype = NULL, ...)
{
if (!is.element(transform, c("shift.scale", "shift.only",
"neither")))
stop("Tranform must be 'shift.scale','shift.only',
or 'neither'")
mns <- rna.deg.obj$means.by.number
if (is.null(cols))
cols = rep(4, dim(mns)[1])
ylab = "Mean Intensity"
if (transform == "shift.scale") {
sds <- rna.deg.obj$ses
mn <- mns[, 1]
mns <- sweep(mns, 1, mn)
mns <- mns/(sds)
mns <- sweep(mns, 1, 1:(dim(mns)[1]), "+")
ylab <- paste(ylab, ": shifted and scaled")
}
else if (transform == "shift.only") {
mn <- mns[, 1]
mns <- sweep(mns, 1, mn)
mns <- sweep(mns, 1, 1:(dim(mns)[1]), "+")
ylab <- paste(ylab, ": shifted")
}
plot(-2, -1, pch = "", xlim = range(-1, (dim(mns)[2])), ylim =
range(min(as.vector(mns)) -
1, max(as.vector(mns)) + 1), xlab = "5' <-----> 3'\n Probe
Number ",
ylab = ylab, axes = FALSE, main = "RNA digestion plot",
...)
axis(1)
axis(2)
if(is.null(lntype)){
full <- floor(dim(mns)[1]/8)
mod <- dim(mns)[1]%%8
for(i in (seq(along=full)))
lntype <- c(lntype, rep(i, 8))
lntype <- c(lntype, rep(full + 1, mod))
}
for (i in 1:dim(mns)[1]) lines(0:((dim(mns)[2] - 1)), mns[i,
], col = cols[i], lty = lntype[i])
}
Paste this into your R session, then you can do something like:
my.plotAffyRNAdeg(AffyRNAdeg(abatch), col=1:length(sampleNames
(abatch)))
HTH,
Jim