|
| Table of Conents:
see also: the Wish List
There are three kinds of community annotation that have been talked
about:
Bulk annotation upload
Lots of people have GFF/BED/etc. files that they'd like to see rendered.
We ought to make this dead simple.
Existing examples include Santa Cruz's upload functionality:
http://genome.ucsc.edu/cgi-bin/hgCustom
and GBrowse's:
http://gmod.cvs.sourceforge.net/*checkout*/gmod/Generic-Genome-Browser/htdocs/annotation_help.html
As I see it, the fundamental difference between "annotation upload" as
currently implemented and "community annotation" like we're talking
about is that with annotation upload the uploader is the only one
looking at their annotations, while with community annotation
potentially everyone else is looking at them as well.
This immediately raises a number of questions, like how to manage all
the uploaded tracks. These will obviously vary in usefulness, and we
don't want to clutter up the display too much; on the other hand we
don't want to make people pick from a huge list as a prerequisite to
using the browser. This suggests that we'll want to have a list of
"blessed" or "default" tracks, but then you have the problem of choosing
those. Or we could have a track ranking mechanism where we show the top
n highest ranked tracks, but then we have the problem of coming up with
the track rankings. One option would be a moderation system (e.g.,
"Digg this track [+/-]"). In the fancy extreme we could even have a
collaborative filtering mechanism where we "recommend" tracks to people
based on their previous moderations.
In any case, making annotation upload work is a prerequisite to
everything else, so that's the first priority IMO. The main things we
have to do differently from current annotation upload are kicking off a
pre-rendering or primitive database fill operation and coming up with
some way of notifying the user when their track is ready to view.
Anything else?
Individual feature creation/editing
It would be neat to be able to
"draw" and "resize" features by clicking and dragging with the mouse. I
believe this is possible to do in the browser, but it is fairly fancy
and might be difficult to do in a cross-browser way. Suzi Lewis and
Chris Mungall at Berkeley BOP seem to think that this need is adequately
served by fatter clients like Apollo. Can anyone think of a use case
where someone would want to be able to adjust feature boundaries but
would be a casual enough user to not want to install Apollo? I would
imagine that most people who want to e.g. edit gene models would be
involved enough to install some software but my experience here is
limited. If no one can come up with a compelling use case for having
this on a web browser I'd be tempted to leave this out entirely, or at
least leave it until the other community annotation things are
implemented.
Feature "commenting"
Not sure what to call this (annotation
annotation?), but I'm sure there are lots of biologists out there who
know a lot about a relatively small number of genes. This is the kind
of knowledge that wouldn't be a good fit for creating an entire track
with (so it doesn't fit well into the bulk annotation upload mechanism),
but would work better for adding information about features on an
existing track. Examples that I can imagine include adding GO terms to
existing annotations, adding information about where a certain gene is
expressed, what pathways a gene is involved in, literature references,
etc. Some of these things could be stored in Chado (how much?) but in
general the kinds of information that would go here are hard to predict
IMO, so I'd like to have the option of storing it in something less
structured.
On the unstructured side, we could have a wiki with a page for each
gene, transcript, protein, whatever. One moderately-structured option
would be to use a semantic wiki like Semantic MediaWiki.
I like the idea of having this information available in RDF, and the
URI-based named attribute and typed link structure fits fairly well with
the DAS/2 feature/prop mechanism AFAICS.
One nice thing about a semantic wiki is that we could treat certain labels
specially and update the relevant chado fields. For example, if someone
puts a
[[go_term::ion binding]]
entry in the wiki, we can put it in the proper
cvterm column in chado.
In the short term I'm thinking of generating a semantic wiki page for
each annotation (directly from Chado or using Bio::DB) and having that
be (one of) the link(s) in the feature mouseover popup. Per the
discussion here from last November, I'd like to implement those popups
with DAS/2, which ought to be reasonably straightforward to access from
javascript.
-- MitchSkinner - 06 Feb 2007 |