Sha256: 6662687129248176a39e92106e2a7e2ac3b45d582794036c52db8f01fb172ccd

Contents?: true

Size: 1.37 KB

Versions: 25

Compression:

Stored size: 1.37 KB

Contents

module Mspire
  class Mzml
    # the array holds start bytes
    class Index < Array

      # the name of the index (as a symbol)
      attr_accessor :name

      # a parallel array of ids (idRef's)
      attr_accessor :ids

      # @return [Integer] the start byte of the spectrum
      # @param [Object] an Integer (the index number) or String (an id string)
      def start_byte(arg)
        case arg
        when Integer
          self[arg]
        when String
          @id_index ||= create_id_index
          @id_index[arg]
        end
      end

      # generates a scan to index hash that points from scan number to the
      # spectrum index number.  returns the index, nil if the scan ids
      # are not present and spectra are, or false if they are not unique.
      def create_scan_to_index
        scan_re = /scan=(\d+)/
          scan_to_index = {}
        ids.each_with_index do |id, index|
          md = id.match(scan_re)
          scan_num = md[1].to_i if md
          if scan_num
            if scan_to_index.key?(scan_num)
              return false
            else
              scan_to_index[scan_num] = index
            end
          end
        end
        if scan_to_index.size > 0
          scan_to_index
        elsif ids.size > 0
          nil  # there are scans, but we did not find scan numbers
        else
          scan_to_index
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
mspire-0.10.8.0 lib/mspire/mzml/index.rb
mspire-0.10.7.3 lib/mspire/mzml/index.rb
mspire-0.10.7.2 lib/mspire/mzml/index.rb
mspire-0.10.7.1 lib/mspire/mzml/index.rb
mspire-0.10.7 lib/mspire/mzml/index.rb
mspire-0.10.6 lib/mspire/mzml/index.rb
mspire-0.10.5 lib/mspire/mzml/index.rb
mspire-0.10.4 lib/mspire/mzml/index.rb
mspire-0.10.3 lib/mspire/mzml/index.rb
mspire-0.10.2 lib/mspire/mzml/index.rb
mspire-0.10.1 lib/mspire/mzml/index.rb
mspire-0.10.0 lib/mspire/mzml/index.rb
mspire-0.9.2 lib/mspire/mzml/index.rb
mspire-0.9.1 lib/mspire/mzml/index.rb
mspire-0.9.0 lib/mspire/mzml/index.rb
mspire-0.8.7 lib/mspire/mzml/index.rb
mspire-0.8.6.2 lib/mspire/mzml/index.rb
mspire-0.8.6.1 lib/mspire/mzml/index.rb
mspire-0.8.6 lib/mspire/mzml/index.rb
mspire-0.8.5 lib/mspire/mzml/index.rb