def parse_index_list
      self.seek(self.stat.size - 200)
      # parse the index offset
      tmp = self.read
      tmp  =~  MzML::RGX::INDEX_OFFSET
      offset = $1
      # if I didn't match anything, compute the index and return
      unless (offset)
        return compute_index_list
      end
      @index = {}
      @spectrum_list = []
      @chromatogram_list = []
      self.seek(offset.to_i)
      tmp = Nokogiri::XML.parse(self.read).root
      tmp.css("index").each do |idx|
        index_type = idx[:name].to_sym
        @index[index_type] = {}
        idx.css("offset").each do |o|
          @index[index_type][o[:idRef]] = o.text().to_i
          if index_type == :spectrum
            @spectrum_list << o[:idRef]
          else
            @chromatogram_list << o[:idRef]
          end
        end
      end
      self.rewind
      return @index
    end
def parse_index_list
      self.seek(self.stat.size - 200)
      # parse the index offset
      tmp = self.read
      tmp  =~  MzML::RGX::INDEX_OFFSET
      offset = $1
      # if I didn't match anything, compute the index and return
      unless (offset)
        return compute_index_list
      end
      @index = {}
      @spectrum_list = []
      @chromatogram_list = []
      self.seek(offset.to_i)
      tmp = Nokogiri::XML.parse(self.read).root
      tmp.css("index").each do |idx|
        index_type = idx[:name].to_sym
        @index[index_type] = {}
        idx.css("offset").each do |o|
          @index[index_type][o[:idRef]] = o.text().to_i
          if index_type == :spectrum
            @spectrum_list << o[:idRef]
          else
            @chromatogram_list << o[:idRef]
          end
        end
      end
      self.rewind
      return @index
    end
Parses the IndexList