Skip to content
Snippets Groups Projects
Commit 46d63a8a authored by mh17's avatar mh17
Browse files

reorganisings docs

parent 12698df3
No related branches found
No related tags found
No related merge requests found
ZMap - lace XML communication
=============================
The following describes changes to zmap and changes that need to be made
to otterlace to support feature display.
Overall structure
-----------------
My original (= naive) approach was that there would be some pages prepared by
zmap and some by lace but actually this won't work if we are to produce what
the annotators would like.
We need to have pages that are mixtures of zmap and lace stuff.
To support this I have introduced "subsection"s so that canonical xml looks
like this (I've omitted the attributes and data for clarity):
<zmap>
<response>
<notebook>
<chapter>
<!-- this the only bit that otter needs to address... -->
<page>
<subsection>
<paragraph>
<tagvalue>
</tagvalue>
</paragraph>
</subsection>
</page>
</chapter>
</notebook>
</response>
</zmap>
The notebook and chapter parts need not be named because for feature display
there will only be one notebook with one chapter.
Merging
-------
Otterlace will need to send over a mixture of its own complete pages and also
subsections to be displayed on existing pages. zmap will merge both into the
feature display notebook.
At the moment I am not proposing to support merging at the paragraph level as
this introduces a number of semantic problems that I think we can avoid by
simply saying that merging will only be supported from paragraphs upwards.
The merging will require that we have an agreed set of names for any pages,
subsections etc that are to be merged. We could have some incredibly dynamic
system where zmap passes the names to lace and then lace passes them back but
I think this is overkill and we should just agree on the names. The examples
below will show currently supported names.
New TagValue types
------------------
I have added multicolumn lists which require synchronisation between the
paragraph and its tagvalues, an example will clarify:
Let's assume we have a 3 column list consisting of start, end and ID data,
here's an example of how to specify this:
<paragraph name="Exon" type="compound_table"
columns="'start' 'end' 'StableID'" column_types="int int string">
<tagvalue type="compound">43491 43674 OTTHUME00000336182</tagvalue>
<tagvalue type="compound">41283 41369 OTTHUME00000336156</tagvalue>
<tagvalue type="compound">37289 37374 OTTHUME00000336151</tagvalue>
etc
</paragraph>
"columns" is mandatory and gives the titles for the columns
"column_types" is mandatory and gives the datatype for the column
The number of values in the "compound" tagvalues must match the number of
columns.
Alignment Display
-----------------
XML data for requests for alignments from zmap should include:
<response handled="true">
<!-- note that notebook and chapter are anonymous. -->
<notebook>
<chapter>
<!-- Predefined page name....only need to include this if below data exists
for this alignment. -->
<page name="Details">
<!-- Predefined subsection name. -->
<subsection name="Align">
<paragraph type="tagvalue_table">
<tagvalue name="Accession" type="simple">accession number of match sequence</tagvalue>
</paragraph>
<paragraph type="tagvalue_table">
<tagvalue name="Title" type="simple">title from "Visible Title" tags in acedb</tagvalue>
</paragraph>
</subsection>
</page>
</chapter>
</notebook>
</response>
Transcript Display
------------------
XML data for requests for transcripts from zmap should include:
<response handled="true">
<!-- note that notebook and chapter are anonymous. -->
<notebook>
<chapter>
<!-- Predefined page name....only need to include this if Locus etc exist
for this feature. -->
<page name="Details">
<!-- Predefined subsection name. -->
<subsection name="Feature">
<paragraph name="Locus" type="tagvalue_table">
<tagvalue name="Symbol" type="simple">short/object name</tagvalue>
<tagvalue name="Full Name" type="simple">longer descriptive name</tagvalue>
</paragraph>
</subsection>
<!-- Predefined subsection name, only need to include this if there is a remark
and supporting evidence. -->
<subsection name="Annotation">
<paragraph type="simple">
<tagvalue name="Remark" type="scrolled_text">some kind of description</tagvalue>
</paragraph>
<paragraph name="Evidence" type="tagvalue_table">
<tagvalue name="Trembl" type="simple">XXXXX.4</tagvalue>
<tagvalue name="EST" type="simple">sdkfjsdlkfjsljk.41</tagvalue>
</paragraph>
</subsection>
</page>
<!-- this page is completely Otters so you can change the title, names etc
as you like -->
<page name="Otter">
<subsection name="Stable IDs">
<paragraph name="Gene" type="tagvalue_table">
<tagvalue name="Stable ID" type="simple">OTTHUMG00000031177</tagvalue>
</paragraph>
<paragraph name="Transcript" type="tagvalue_table">
<tagvalue name="Stable ID" type="simple">OTTHUMT00000076345</tagvalue>
</paragraph>
<paragraph name="Exon" type="compound_table" columns="'start' 'end' 'StableID'"
column_types="int int string">
<tagvalue type="compound">43491 43674 OTTHUME00000336182</tagvalue>
<tagvalue type="compound">41283 41369 OTTHUME00000336156</tagvalue>
etc....
<tagvalue type="compound">29356 29460 OTTHUME00001470549</tagvalue>
</paragraph>
</subsection>
</page>
</chapter>
</notebook>
</response>
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment