[BioC] Qspline (again)

Paul Boutros pcboutro@engmail.uwaterloo.ca
Tue, 5 Nov 2002 12:37:51 -0500 (EST)


Hi again,

This works great now.  Thanks for your help!
Paul

On Tue, 5 Nov 2002, Laurent Gautier wrote:

> On Wed, Oct 30, 2002 at 04:15:52PM -0500, Paul Boutros wrote:
> > Hi again,
> > 
> > > > > > The error message I get is:
> > > > > > Error in rep(data, t1) : invalid number of copies in "rep"
> > > > > > 
> > > > > 
> > > > > Try 'traceback()' just after the error message is fired. It may give
> > > > > us a hint about where this happened.
> > > > 
> > > > I get:
> > > > 3: rep(data, t1)
> > > > 2: array(y.offset, (k - 1))
> > > > 1: normalize.qspline(data2)
> > > > 
> > > > Does this help at all?
> > 
> > > It does. I had a hard time with the 'k' thing (and no answer from the
> > > corresponding author about my questions/remarks/suggestions). I suspect
> > > that for some reason you do not have the check added.  Does the code
> > > for the function look like follows ?
> > > -------------------
> > >   if (y.offset <= min.offset) { 
> > >     y.offset <- min.offset;
> > >     k <- round(py.inds[1]/min.offset)
> > >   }
> > > 
> > >   ## here is the part I suspect missing ##
> > >   if (k < 1) {
> > >     warning("qspline cannot be performed (insufficient number of
> > arrays)")
> > >     return(x)
> > >   }
> > >   ## ---- ##
> > > 
> > >   y.offset <- c(0, array(y.offset, (k-1)))
> > >   y.order <- order(target)
> > > -------------------
> > 
> > This is exactly how my code looks -- the check on array number is not
> > present.
> > However, I should note that I am doing this analysis with three arrays.
> > The code I use looks like this:
> > 
> > > data1 <- read.table("c:\\docume~1\\paul\\dev\\testvals.txt");
> > > data2 <- data.matrix(data1);
> > > data2;
> >          qry1.S635 qry1.S532 qry2.S635 qry2.S532 qry3.S635 qry3.S532
> > H3001A10     613.0     602.5     483.0     633.0      61.0      75.0
> > H3001A12    1208.5    1019.0    1209.0    1187.0      91.0     153.5
> > H3001B01     337.0     353.0     619.0     529.5     132.5     153.5
> > H3001C02     495.0     497.5      64.5     117.5      10.5      59.0
> > H3001C03     199.5     152.5     301.0     222.0      63.5      95.5
> > H3001C04    1855.5    1447.0    1969.0    1721.0     286.0     349.0
> > H3001C07    4765.5    3643.0    4889.0    4401.5    1064.0    1148.0
> > H3001C09     720.5     894.5     347.0     602.0     188.0     326.5
> > H3001C11     630.0     536.0     814.5     899.5      20.0      48.5
> > > c <- normalize.qspline(data2);
> > Error in rep(data, t1) : invalid number of copies in "rep"
> > > c <- normalize.qspline(data1);
> > Error in rep(data, t1) : invalid number of copies in "rep"
> > 
> > I tried adding the code you indicated as missing into the affy.R file.
> > I now get:
> > 
> >          qry1.S635 qry1.S532 qry2.S635 qry2.S532 qry3.S635 qry3.S532
> > H3001A10     613.0     602.5     483.0     633.0      61.0      75.0
> > H3001A12    1208.5    1019.0    1209.0    1187.0      91.0     153.5
> > H3001B01     337.0     353.0     619.0     529.5     132.5     153.5
> > H3001C02     495.0     497.5      64.5     117.5      10.5      59.0
> > H3001C03     199.5     152.5     301.0     222.0      63.5      95.5
> > H3001C04    1855.5    1447.0    1969.0    1721.0     286.0     349.0
> > H3001C07    4765.5    3643.0    4889.0    4401.5    1064.0    1148.0
> > H3001C09     720.5     894.5     347.0     602.0     188.0     326.5
> > H3001C11     630.0     536.0     814.5     899.5      20.0      48.5
> > 
> > Warning message: 
> > qspline cannot be performed (insufficient number of arrays) in:
> > normalize.qspline(data2)
> > 
> > This indicates to me that my input data is in an inappropriate format
> > somehow?
> 
> No. The format seems to be appropriate.
> 
> 
> > Any ideas where I go from here?
> > 
> 
> I do. As mentioned earlier the variable 'k' is estimated in the code
> through an iterative procedure (which has the annoying property to
> give a value that do not make sense in some cases).
> I contacted the corresponding author about that but get no answer.
> I inserted the error message "insufficient blahblablah" since I
> mainly observed that when applied with to a small number of arrays.
> One way to get something done, waiting for the day I will have time to
> go in details into that, would be to set a default value for k when the
> iterative things do not behave nicely.
> 
> Try to replace what you inserted with :
>  
> ## ----------- ##
>    if (k < 1) {
>      warning("'k' things did not work. Set to default value")
>      k <- 5 
>    }
> ## ---- ##
> 
> 
> Hopin' it helps,
> 
> 
> 
> 
> Laurent
> 
> 
> 
>