[Bioperl-l] ABI average singal intensity

Phillip San Miguel pmiguel at purdue.edu
Tue Aug 2 16:34:14 EDT 2005

Hi Xiaojun,
Here is a perl one-liner that will give you the mean signal strengths 
from a .ab1 (or, probably a .abi) file:

perl -e 'undef $/; $trace=<>; ($sigptr)=$trace =~ m{S/N%.{16}(.{4})}s;\
($fwo)=$trace =~ /FWO_.{16}(.{4})/s;print "The signal strengths for the 
bases: "\
,$fwo," are: ",join(" 
",unpack("n*",substr($trace,unpack("N*",$sigptr),8))),"\n"' test.ab1

In the case of an ab1 file I have, I get the output:

The signal strengths for the bases: GATC are: 2710 4749 4034 3588

Copy and paste to the command line of the machine where you have the 
trace file--replace "test.ab1 with the actual name of your trace file of 
interest. In the unlikely case that your machine is a  VAX (or some 
other "little endian" machine) you will have to use "v*" and "V*" for 

I wrote the one-liner based of Clark Tibbett's paper about ABI file format:


A few words of caution: while the S/N% tag looks like it should give a 
"signal"/"noise" % , I'm not sure that it does exactly that. 
Nevertheless this is usually what is meant when one asks for the average 
"signal strength" of a chromat.

In addition, this is the "S/N%" of *processed* chromatographic data. 
There is quite a bit of normalization and background correction that 
goes on to produce the processed data from the raw data.

Phillip SanMiguel
Purdue Genomics Core Facility

Xiaojun Hu wrote:

>Does anyone know how to get the (A T C G)average
>singal intensity from ABI file?
>Thank you very much!
>Xiaojun Hu

More information about the Bioperl-l mailing list