Module Bio::Map::ActsLikeMap
In: lib/bio/map.rb

Description

The Bio::Map::ActsLikeMap module contains methods that are typical for map-like things:

  • add markers with their locations (through Bio::Map::Mappings)
  • check if a given marker is mapped to it, and can be mixed into other classes (e.g. Bio::Map::SimpleMap)

Classes that include this mixin should provide an array property called mappings_as_map.

For example:

  class MyMapThing
    include Bio::Map::ActsLikeMap

    def initialize (name)
      @name = name
      @mappings_as_maps = Array.new
    end
    attr_accessor :name, :mappings_as_map
   end

Methods

Public Instance methods

Description

Adds a Bio::Map::Mappings object to its array of mappings.

Usage

  # suppose we have a Bio::Map::SimpleMap object called my_map
  my_map.add_mapping_as_map(Bio::Map::Marker.new('marker_a'), '5')

Arguments:

  • marker (required): Bio::Map::Marker object
  • location: location of mapping. Should be a string, not a number.
Returns:itself

[Source]

     # File lib/bio/map.rb, line 116
116:       def add_mapping_as_map(marker, location = nil)
117:         unless marker.class.include?(Bio::Map::ActsLikeMarker)
118:           raise "[Error] marker is not object that implements Bio::Map::ActsLikeMarker"
119:         end
120:         my_mapping = ( location.nil? ) ? Bio::Map::Mapping.new(self, marker, nil) : Bio::Map::Mapping.new(self, marker, Bio::Locations.new(location))
121:         if ! marker.mapped_to?(self)
122:           self.mappings_as_map.push(my_mapping)
123:           marker.mappings_as_marker.push(my_mapping)
124:         else
125:           already_mapped = false
126:           marker.positions_on(self).each do |loc|
127:             if loc.equals?(Bio::Locations.new(location))
128:               already_mapped = true
129:             end
130:           end
131:           if ! already_mapped
132:             self.mappings_as_map.push(my_mapping)
133:             marker.mappings_as_marker.push(my_mapping)
134:           end
135:         end
136: 
137:         return self
138:       end

Checks whether a Bio::Map::Marker is mapped to this Bio::Map::SimpleMap.


Arguments:

Returns:true or false

[Source]

     # File lib/bio/map.rb, line 147
147:       def contains_marker?(marker)
148:         unless marker.class.include?(Bio::Map::ActsLikeMarker)
149:           raise "[Error] marker is not object that implements Bio::Map::ActsLikeMarker"
150:         end
151:         contains = false
152:         self.mappings_as_map.each do |mapping|
153:           if mapping.marker == marker
154:             contains = true
155:             return contains
156:           end
157:         end
158:         return contains
159:       end

[Validate]