Magic Tags for Map Classes:
?Map, ?Map_position, ?Map_error, ?Map_offset, ?MultiMap, ?ManyMap

Richard Durbin: The aim of the map class is not to capture mapping data. It is to determine where to put things on the physical drawing of the map. It is important to represent mapping data, but this should be done explicitly, using the map data classes and the Positive and Negative tag 2 system. You should then be able to view the mapping data in the context of the map.

Notes:


?Map    Display Non_graphic
                Title UNIQUE ?Text
                Flipped
                Centre UNIQUE Float UNIQUE Float 
                Extent UNIQUE Float UNIQUE Float  
                Default_view UNIQUE ?View
                Minimal_view UNIQUE ?View
                View ?View
        Inherits  From_map UNIQUE ?Map
                  Author Text
        Main_Marker Main_Locus ?Locus
        Contains Locus ?Locus

?Map_position UNIQUE    Position UNIQUE Float #map_error
                        Multi_Position  Float #map_error
                        Multi_Ends Float UNIQUE Float
                        Ends Left UNIQUE Float #Map_error
                             Right UNIQUE Float #Map_error
                        With UNIQUE With_locus UNIQUE ?Locus #Map_offset


?Map_error Error UNIQUE Float

?Map_offset Offset UNIQUE Float

?MultiMap Map ?Map
          Anchor UNIQUE Text UNIQUE Text UNIQUE Text
          Min UNIQUE Int

?ManyMap Map ?Map UNIQUE ?View



Non_graphic

Prevents graphical display; i.e., forces object to display in a text (tree) window.


Title UNIQUE <Text>

<Text> appears in upper left corner of display. Buttons are bumped right to accomodate long titles.


Flipped

Inverts map so coordinates run from large to small, top to bottom.

Centre UNIQUE <Float1> UNIQUE <Float2>

<Float1> is centre, <Float2> is width. Values are in map coordinates. The map is centred on <Float1> when map is selected directly. The width is used when map is selected directly or via a locus. Width is the total coordinate "space" shown above and below the centre; i.e., width = 10 means the map shows 5 units above and 5 below the centre.

The default centre is halfway between map extremes. Default width is 1/3 of map.

Note: centre settings do not affect the size of the map window's frame but are scaled to work within its default size. The default frame size is determined in displays.wrm. If the user resizes, the centre will be preserved but the width will not.


Extent UNIQUE <Float1> UNIQUE <Float2>

<Float1> is min, <Float2> is max. Extent defines how much of the map is seen when the "Whole" button on the map display is clicked. This is not the same view you get when you directly select a map or the map through a locus.

The default extent is 1/3 of width; green locator will show 1/3 of map.

Here Extent is set to 14 20:

Note: extent settings do not affect the size of the map window's frame but are scaled to work within its default size. The default frame size is determined in displays.wrm. If the user resizes, extent defaults may not be preserved.


Default_view UNIQUE <View>

Used if a view is saved as the default in the column control box. The system fills in <View> with the name chosen for the view.

Which view is used depends on what is available. This is structured as a hierarchy. If a view is saved as the "default view" it will be used; otherwise, the order of use is:

default view --> view
If a map is derived from another map (using inheritance; see information on the tag From_map) and there is no view set, then the view provided by the parent is used (default view preferred) and so on recursively. If none of these views can be found then the system default is used.


Minimal_view UNIQUE <View>

The Minimal_view is designed for the ManyMap display. If it is present then it has higher priority than the default view when more than one map is being displayed. There is no menu item for saving a Minimal_view; it must be supplied as data.


View <View>

If a view is named and saved, it is listed in <View>.


From_map UNIQUE <Map>

Used when a variation of a map is prepared and saved via "Private Save" on the Map pop-up menu. (Map editing requires: that the Scale column be configured to show the cursor and that submenus are used; see the Column Control).

From_map is not used by "Save Map" which alters the original map rather than making a copy.


Author <Text>

Used when a map is saved via Private Save. <Text> contains login name of the person who created the new map.


Main_Marker <Tag> <Object>

A "type 2" tag. Determines which map objects appear to left of green locator. If <Object> is a point it will appear in the Marker_loci column. Intervals appear as chromosome bands in the Chromosome_picture column. For intervals, the style of drawing is affected by certain tags in the interval object. See documentation on mappable classes for more information.


Contains <Tag> <Object>

Places <Object> on the map. <Object> must also have a map position (see documentation on mappable classes for more information). <Tag> can be any tag.

Position UNIQUE <Float> #map_error

Used to define map objects with position at <Float>. Position is a map coordinate.

Multi_Position <Float> #map_error

Used to define point map objects that exist at more than one place on a map. For example,

Locus ZZZ
Map aaa Multi_Position 12
Map aaa Multi_Position 17

Selecting the object at one position highlights the object at all positions.


Multi_Ends <Float1> UNIQUE <Float2>

Multi_Ends can be used to define discontinuous intervals (below left) or intervals where one end is known and the other is uncertain (below right).
                

Clone xxx                      Clone yac-25
Map aaa Multi_Ends 15 20       Map aaa Multi_Ends 20 23
Map aaa Multi_Ends 22 25       Map aaa Multi_Ends 18 23
Selecting the object at one position highlights the object at all positions.


Left UNIQUE <Float> #map_error
Right UNIQUE <Float> #map_error

Used to define the left and right ends of a map object with extent. Requires the Column Control "Intervals" to view. For example,

Clone lambda-1
Map aaa Left 10
Map aaa Right 13

With UNIQUE <Tag> UNIQUE <Object> #Map_offset

This "type 2" tag allows one map object to be positioned relative to another <Object>. Map coordinates are thus not directly specified for <Object>

for example

Locus : crc
Map aaa Position 40

Locus : pop
Map aaa With_locus crc

Highlighting is used to indicate the relationship between the markers. In this example, since pop is "with" crc, selecting pop also highlights crc. Selecting crc does not highlight pop.

Recursive relationships are legal.

Richard Durbin: "With" should be used with great caution. It can be abused to hide something better represented as a piece of mapping data.


Error UNIQUE <Float>

Allows error to be associated with a position. Objects are moved rightwards depending on the value of their error. The configuration parameter "Error scale" controls the extent to which this happens; a value of zero eliminates it (this is the default).

Offset UNIQUE <Float>

When "With" is used, allows one marker to be displaced relative to another. For example,

Locus : tt4
Map aaa Position 35 Error 5

Locus : ttx
Map aaa With_locus tt4 Offset -5

Map <Map>

?MultiMap is used by the MultiMap display to draw side-by-side map stick figures and show relationships between them. For example, a relationship between Locus X on one map and Locus Y on another is represented as a line drawn between the loci (see figure). Relationships are explained in detail below (see Anchor). The basic MultiMap is defined by populating <Map> with two or more maps. The MultiMap display runs the tablemaker to extract the information needed to create the drawing. If relationships have not been defined, no connecting lines will be drawn.

Note that a more generic MultiMap display can be run interactively using the tablemaker to query any objects containing numerical data. This does not involve the ?MultiMap class or its tags.

Below: a MultiMap without relationships. The underlying data is included.

Locus aa1
Map map-1 Position 15
Group v

Locus bb1
Map map-1 Position 22
Group w

Locus cc1
Map map-1 Position 24
Group x

Locus dd1
Map map-1 Position 27
Group y

Locus J1
Map map-2 Position 19
Group v

Locus K1
Map map-2 Position 20
Group w

Locus L1
Map map-2 Position 24
Group x

Locus M1
Map map-2 Position 21
Group y

Locus tom
Map map-3 Position 17
Group v

Locus bob
Map map-3 Position 20
Group w

Locus ron
Map map-3 Position 26
Group x

Locus ted
Map map-3 Position 27
Group y

MultiMap mm-1
Map map-1
Map map-2
Map map-3

Anchor UNIQUE <Text1> UNIQUE <Text2> UNIQUE <Text3>

Mappable objects are "related" when they are grouped in some way. For example, the model

  ?Locus Group ?Locus XREF Members
         Members ?Locus
can be used to establish groups of loci:

Locus aa1
Map map-1 Position 15
Group v

Locus bb1
Map map-1 Position 22
Group w
...and so on. The Anchor tag identifies which tags have been used for this purpose. Below is an example. It differs from the one above only in that it includes the Anchor data in the MultiMap object:

MultiMap mm-1
Map map-1
Map map-2
Map map-3
Anchor Locus Group Members


Min UNIQUE <Int>

// keep loci appearing on at least min maps. Default = 2

Bugged.


Map <Map> UNIQUE <View>

A ManyMap is a collection of maps that is bundled together in the map display. Each <Map> has its own <View>. Views are defined interactively and saved via the Column Control, available from the "Views..." menu on the map display.