NAME

Finnigan::ScanIndexEntry -- a decoder for ScanIndexEntry, a linked list element pointing to scan data

SYNOPSIS

use Finnigan;
my $entry = Finnigan::ScanIndexEntry->decode(\*INPUT);
say $entry->offset; # returns an offset from the start of scan data stream 
say $entry->data_size;
$entry->dump;

DESCRIPTION

ScanIndexEntry is a static (fixed-size) structure containing the pointer to a scan, the scan's data size and some auxiliary information about the scan.

Scan Index elements seem to form a linked list. Each ScanIndexEntry contains the index of the next entry.

Although in all observed instances the scans were sequential and their indices could be ignored, it may not always be the case.

It is not clear whether scan index numbers start at 0 or at 1. If they start at 0, the list link index must point to the next item. If they start at 1, then "index" will become "previous" and "next" becomes "index" -- the list will be linked from tail to head. Although observations are lacking, I am inclined to interpret it as a forward-linked list, simply from common sense.

Note: The "current/next" theory of the two ordinal numbers in this structure may be totally wrong. It may just be that one of these numbers is the 0-base index (0 .. n -1), and the other is 1-based: (1 .. n). It is suspicious that in the last entry in every stream, the "next" value is not null, it simply n.

METHODS

decode($stream)

The constructor method

offset

Get the address of the corresponding ScanDataPacket relative to the start of the data stream

index

Get this element's index (a valid assumption if the scan data indices start at 0, otherwise this is the previous element's index)

next

Get the next element's index(a valid assumption if the scan data indices start at 0, otherwise this is the current element's index)

scan_event

Get the index of this element's ScanEventTemplate in the current scan segment

scan_segment

Get the index of this element's scan segment in Scan Event Hierarchy

data_size

Get the size of the ScanDataPacket this index element is pointing to

start_time

Get the current scan's start time

total_current

Get the scan's total current (a rough indicator of how many ions were scanned)

base_intensity

Get the intensity of the most abundant ion

base_mz

Get the M/z value of the most abundant ion

low_mz

Get the low end of the scan range

high_mz

Get the high end of the scan range

unknown

Get the only unknown UInt32 stored in the index entry. Its value (or some bits in it) seem to correspond to the type of scan, but its interpretation is uncertain.

SEE ALSO

Finnigan::RunHeader

AUTHOR

Gene Selkov, <selkovjr@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2010 by Gene Selkov

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.