[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
unpacking...
I wrote the one-liner based of Clark Tibbett's paper about ABI file format:
http://www.cs.cmu.edu/afs/cs/project/genome/WWW/Papers/clark.html
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:
>Hi,
>
>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