This document covers the details of how reporters (clones, oligos, etc.) are handled by BASE.

  1. Reporters
See also

Last updated: $Date: 2009-04-06 14:52:39 +0200 (må, 06 apr 2009) $

1. Reporters

  1. A reporter represents (the idea of) a clone, oligo, or other reporter for a gene.
  2. Every reporter has a unique reporter id, which is a string.
  3. Every reporter may, but doesn't have to, have a type. The type is mainly used for easier filtering of reporters.
  4. A reporter has a gene name and a gene symbol (short name).
  5. The server admin may add additional columns to the table and tell BASE about them; what type they have, what they represent, and so on. These columns should then appear in BASE wherever one would expect them to.
  6. Information about the additional columns of the reporter table is stored in an XML file.
  7. The server admin should also be able to define connections to external tables (possibly in another database, if the RDBMS supports it). For each such table, BASE needs to know how to construct a JOIN (what to join on and whether to use LEFT JOIN), and what the available columns in that table are.
    [NOTE] If this is desired, please choose a database system which has the functionality of mapping remote tables into local ones, and define views to make it all appear as one table for the BASE core. Of course, insertions and deletions must also be supported by the setup.
  8. It should be possible to use the external tables when filtering reporters, and values from the external tables may be retrieved as part of searches.
  9. Some external databases have a version number, e.g. ACID with different UniGene builds. BASE does not need to have any awareness of this. Instead, different versions should be seen as different external databases. If an external database is removed, BASE should be notified about it, and if a user tries to re-run an old search against this database, a meaningful error should be generated.
  10. [CLIENT] It should be possible to construct links to external resources (identified by URIs) with reporter information, using the reporter id and possibly other reporter information. As reporters may come from different sources, these rules for constructing links should be data dependent. Regexps may be useful for this.
  11. The reporter whose reporter id is an empty string is always supposed to exist, and its reporter id should not be changed. This reporter is used to represent a lack of reporter material, for instance for empty plate wells. Use NULL values for this instead.