pairwise-logo.gif (1266 bytes)

Data

Introduction Demonstration Programmers Credits

 

Up

Data
Using
Internal
Java Doc
Download

 

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.

 

Up Next

cropnet-logo-small.jpg (2438 bytes)

ŠJeremy Dickson, October 1998.