Introduction to Table-maker on the WWW
see also Dave Matthews' Using TableMaker, which documents the xace table-maker
[Try it out!]
Although the data in ACEDB is organized into individual objects,
it is possible to extract this information in tabular form. Each
column in the table is the result of a query; thus, table-maker
can be used for queries which go beyond what ACEDB allows for a
Each table begins with a single class in column 1. Here's the
section of the table-maker form for GrainGenes which pertains to
setting up the first column:
What does each of these fields mean?
Moving along now to the second column, we see that the setup is slightly different:
The Class selection list is gone, and some new fields are included:
- The title for the whole table; this field is optional, and is purely for display.
- This determines whether or not this column will be displayed. For now, keep all
the columns visible. Later we'll cover building a table with hidden columns, which
are useful for adding queries.
- Hmm... a button with only one setting. Other columns may be optional; that is,
if an object doesn't meet the criterion for a given column, the space is left blank.
If the column is mandatory (as it always is for the first column), only those objects
with data that fit the condition are left in the table.
- A table has to start somewhere. In the first column, we must choose a class
from which to build the rest of the table. In this example, we'll choose Colleague.
- This is a blank for entering an optional ace query, which limits the list of objects
in this column. The simplest query to enter here is a string match; for now, we'll
leave it blank.
- Every column past the first is derived from a previous column. There are two
ways to construct the new column; 'From' is the default, and means that the class
in the previous column will be used as the base class for choosing the field for
- Columns can be derived only from those to the left; in column 2, the only valid
choice is '1'. Later columns will have more choices.
- Tag Chooser
- To choose a field to show in this column, click this button. What it shows
is the model of the class, with radio buttons placed next to each tag or field;
in this example, it will show the model for Colleague:
Let's display the e-mail address. To do this, click the button by the Text field
next to the E_mail tag; don't click the button next to the tag, since this
will simply show the tag in the table. After choosing this field, click the 'Continue'
button. This returns to the column setup page. Let's make one final change: make
column 2 mandatory, so that only colleagues with an e-mail address will show up
in the table. Now we're ready to see the table. Click on get html table, and you
should see this table (click
here for the whole page) :
Anderson, James A. email@example.com
Armstrong, Erin 75671.3535@COMPUSERVE.COM
Bakkeren, Guss firstname.lastname@example.org
Barrett, James A. email@example.com
Baum, Bernard R. firstname.lastname@example.org
Choo, T.M. (Alek) email@example.com
Close, Timothy J. firstname.lastname@example.org
Coppock, Daren email@example.com
Dahleen, Lynn firstname.lastname@example.org
Davis, P. Michael email@example.com
DePauw, Ron M. DEPAUW@SKRSSC.AGR.CA
DeScenzo, Richard A. firstname.lastname@example.org
Devos, Katrien M. email@example.com
Dofing, Stephen M. firstname.lastname@example.org
Dunford, Roy email@example.com
Fortin, Marc firstname.lastname@example.org
Gale, Michael D. email@example.com
Giese, Henriette firstname.lastname@example.org
By no means are we limited to two columns for the table; let's add another column, by
clicking on the new column button in the header or footer of the column setup
page, and then configure the column to list any pictures. This column is also derived
from column 1, so there's no need to change 'From 1'. Let's make this an optional field.
Using the tag chooser, click on the button next to ?Image, then continue. The final
table should look like
A more involved example
Let's build a table showing all the loci on a given map (say,
Hordeum-Giese1-7H, with their
associated position and error values. There are two ways to begin
this table; one way is to make the first column the Locus class, which
can be narrowed down to only the loci which are on a given map. However,
the locus class is fairly large, and this could be a time-consuming
query. Instead, we'll start with column 1 as the Map we're interested
Now we have to use the tag chooser to pick the field to be displayed in column 2
(which we'll make mandatory and visible); choose the ?Locus field, next to the
tags "Contains Locus".
Add a new column, to get information from each of the loci. This time, the
third column will be derived from the Locus class in column two, so change 1 to 2
after 'From'. This time, when clicking on the tag chooser, it will bring back
the model for ?Locus:
Note that there are fields which aren't currently clickable.
That is because acedb can only access rooted tags and the fields next to them;
any fields futher out can be added to the right of a previous column. In order
to get to #map_position, we first have to select ?Map, then add another column.
(Remember to set the condition for ?Map to match the original, in case this locus
is on multiple maps).
This final column should be derived not From the Locus column, but
Right_of the Map column. On this final trip through the tag chooser,
we get the model of map_position:
Model : ?map_position
Choose the float field next to Position, and continue. Let's sort by the position,
so set the sort column to 4; also, hide the map names and put it in the title,
instead. The final table should look like this:
Table-maker : "Hordeum-Giese1-7H"