Version 11 (modified by markus, 15 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

The method will be downloadable as a stand-alone version soon.

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";

Input data format

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

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

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

  perl --beadstudio_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. The segmented data is stored in the BAFsegmentation subdirectory segmented.

Supplemental Data

  • The plots referred to in additional data file 4 in the manuscript are available here.
  • The simulated data set will be available soon.
  • 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.


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

Attachments (5)