Weighted nearest neighbour imputation, WeNNI

WeNNI is a method for imputing unreliable expression data values. WeNNI imputes the missing values by using continuous spot quality weights. In WeNNI the quality of data values are not divided into groups of either missing or present, but rather a continuous quality weight is assigned to each data value.

The imputation performed by WeNNI is controlled with two parameters: the number of nearest neighbours to consider in the calculations and beta that is used in the calculation of weights. In the present version of WeNNI, the quality weights are calculated from a signal-to-noise ratio. The results presented in the WeNNI publication show that the choice of parameters is not crucial, and a value around 10 as the number of nearest neighbours and a beta in the range 0.1 to 1 is suggested when parameter tuning cannot be performed.

WeNNI is described in BMC Bioinformatics where we assessed imputation methods on three data sets containing replicate measurements. Of the compared methods, best performance and robustness were achieved with WeNNI.

Improving missing value imputation of microarray data by using spot quality weights
P. Johansson and J. Häkkinen
BMC Bioinformatics 7, 306 (2006)
Abstract Full Text PDF

Comments on WeNNI

  • The notion of weights becomes obsolete after running WeNNI, i.e., do not use the weight fed into WeNNI in any subsequent analysis because all weights are now strictly 1.
  • Running WeNNI as a BASE plug-in makes WeNNI destined to impute log ratios of channel 1 and channel 2 (M values in BASE world). A consequence of imputing log ratios is that a change in ratio cannot be assigned to a specific channel. This implies that log(channel1*channel2) (A values in BASE world) become undefined and useless. However, on request from BASE users it was decided that A values should not be affected by the transformation in cases where the A value is well defined before imputation. In cases when an A value do not exist before transformation (i.e. channel1<=0 or channel2<=0) it was decided that A should be set to 0. NOTE, this does not change the underlying WeNNI algorithm in any way but is rather conventions needed for BASE plug-in usage.


The WeNNI software is available as a stand alone software package, or as a plug-in to BASE, under the GNU General Public License.

Download WeNNI

Download latest stable release (WeNNI-0.6). You may need the BASE 1.2 plug-in development kit.
Previous version can be in the Attachments section below.

Checkout bleeding edge (maybe unstable) revision of WeNNI with

svn co

or browse the WeNNI svn repository.

Project statistics

svndigest generated project statistics.


Assigned tickets:

create a BASE2 plug-in for
wenni and the underlying super class should be abortable (

Open but not assigned tickets:

write HowToRelease document for
WeNNI for BASE2 should support the automatic plug-in installation feature of BASE
Autoconf issues in
Why is there a check for LIBTOOL in in the WeNNI project?

All open tickets

Last modified 7 years ago Last modified on Mar 10, 2010, 11:00:26 AM

Attachments (2)

Download all attachments as: .zip