Written by Conrad Shyu
last updated on July 5, 2020
Note: This is only the source code repository. Example trace files are not available.
Trace files (or chromatograms) generated from the ABI instruments contain an array of digitized data and are one of several file types that share a common structure called the ABIF tagged data format. The general architecture of the trace files are remarkably similar to that generated by different ABI instruments. By and large, all ABI processed sample files begin with a single 128 bye header. These files contain various tagged data structures, each of which is identified by a unique primary key called a flag. A flag is a four-byte, fixed length string that dictates the meaning of the associated records. Without any knowledge on the meaning of flags, it is virtually impossible to decipher the corresponding records. Most implementation of tagged data format have a serious drawback in that when data elements are inserted or removed, the entire file must be reorganized and rewritten. In addition, the tagged structure of the sample files can seem cryptic at the first glance.
The following shows the ABI trace file flag list. The list is not exhaustive. Some of the flags are rarely used difficult to decipher.
Flag | Data Type | Description |
---|---|---|
DATA |
short |
Raw data from a given filter |
Dye# |
short |
Number of fluorescent dyes in the data |
DyeN |
string |
Name of the fluorescent dye |
DySN |
string |
Name of the fluorescent dye set |
EVNT |
string |
Instrument event; electrophoresis stop or start |
InSc |
long |
Electrophoresis injection time in seconds |
InVt |
long |
Electrophoresis injection voltage in volts |
LANE |
short |
Capillary lane or number |
MTRX |
long |
Fluorescent signals filter matrix |
PEAK |
custom |
Fluorescent peak data for each channel (96 bytes) |
PK # |
short |
Number of fluorescent peaks for each channel |
RUNT |
time |
Electrophoresis operations start and stop time |
Sd#P |
short |
Number of peaks from the size standard |
SpNm |
string |
User assigned sample file name |
Std# |
short |
Number of peaks defined by the size standard |
StdF |
string |
Size standard file name |
User |
string |
Instrument registered user name |
To compile the code, type the command:
g++ -I. abi2csv.cpp abifile.cpp abitag.cpp -o abi2csv
To run the analysis program with only the required parameter, type:
abi2csv *.abi
The export program will output raw and processed signals to a CSV file.
The archive lists two implementation files
Filename | Descriptions |
---|---|
abi2csv.cpp |
the main driver/user interface program |
abifile.cpp |
tag interpretation and translation program |
abifile.h |
header of tag interpretation and translation program |
abitag.cpp |
trace file tag extraction program |
abitag.h |
header of trace file tag extraction program |
README.md |
this file |
ABI has retired the instrument Genetic Analyzer 3100 for some time. However, the new instrument is likely to implement similar file structure to store the records of run.
Copyright (C) 2014 Conrad Shyu
Department of Biological Sciences
University of Idaho
Moscow, Idaho 83844
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.