NAME
Finnigan::ScanIndexEntry -- a decoder for ScanIndexEntry, a linked list element pointing to scan data
SYNOPSIS
use Finnigan;
my $entry = Finnigan::ScanIndexEntry->decode(\*INPUT, $VERSION);
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, $version)
-
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::Profile
Finingan::Peaks
Finnigan::Scan
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.