Version 41 (modified by markus, 9 years ago) (diff)


Illumina SNP Normalization

tQN is a strategy using quantile normalization to improve the quality of data from Illumina Infinium Whole-Genome Genotyping SNP Beadchips described in

Normalization of Illumina Infinium whole-genome SNP data improves copy number estimates and allelic intensity ratios

  1. Staaf, J. Vallon-Christersson, D. Lindgren, G. Juliusson, R. Rosenquist, M. Höglund, Å. Borg, and M. Ringnér

BMC Bioinformatics 9:409 (2008)


  • Oct. 17, 2008. tQN 1.1.0 released. New features include support for output format for BAFsegmentation and changed BAF and log R ratio calculations for SNPs having only homozygous clusters in HapMap samples.

Future plans

  • We are planning to release cluster files for humancvn370-quad and human610-quad.


The tQN software is available as a stand-alone software package, and will become available as as a plug-in to BASE as the handling of SNP arrays in BASE is developed. Both versions are available under the GNU General Public License.

Download tQN

Download the latest stand-alone release (tQN-1.1.0).

Supplemental data

  • Infinium data for the 6 breast cancers hybridized on Illumina HumanHap 550K BeadChips used to evaluate tQN are available in NCBI's Gene Expression Omnibus with accession GSE11977.

How to use tQN


tQN is written in R with a Perl wrapper, so both R and Perl are required. Required Perl modules are: File::Spec, Getopt::Long, IO::File and Pod::Usage ( Required R package is limma (


Download and unzip the file available under the section Download tQN on this page.

OS X or Linux: The programs should run as they are. You need R and perl in your path.

Windows: Depending on how you have installed R and Perl on your system you may have to edit the variables $R_command and $R_windows at the beginning of the file $R_windows should likely contain the full path to the R script interpreter on your system. Also comment out (with an initial #) the $R_command used on OS X and Linux systems. For example, we have successfully used tQN using ActivePerl on a Windows system with the following $R_windows and $R_command:

# Mac OS X and Linux
#my $R_command="R --vanilla --no-save --slave < tQN.R";
# Windows
# Note that we are using Rscript, which is a part of the R distribution.
my $R_windows=File::Spec->canonpath('C:/"Program Files"/R/R-2.7.0/bin/Rscript');
my $R_command="$R_windows --vanilla tQN.R";

Input data format

tQN is applied to data exported from BeadStudio. For a set of samples, the file exported from BeadStudio should be tab-delimited in the following format:


The data extracted from BeadStudio needs to be split into a separate file for each sample using the script

  perl --data_file=example/example_beadstudio_data.txt

where example_beadstudio_data.txt is a file exported from BeadStudio in the format described above.

This script will generate one file per sample together with a file sample_names.txt in the tQN subdirectory extracted. These files are used when tQN is run and can be deleted once the samples are normalized.

Performing tQN

In the tQN directory, run tQN with the following command:

   perl --beadchip=humancnv370-duo

This command will perform tQN on the samples in the tQN subdirectory extracted that are specified in the file sample_names.txt. If you want to perform tQN on a subset of samples you can edit sample_names.txt accordingly. The normalized data is stored in the tQN subdirectory normalized. For each sample, there is a file with tQN normalized data. A file tQN_beadstudio.txt is also generated with tQN B allele frequencies and Log R ratios for all samples in a format suitable for import into BeadStudio using its import sub-column process. tQN also supports generating tQN data for further analysis with PennCNV, QuantiSNP and BAFsegmentation. Running tQN with the following command:

   perl --beadchip=humancnv370-duo --output_format=PennCNV

generates one data file per sample in the tQN subdirectory normalized for further analysis using PennCNV. Alternatives for --output_format are QuantiSNP, which generates one data file per sample for further analysis with QuantiSNP, BAFsegmentation, which generates files for further analysis with BAFsegmentation, and BeadStudio, which is the default argument generating the default tQN_beadstudio.txt file with data for all samples. Beadchip types for which there is a cluster file in the tQN subdirectory lib are supported by tQN and can be used as alternatives for --beadchip. For PennCNV and QuantiSNP, SNPs having missing values in either B allele frequencies or log R ratios after normalization are excluded from the respective output files.

tQN B allele frequencies and log R ratios

CNV probes are not normalized by tQN; for these probes the original X and Y intensities from BeadStudio are kept. tQN may result in a slightly smaller number of SNPs having data. The reason for this reduction is that some SNPs have not been genotyped in the HapMap samples used to generate the cluster files. A detailed description of how tQN X and Y intensities are turned into tQN BAF and tQN log R ratios is available here.

Supported beadchip types

tQN cluster files for additional beadchip types can be generated upon request.


If you have suggestions, comments or bug reports, please send an email to johan.staaf@…