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



BAFsegmentation is a method to identify regions of allelic imbalance from B allele frequencies obtained from SNP arrays described in

Segmentation-based detection of allelic imbalance and loss-of-heterozygosity in cancer cells using whole genome SNP arrays

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

Genome Biology 9:R136 (2008)


The BAFsegmentation 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 BAFsegmentation

Download the latest stand-alone release (BAFsegmentation 1.0.0).

Supplemental Data

  • The plots referred to in additional data file 4 in the manuscript are available here.
  • The simulated data set used in the publication is available here.
  • Infinium data for four matched tumor-normal pairs and a dilution series of a tumor cell line mixed with its paired normal cell line are available in NCBI's Gene Expression Omnibus with accession GSE11976.

How to use BAFsegmentation


BAFsegmentation 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 DNAcopy, recommended version is 1.14.0 (


Download and unzip the file available under the section Download BAFsegmentation 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 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 BAFsegmentation using ActivePerl on a Windows system with the following $R_windows:

# Mac OS X and Linux
# my $R_command="R --vanilla --no-save --slave < BAF_segment.R";
# Windows
my $R_windows=File::Spec->canonpath('C:/"Program Files"/R/R-2.7.0/bin/Rscript');
my $R_command="$R_windows --vanilla BAF_segment.R";

We have been told that BAFsegmentation has successfully been used in the Cygwin environment with the following $R_command:

my $R_command="$R_windows --vanilla -f BAF_segment.R";   

Input data format

BAFsegmentation is applied to data for a set of samples in a file that should be tab-delimited in the following format:

NameChrPositionsample1.B Allele Freqsample1.Log R Ratiosample2.B Allele Freqsample2.Log R Ratiosample3.B Allele Freqsample3.Log R Ratio...

For Illumina arrays data can be exported in this format directly from BeadStudio. The data need to be split into a separate file for each sample using the script In the BAFsegmentation directory, run with the following command:

  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 BAFsegmentation subdirectory extracted. These files are used when BAFsegmentation is run and can be deleted once the samples are normalized.

Performing BAFsegmentation

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


This command will perform BAFsegmentation on the samples in the BAFsegmentation subdirectory extracted that are specified in the file sample_names.txt. If you want to perform BAFsegmentation on a subset of samples you can edit sample_names.txt accordingly.

BAFsegmentation can be run with different settings. To get an overview of parameters run BAFsegmentation with the following command:

   perl --help


The segmented regions identified as allelic imbalance are stored in the file AI_regions.txt in the BAFsegmentation subdirectory segmented. In addition an xml-file AI_regions.xml with the regions is also produced. This xml-file can be imported as a bookmark file into the Illumina BeadStudio software for visualization and further analysis of the identified regions.

In the BAFsegmentation subdirectory plots, a postscript file is generated for each sample. These plot files contain three plots per chromosome: a BAF plot with non-informative homozygous SNPs removed, an mBAF plot with non-informative homozygous SNPs removed and with superimposed segmentation line, and a log R ratio plot with all SNPs.


If you have comments please send an email to johan.staaf@…