|






| |
PCM Files
The default method of getting data in to a PCM component is by a PCM file.
This file type contains all the information needed to describe a PCM map. An example file
is given here and the following explains the
format of some of this data:
 | File name suffix should be ".pcm" (but doesn't actually have
to be for the file to work), e.g. Arab_double.pcm
|
 | The file consists of a header and a series of DATA lines.
|
 | You can create comment lines by putting // at the beginning of the line.
|
 | Blank lines are ignored.
|
 | All the blanks you see in between words and numbers are
all tabs.
|
 | The blue text below are comments in order to explain the file format. In
the real files there are new-line characters directly after the text that they follow.
|
 | The lines in the header below which have an asterisk in the comments are
obligatory, e.g. you must have a TITLE_LEFT tag. All other tags in the
header are optional such as DB_LEFT.
|
 | DATA lines are explained below.
|
PCM_FILE //*The first
line of the file must always begin with this line
TITLE_LEFT Arabidopsis IV Physical //*The
name of the LHS map
TITLE_RIGHT Arabidopsis IV Linkage //*The
name of the RHS map
DB_LEFT AGR //The title of the database on
the the left
DB_RIGHT AGR //The title of the database
on the right
EXTENT_LEFT 0 21000 //*The
extents on the LHS map. In this case the map will run from 0 to 21000
EXTENT_RIGHT 0 120 //*The
extents on the RHS map. In this case the map will run from 0 to 120
UNITS_LEFT cm //*The units on the LHS map
UNITS_RIGHT bp //*The units on the RHS map
URL_LEFT
http://ukcrop.net/cgi-bin/webace?db=DB&class=CLASS&object=OBJECT
//The database URL of the LHS map
URL_RIGHT
http://ukcrop.net/cgi-bin/webace?db=DB&class=CLASS&object=OBJECT
//The database URL of the RHS map
DATA Locus GA1 1481.925
Locus GA1 16.63 //The data points, see below
DATA Locus PETC 1714.585
Locus PETC 17.97
DATA Locus mi233 1838.255
Locus mi233 18.8
DATA Locus g2616 2289.955
Locus g2616 19.3
DATA Locus mi306 2628.475
Locus mi306 19.34
DATA Locus m506 2980.615
Locus m506 19.38
DATA Locus nga12 3104.28
Locus nga12 19.89
DATA Locus mi87 3431.265
Locus mi87 20.91
DATA Locus nga8 4653.885
Locus nga8 24.18
DATA Locus RPS18C 5467.505
Locus RPS18C 27.44
DATA Locus pCITf3 5574.41
Locus pCITf3 27.99
DATA Locus H2761 5895.105
Locus H2761 28.84
DATA Locus AGL19 6689.515
Locus AGL19 37.47
DATA Locus g4108 7116.065
Locus g4108 40.75

 | Data points
You add data points, or loci on the maps using the DATA tag. Essentially a
locus is described by the database object type (e.g. Locus or Clone), the name of
the locus, (e.g. GA1) and the position on the map, (e.g. 1481.925).
There are various possibilities to bear in mind:
 | A Locus is on one map but does not have a homologue on the
other.
DATA Locus GA1
1481.925 * * *
- This puts a locus on the LHS map but
not the RHS one, the asterisks are important
DATA * *
* Locus GA1
1481.925c
- This puts a locus on the RHS map but
not the LHS one.
|
 | Two Loci are homologous.
DATA Locus GA1 1481.925 Locus GA1 16.63
This puts a locus (of
coincidentally the same name) on both maps. A line will link them to show that they are
homologous.
|
 | A Locus has more than one homologue on the opposite map.
If the following line was inserted after the previous example, a line
would join from GA1 on the LHS map to GA1 on the RHS map but also to GA2
on the RHS map.
DATA Locus GA1
1481.925 Locus GA2
20.3
|
 | A Locus has a homologue on the same map but none on the other
map.
The following three lines would have the effect of putting three loci on
the LHS map (and none on the RHS one). If you clicked one of them, all three would
highlight.
DATA Locus GA1 1481.925 * * *
DATA Locus GA5 1500.7 * =GA1 *
DATA Locus GA7 1700.20 * =GA1 *
The important tag in the second and third line is
the =LocusName one. This specifies that the locus described in that line is
homologous to a locus on the same side of the PCM of the name LocusName.
|
|
Please note
 | You cannot have two loci of the same name on one map- if you try to do this in the data
file, only the first locus of this name will appear. You can however have loci on the
other side of the PCM of the same name. |
 | The data in the LOCI lines can appear in any order- the PCM should sort them out and
present them correctly. |
 | If no loci appear on one side of the PCM, (i.e. you have asterisks on the other
side of all DATA lines), only one map will be drawn. You do not have to
have map title, units or extents tags in this case for the map that's not being drawn! |
Cross-referencing to databases
This system was designed for WebAce, the world wide web interface to the ACEDB database management
system. You have to feed in a URL in to the PCM file like:
URL_LEFT
http://ukcrop.net/cgi-bin/webace?db=AGR&class=CLASS&object=OBJECT
The word OBJECT in this line will be replaced by the name of the locus that
was double-clicked and the word CLASS will be replaced by the class of the locus,
e.g. Locus or Clone.

Feeding Data in Directly
In addition to feeding the component a PCM file, one can also pass in the
native Java data objects. This would be a fairly complicated process as you have to be a
Java programmer and know the internal PCM Java classes so
you are advised to use the PCM file. However if you still want to do it, this is what you
do but please note that to date this is untested:
 | Create a PairwiseLocus
object for each locus you want to appear on a map.
|
 | Bundle PairwiseLocus objects in to two Pairwise Map objects. All loci
on the same map (i.e. LHS or RHS of the PCM) should be bundled in to the same
PairwiseMap.
|
 | Create a PairwiseHomologys
object and bundle it and the maps in to a PairwiseComparativeMapData
object.
|
 | Call the method processHomologys(Array
rawHomologys) to create the homologies between the two maps. You should feed
this method a JGL array of String[2] objects. Each string
array should contain the names of the two loci that you want to make homologous.
|


- ŠJeremy Dickson, October 1998.
|