Dear list members,
There are three kinds of weights in the latest version of limma
(ver. 2.12.0). They are spot quality weights which is used in
function read.maimages, array quality weights, and print-tip quality
weights. All these three weights can be used in linear model fitting
and the default weight is spot quality weight. As we can see in the
source code of lmFit,"if (missing(weights) &&
!is.null(object$weights)) weights <- object$weights"(type lmFit and
enter for detail), thus the spot quality weights, inherited from the
primitive RGList, are utilized in the linear model fitting by
default. However,it can be changed by assigning to the parameter
'weights' of lmFit the array weights or print-tip weights produced
by arrayWeights or printtipWeights.
The three weights are at three different levels, i.e. array level,
print-tip level and spot level. Array level and print-tip level are
based on heteroscedastic model and the corresponding weights are
converted from the array variances or print-tip variances while the
spot quality weights are not. The spot quality weights are generated
using only the information of an individual spot.
My question comes. Can we extend the heteroscedastic model to spot
level?
At array level, all the genes on a chip share the same weight, or
the array weight produced by arrayWeights. At the print-tip level,
all the genes in the same print tip share the same weight, or
print-tip weight produced by printtipWeights. In these two weights,
I prefer the print-tip weight since it has a better resolution and
it modulates the weight in a finer way. Then I cannot help thinking
whether the weight can be modulated in an even finer way, or at the
spot level. If we apply the heteroscedastic model to spots, can we
convert the variance to spot weights as done in array weight and
print-tip weight?
I am not an expert in mathematics. I wonder whether this proposal is
reasonable and feasible. Furthermore, I think the best weight for
linear model fitting is print-tip weight up to now.
Thanks in advance for your reply.
Dejian Zhao
Dear Dejian,
I'm glad to hear that you find the arrayWeights() and
printtipWeights()
functions useful.
The heteroscedastic model fitted by these functions uses a gene-by-
gene
(spot-by-spot) update algorithm to estimate the parameters in the
variance
model by default. With as few as 100 genes, reasonable parameter
estimates
can still be recovered. I haven't tried using fewer than 100 genes
though,
so I'm not sure how low you can go before this algorithm becomes
unreliable.
You certainly need more than 1 gene to fit the joint mean-variance
model
though. Suppose we have an experiment with n arrays, so n
observations for
each gene. The mean model will have 1 or more parameters and the
variance
model has n-1 parameters, which leaves us with as many or typically
more
parameters than observations, which cannot be estimated.
I hope this helps. Best wishes,
Matt
> Dear list members,
>
> There are three kinds of weights in the latest version of limma
> (ver. 2.12.0). They are spot quality weights which is used in
> function read.maimages, array quality weights, and print-tip quality
> weights. All these three weights can be used in linear model fitting
> and the default weight is spot quality weight. As we can see in the
> source code of lmFit,"if (missing(weights) &&
> !is.null(object$weights)) weights <- object$weights"(type lmFit and
> enter for detail), thus the spot quality weights, inherited from the
> primitive RGList, are utilized in the linear model fitting by
> default. However,it can be changed by assigning to the parameter
> 'weights' of lmFit the array weights or print-tip weights produced
> by arrayWeights or printtipWeights.
>
> The three weights are at three different levels, i.e. array level,
> print-tip level and spot level. Array level and print-tip level are
> based on heteroscedastic model and the corresponding weights are
> converted from the array variances or print-tip variances while the
> spot quality weights are not. The spot quality weights are generated
> using only the information of an individual spot.
>
> My question comes. Can we extend the heteroscedastic model to spot
> level?
>
> At array level, all the genes on a chip share the same weight, or
> the array weight produced by arrayWeights. At the print-tip level,
> all the genes in the same print tip share the same weight, or
> print-tip weight produced by printtipWeights. In these two weights,
> I prefer the print-tip weight since it has a better resolution and
> it modulates the weight in a finer way. Then I cannot help thinking
> whether the weight can be modulated in an even finer way, or at the
> spot level. If we apply the heteroscedastic model to spots, can we
> convert the variance to spot weights as done in array weight and
> print-tip weight?
>
> I am not an expert in mathematics. I wonder whether this proposal is
> reasonable and feasible. Furthermore, I think the best weight for
> linear model fitting is print-tip weight up to now.
>
> Thanks in advance for your reply.
>
> Dejian Zhao