AFLPcore
Class CEQLaneFilter

java.lang.Object
  |
  +--AFLPcore.Operation
        |
        +--AFLPcore.ImportFilter
              |
              +--AFLPcore.CEQLaneFilter

public class CEQLaneFilter
extends ImportFilter

This class reads data from a fragment results text file produced by a Beckman Coulter, Inc. CEQ 2000 DNA Analysis System. The text file contains trace data, size standard peak data, and information about the sample and experimental conditions.

The CEQ 2000 is a capillary system. The data in the file represent the four color traces collected from one capillary during a fragment separation. Genographer, however, displays these data as though they were obtained from a lane on a gel.

The class expects fragment analysis results, exported as a text file with the Header and Result Data options selected. Files exported in this manner will include:

See the readLane method for the file format and data organization.

This information will be stored in a Lane object, which is used by the program. The size standard peaks will be passed to a SizeFunction. These will be used to calculate the size of the fragments. Since the CEQ fragment results file contains all of the size standard information needed for Genographer's sizing functions, the standard.cfg file is not used by this filter.

The filter has three options that must be set before it can run:

  1. Data Color
  2. Size Function
  3. Size Standard (not used by this filter)
These can be manipulated using getOptions() and setOptions(). All three options are a list of choices, one of which must be selected. The possible values for the color option are D1, D2, D3 and D4. The size function and the size standard can be the name of any size function or standard known to the program.

This class uses the FeatureList class to retrieve the known functions. Once the options have been set, the readLane method can be called to read the actual file.

See Also:
SizeFunction, SizeStandard, This class is based on the ABILaneFilter class developed by James J. Benham.

Field Summary
static int BLUE
           
static int GREEN
           
static int RED
           
static int YELLOW
           
 
Fields inherited from class AFLPcore.ImportFilter
filetype, GEL, LANE
 
Fields inherited from class AFLPcore.Operation
descript, helpFile, name, options
 
Constructor Summary
CEQLaneFilter()
          Creates a new filter to read in CEQ lane files.
 
Method Summary
 java.lang.String getDescription()
          Retrieves a short, approximately one sentence, description of the filter.
 int getFileType()
          Returns the type of input file supported by this filter In this case ImportFilter.LANE, since the filter reads in lane data.
 java.lang.String getHelpFile()
          The help file describes which files the filter reads and the options that this filter accepts.
 java.lang.String getName()
          Access the name of the filter.
 Option[] getOptions()
          Returns the options for this filter, which includes the color of the data, the size function to use, and the size standard.
 Gel readGel(java.io.File inputFile)
          This filter does not read gels.
 Lane[] readLane(java.io.File inputFile)
          Read the data from the file and use it to create a Lane.
 void setOptions(Option[] opts)
          Sets the parameters for the filter to the specified values, including color.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RED

public static final int RED

YELLOW

public static final int YELLOW

GREEN

public static final int GREEN

BLUE

public static final int BLUE
Constructor Detail

CEQLaneFilter

public CEQLaneFilter()
Creates a new filter to read in CEQ lane files.
Method Detail

getName

public java.lang.String getName()
Access the name of the filter.
Overrides:
getName in class Operation
Returns:
name of the import filter

getFileType

public int getFileType()
Returns the type of input file supported by this filter In this case ImportFilter.LANE, since the filter reads in lane data.
Overrides:
getFileType in class ImportFilter
Returns:
constant LANE.

getDescription

public java.lang.String getDescription()
Retrieves a short, approximately one sentence, description of the filter.
Overrides:
getDescription in class Operation
Returns:
the description

getHelpFile

public java.lang.String getHelpFile()
The help file describes which files the filter reads and the options that this filter accepts.
Overrides:
getHelpFile in class Operation
Returns:
File that contains the help information, either html or plaintext.

getOptions

public Option[] getOptions()
Returns the options for this filter, which includes the color of the data, the size function to use, and the size standard. The first option is the color to read, which can be one of four possilbe values: Red, Blue, Green, or Yellow. The color choice is given as a Option of type CHOICE. The second option is also of type CHOICE. It tells which size method should be used to compute the size of the fragements. Please see the help files and the code for the size functions for a description of how the work.
Overrides:
getOptions in class Operation
Returns:
an array containing the options described above.
See Also:
Option, FeatureList, SizeFunction, SizeStandard

setOptions

public void setOptions(Option[] opts)
Sets the parameters for the filter to the specified values, including color. The color must be set before this filter can run. The option representing the color should have a string value naming the color. The size function must also be set for the filter to work. It must contain the name of a valid SizeFunction. Note that the name is not the class name of the SizeFunction, but the name each SizeFunction stores internally. The third option must also be set.
Overrides:
setOptions in class Operation
Parameters:
opts - an array of length 3 which contains the options mentioned above and described in getOptions() The order must be: color, size function, size standard.
Throws:
MissingParameterError - occurs when the filter fails to extract a string from the first option in opts.
java.lang.IllegalArgumentException - occurs when a string is found but cannot be matched to one of the colors: Red, Blue, Green, or Yellow. Or if an array with length not equal to 3 is given as opts, or if the specified size function, the second option, could not be matched to a defined size function.

readLane

public Lane[] readLane(java.io.File inputFile)
                throws java.io.IOException
Read the data from the file and use it to create a Lane.

The data in the file represent a run from one capillary. Genographer displays these data as though they were a lane obtained from a gel. Since this is a text file, much of the data must be converted to doubles or integers before they are used. Each line in the file is considered a record, ending with a carriage return, "\r". Records that contain multiple pieces of data are also tab delimited, "\t".

The file is organized into sections. Each section has a name in the following format: "[Section Name]". The file sections can contain Key/Value pairs or they can contain records with standard peak or trace data.

The file is first searched for a specific section name. This is done to ensure that the file is in the appropriate format and that the expected data are actually in the file. If the section name is not found, a file import IOException occurs.

The sections are not searched in the order that they appear in the file. Instead, the [FRAGMENT ANALYZED DATA OUTPUT] section is used first. This is a section that is unique to the proper file format. Searching for it first ensures that the filter is reading the appropriate file. Also, data from this section is needed to process the information in the remaining sections. Other than starting with this section, the file is accessed top to bottom.

Once the file section is found, the data are extracted by searching for Key/Value pairs or reading records containing standard peak or trace data. The Key/Value pairs have the format: "KeyName=Value"

The records containing the trace data have the following tab delimited format:

 "53	-3.112358e+001	  0.000000e+000	  1.377488e+001	  0.000000e+000"
 
Where the 1st column indicates the scan point number. The remaining four columns contain the trace data for each of the four dyes (D1, D2, D3, D4, respectively). If a dye was not present in the sample, all of the data in the corresponding column will be 0.000000e+000. Note also that some of the trace data may be negative. This negative bias is removed from the data by raising the entire trace in the positive y-axis direction, before the lane is created.

The records containing standard peak data have the following tab delimited format:

 " *	3 	D1	12.58	60	59.86	1911	6800	2.91"
 
with columns representing peak type, peak number, dye, migration time, standard size, estimated size, peak height, peak area, peak width, respectively. A "*" in the peak type column indicates a standard record.

The migration times for the standard peaks are in minutes, so these must be converted to scan point location, based on the sampling rate. Additionally, the standard peak migration time is offset from the trace data by the value of CVMigrationOffset, a key value found in the [FRAGMENT ANALYZED DATA OUTPUT] section. This offset is corrected when the standard peaks are extracted from the file.

The sample information, displayed by Genographer in the Gel View, has the following format: string "from Lane" integer "in" string. The sample ID information, added to the lane by this filter, will consequently be displayed as: Sample Name from Lane capillary number in Plate Name

Overrides:
readLane in class ImportFilter
See Also:
getTrace, getStandards, findFileSection, getKeyValue

readGel

public Gel readGel(java.io.File inputFile)
            throws java.io.IOException
This filter does not read gels.
Overrides:
readGel in class ImportFilter
Returns:
Always null