
Copyright @ 2001-2004, The Institute for Genomic Research (TIGR).
All rights reserved.


Notes on Normalization Code Changes  (Entries are ordered by date
with starting at the most recent entry.  Process overview entry was
entered on 04.01.2003)

GENERAL NOTES:

The normalization process is described in the first
entry of this log (by date) 04.01.2003.  The code within the normalization
jar is authored by Wei Liang of TIGR and is part of TIGR's Midas package
for microarray normalization.  It is strongly recommended that users use
Midas for normalization due to it's greater support for a variety of
normalization and filtering techniques.  The code has been modified to 
some degree to adapt the mev environment.  Modifications to Midas
classes are marked in the code with the character string 'Mod for MeV'.
These modifications are generally to adapt the normalization algorithms
to run outside the Midas framework.  The normalization.jar code represents
the minimum code required to support the few normalization techniques
available in MeV.  The full code base for Midas can be downloaded at;

 www.tigr.org/software/tm4/download.html




-----------------------------------

Update Entry: 03.01.2004
 Entry Title: Integration of updated Midas normalization code to use
	      Midas version 2.18 code.

Normalization code has been updated to use classes in Midas version 2.18
(Authored by Wei Liang, TIGR).  Code changes made do not effect the output
of the normalization routines compared to earlier versions.  The code changes
mostly involved support for new midas program infrastructure and in no way will
change the output result.


[End 03.01.2004 Entry]



-----------------------------------

*Initial Entry: 04.01.2003
  Entry Title: Initial Integration of Midas Code and Process Description 

Data Normalization Code.  04-2003 MeV will support only Total Intensity
Iterative Linear Regression, Ratio Statistics, and Iterative Log Mean Centering.
Support classes and normalization algorithms have been incorporated from
TIGR-MIDAS 2.16 (Author: Wei Liang, The Institute for Genomic Research)
which remains the primary tool for data normalization

Note that normalization.jar contains a subset of the source code in
MIDAS 2.16 required to support the limited normalization capabilities of TMeV.

ColumnWorker is the main data structure used by the algorithms

A typical normalization proceeds as follows:
1.) "True Intensities" are accumulated into double arrays and a ColumnWorker is
constructed.
2.) The ColumnWorker is passed via constructor into a normalization algorithm
which performs the required manipulations. (parameters are also in the constructor)
3.) Data is retrieved from the resulting ColumnWorker and the data is placed
into the appropriate SlideDataElements (or arrays) as "Current Intensities"
(normalized).

Conventions for normalization:

"normalizedState" a class variable is used to indicate which intensities and
ratio's to deliver.  ISlideData.NO_NORMALIZATION forces the return of "True"
intensities, meaning unaltered,  while any other state indicates that "Current"
intensities (altered) should be returned.

Handling zeros:

A zero in one or both channels would greatly impact the normalization of points
containing two good intensities.  For this reason the following convention for 
handling one or two zero intensities has been adopted.  If one or both intensities
are zero this data is not passed on to the ColumnWorker for normalization and following
the normalization the "current" intensities are set to equal the "true", original, intensities.

By this convention the points are preserved AND the data that has been normalized 
matches MIDAS output.

[End 04.01.2003 Entry]


-----------------------------------