![]()

![]()
Like Grid Map, CPG Map adopts a three-tier design structure whereby CPG Map is only a software component placed on a graphical user interface, (fuller explanation). CPG Map is not a standalone tool; it is placed within an application or applet which has access to various parameters like whether the CPG Map component should show a zoomed in map or not. The application also very importantly provides CPG Map with data- it doesn't matter where the application gets the data as long as it arranges it in to the correct data structure format. The basic data structure unit in CPG Map is the CPG_Locus class.
| This class contains all the information necessary to describe a locus on a double or single map. The structure is shown in the table below: |
CPG_Locus |
|||||||
Name |
Position 1 |
Error 1 |
Position 2 |
Error 2 |
Locus Owns |
Homology Group |
Colour |
String |
double |
double |
double |
double |
int[] |
String |
Color |
The name entry is obviously the string that gets painted up on the screen for the locus. There are two position and error values; the first represents the position on the left-hand side of a double map and the second represents the right-hand side. To create a double map locus, both should be filled in. To create a single map locus, only position 1 and error 1 should be filled in.
Please note: Currently a mixture of double maps and single maps is not possible, all the CPG_Locus objects must have either one or both- not a mixture.
The variables Locus Owns and Homology groups are explained in the locus releationships section. The variable colour represents the colour which the name variable is painted to the screen with.
| To make a CPG Map, a vector of vectors of these objects must be made. The arrangement of this structure can be represented as the following table: |
| Vector | |||||||||||
| 0 | 1 | 2 | 3 | ... | n | ||||||
| Vector,(map1) | Vector,(map2) | Vector,(map3) | Vector,(map4) | Vector,(map...) | Vector,(map n) | ||||||
| 0 | CPG_Locus | 0 | CPG_Locus | 0 | CPG_Locus | 0 | CPG_Locus | 0 | CPG_Locus | 0 | CPG_Locus |
| 1 | CPG_Locus | 1 | CPG_Locus | 1 | CPG_Locus | 1 | CPG_Locus | 1 | CPG_Locus | 1 | CPG_Locus |
| 2 | CPG_Locus | 2 | CPG_Locus | 2 | CPG_Locus | 2 | CPG_Locus | 2 | CPG_Locus | 2 | CPG_Locus |
| 3 | CPG_Locus | 3 | CPG_Locus | 3 | CPG_Locus | 3 | CPG_Locus | 3 | CPG_Locus | 3 | CPG_Locus |
| 4 | CPG_Locus | 4 | CPG_Locus | 4 | CPG_Locus | 4 | CPG_Locus | 4 | CPG_Locus | 4 | CPG_Locus |
| ... | CPG_Locus | ... | CPG_Locus | ... | CPG_Locus | ... | CPG_Locus | ... | CPG_Locus | ... | CPG_Locus |
| n | CPG_Locus | n | CPG_Locus | n | CPG_Locus | n | CPG_Locus | n | CPG_Locus | n | CPG_Locus |
The arrangement of the top level vector entries running across the page, represents double or single maps. The lower level vectors below each of these represent the order of the loci along each map. Once this data structure has been created, you just have to send it off to CPG Map- it does the rest.
The next section describes the relationships which are available between the different loci!