		To do list for Apollo developers

----------------------------------------------------
                       Bugs
----------------------------------------------------

-------
Jalview
-------
JV3)Need a color scheme thats basically 2 colors, match and mismatch -
when we go to multi seqs there will need to be sense of what is the
"correct" seq, that matches correctly - even better the user can set
this.
JV4)Follow selection (optionally). - steve
JV6) jalview to go in window list.
JV7) highlight bars of region in main window(?)
JV14) respond to annot change event (tricky?)
JV15) protein residue take up 3 spaces
JV17) last base pair getting lopped off
JV23) Can't view features from (GFF or) Ensembl data because it can't
pfetch the sequences.  Michele said she'll set something up to enable
this.
[6/17/2003: Pfetch server now set upt at Sanger; added to apollo.cfg.
This should theoretically let us get the residues for result sequences.]
JV26) Align menu item disabled if just annot selected. Aligning just
an annot is not that informative but it probably shouldnt be
disabled(?)
JV28) If nothing in selection has sequence (unlike ensembl some things
in game dont have sequence) jalview menu should be disabled. Presently
it bring features with no sequence up with a bunch of N's.
Menu item should be disabled altogether if we don't have any sequence for
region (e.g. smaller_example_no_seq.xml)--it throws exception:
java.lang.NullPointerException
	at jalview.gui.schemes.ResidueProperties.translate(ResidueProperties.java:512)
	at jalview.datamodel.CondensedAlignment.createSequences(CondensedAlignment.java:614)
JV32) do we need column selection?
JV35) Reverse strand is being displayed low to high like forward
strand. Do we wanna flip it? 
Sima: Yes
JV36) ":726242 span 4" comes up with N's for genomic seq - this is
true of other features in this reverse strand area as well but not all
rev strand features - the reason is that there is no genomic sequence
there its outside the curation set - this leads to the question what
should be done with features outside the genomic - dont bring them up
in jalview (disable the menu if none of the selected have genomic) -
or just dont bring up the genomic?
Sima: take out the out-of-rangers but bring up a popup saying as much
JV37) If you select View->Wrap Alignment (which is rather nice -
should it be the default once this bug is fixed) and
you resize the jalview window bigger than the sequence you get an
exception:
java.lang.StringIndexOutOfBoundsException: String index out of range: -63
        at java.lang.String.substring(String.java:1525)
        at java.lang.String.substring(String.java:1492)
        at jalview.gui.DrawableSequence.drawText(DrawableSequence.java:204)
        at jalview.gui.DrawableSequence.drawSequence(DrawableSequence.java:141)
        at jalview.gui.SeqCanvas.drawPanel(SeqCanvas.java:342)
        at jalview.gui.SeqCanvas.paint(SeqCanvas.java:191)
        at javax.swing.JComponent.paintChildren(JComponent.java:498)
	...
I got this exception in a non-wrapped situation but i dont have a
repeatable for it.
JV38) colour text and black text menu items dont work right - whats
the purpose of colour text anyways? dont we always want black text?
JV39) Null pointer exception when hit "View in alignment editor"
button in Pairwise alignments window:
java.lang.NullPointerException
        at jalview.gui.ScaleCanvas.paint(ScaleCanvas.java:116)
        at javax.swing.JComponent.paintChildren(JComponent.java:498)
	...
JV40) Calc->Conservation menu item doesnt appear to do anything.
JV41) Align->Local Alignment get this message:
Exception : java.io.IOException: clustalw: not found
And then ya cant destroy the window it brings up - get this exception:
Exception occurred during event dispatching:
java.lang.NullPointerException
        at jalview.gui.ProgressFrame$ProgressWindowListener.windowClosing(ProgressFrame.java:46)
        at java.awt.Window.processWindowEvent(Window.java:812)
	...
JV42) in wrapped mode (View->Wrap alignment) the labels of the
sequences get blacked out
JV43) What it Run command suppose to do? What kind of file does it
want? I can only get it to elicit this exception:
Exception occurred during event dispatching:
java.lang.NullPointerException
        at java.io.File.<init>(File.java:180)
        at jalview.gui.popups.CommandPopup$RunCommandAction.applyAction(CommandPopup.java:70)
        at jalview.gui.menus.JalAction.actionPerformed(JalAction.java:110)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
	...
JV44) Align->Remote alignment at EBI and Remote postal analysis at EBI
both give this message:
Socket Exception java.net.ConnectException: Connection refused
Should probably be disabled.
JV45) Align->Remote Jnet analysis at EBI brings up an error dialog
with meesage ERROR: JNET action not implemented.
Should probably be disabled for now.
JV46) scrolling in main window seems slow when lots of seqs in jalview
- is this from base focus event?
JV48) intron at end can be lopped off
JV50) have follow selection checkbox with default unchecked like other windows.
JV51) jalview window should close when you load new region (be sure to
set to null to avoid memory leak)
JV53) Colour menu items "Zappo colours" and "Taylor colours" can be toggled
on and off.  "By PID" won't toggle off.
JV54) put edit menu back in, decide what needs to be kept in read-only
mode in it.
JV55) Do undo and redo work?
JV56) Copy/move selected seqs to new alignment null pointer - null
mapper:
java.lang.NullPointerException
        at jalview.gui.ScaleCanvas.paint(ScaleCanvas.java:116)
        at javax.swing.JComponent.paintChildren(JComponent.java:498)
JV57) Error message on selecting edit menu:
ERROR: JalTwoStringMenuItems should only be added to JalMenus
JV58) What does group editing mode do?
JV61) add in annot translation, in addition to annot dna
JV63) make seq name space horizontally adjustable by user
JV67) reverse translations are wrong [michele]
JV68) Zappo colours not initially selected in colour menu even though
it appears to be the color scheme in use
JV69) Similar issue with fonts--no fonts show up checked in Font menu initially.
JV70) Menu checkboxes now behave like radio button groups--why not make
them actual radio buttons?
JV71) Error dialog (for trying to delete sequence when none are selected)
looks funky--Ok is in upper left corner, Cancel is centered at bottom.
JV72) Groups doesn't work (commenting out for now)
JV73) Translation tables contain many errors
JV74) introns are not totally lining up - off by one - i think this is
due to indels and should be fixed when cigars come in
JV75) transcripts and genes not coming up in jalview anymore -
this used to work - i think this may have been broken with suzis
checkin but not sure
JV76) BlastX similarities(orange) no longer being recognized as proteins -
they used to be - this may have been broken by suzis changes
JV77) got this exception - cant repeat it:
Exception occurred during event dispatching:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1081525
        at java.lang.String.substring(String.java:1520)
        at java.lang.String.substring(String.java:1487)
        at jalview.gui.DrawableSequence.drawText(DrawableSequence.java:206)
        at jalview.gui.DrawableSequence.drawSequence(DrawableSequence.java:141)
        at jalview.gui.SeqCanvas.drawPanel(SeqCanvas.java:342)
        at jalview.gui.SeqCanvas.paint(SeqCanvas.java:246)
        at javax.swing.JComponent.paintChildren(JComponent.java:493)
JV78) rev features coords in name should be reversed
JV79) some seq names coming in verbose again - this was fixed but is
now rebroken it seems
JV80) Coords in seq names/labels are coming as from start of jalview
to end of jalview. This is broken from the way i had it before which i
believe is the way we want it which is to give the coordinates of the
actual features
JV81) The introns are now giving out genomic coordinates. They
shouldnt and they didnt before.
JV82) Reverse strand blocks are coming up 3' to 5'. I fixed this to
come up 5' to 3' but suzi wiped out my changes.
JV83) Genomic sequence slippping into the ends of some sequences
JV84) Mapper has to account for gaps.
JV85) Deal with alignments that dont have cigars but have both subject
and query alignments.
JV86) When you scroll everything gets off by one. 
JV87) Merging of blocks not working right. This can most easily seen
by creating 2 exons that are 5 bp apart - they get put into 2
different blocks. I think the problem is that
CondensedAlignment.subsumeBlocks is using hit coords instead of
genomic
JV88) The extra genomic sequence at the beginning and end of features
to show the splice sites is no longer there.
JV89) Sometimes genomic numbering disappears 
JV90) Mapper close to being right but still gets off by one or 2 after
several blocks
-----------------
end of jalview
--------------

Some blastx sequences(orange feats) are dna not peptide but when you zoom in
its spaced as peptide. (eg AV405481)

Issues with JDK1.4:
- EDE doesn't work!  Numbers on left don't show up, color along top is
missing, and panel on bottom is blank!
- If EDE is up, Sequence and Annot Info windows don't render at all--they
are just blank gray boxes!  Even popup menus are hosed.
- A lot of fonts don't look so good in 1.4.  Try other fonts.

Display non-gene annotations by type
- Need some new glyphs for different annotation types
- Need better way of representing alternate shapes in gadfly.tiers.
Seems weird that the drawable entry for transposable_element in
game.tiers is "shape:DoubleHeadedArrow" (with no mention of
apollo.gui.drawable.whatever) whereas for the other annots it's
"apollo.gui.drawable.DrawableAnnotatedSeqFeature".
- Arrowhead problems:
  Left arrowhead looks strange
  Arrowheads don't grow/shrink when you change tier heights
- p_insertion example in annot-types.xml must be not quite right.
We get a complaint "What is a apollo.datamodel.Exon named P{EP}EP3200-RA
exon 1 of type p_insertion doing as an insertion type"
- Why is p_insertion annotation unlabeled in annotation display?
- What options should be turned off for non-gene annots--e.g. Exon Detail
Editor, calculate longest ORF, ...?
- Don't use the word "transcript" if selected thing isn't a gene
(e.g. "Duplicate transcript"; "Transcript" in EDE)

Suzi says FeaturePair.toString and getDisplayId contain project-specific
(Ensembl) stuff--should be moved to NameAdapter.

Make the window around a requested gene configurable:
- Should window size be configurable in style?

Vertical scroll to selection doesn't always work--try CG31538 in
annot-types.xml.  (I think the issue is with the lowest annotation in the
reverse strand.)

Memory:
- There still seems to be a memory leak--Mark ran out of memory while
loading and reloading example.xml.  Perhaps leak is from editing?
(Annotation info editor seems to have a leak.)
- Sima ran out of memory after loading two scaffolds.
- Vivek complained recently (June 2003) about running out of memory.

If one of the DataAdapterInstall lines in apollo.cfg doesn't work, any
subsequent DataAdapterInstall lines are not parsed.

SiteView/codons should not have a scrollbar. Presently you can scroll
off one of the start tiers which is pointless.

Matching start/stop codons are selected if you select a whole transcript
of an annotation, but not if you just select a single exon.

Sima wrote: If I resize the display just before the new main display
opens, the right hand scroll bar for the annotation panel is now shown in
the middle of the main display, and it doesn't always go away if I move
or resize the main display. It just seems to float there, over the blue
and white zones.  [This bug is new--appeared since March 2003.]

"Reset views" doesn't reset tier heights to default--should it?
(Not simple to do because of the way tier heights are controlled)

java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
	at java.util.Vector.elementAt(Vector.java:417)
	at apollo.gui.TierManager.getTier(TierManager.java:109)
	at apollo.gui.drawable.DrawableSeqFeature.getYCentre(DrawableSeqFeature.java:103)
	at apollo.gui.genomemap.ScrollableTierView.isVerticallyVisible(ScrollableTierView.java:426)
	at apollo.gui.genomemap.ScrollableTierView.verticalScrollToSelection(ScrollableTierView.java:405)
	at apollo.gui.genomemap.FeatureView.verticalScrollToSelection(FeatureView.java:594)
	at apollo.gui.genomemap.FeatureView.select(FeatureView.java:586)
	at apollo.gui.genomemap.ApolloPanel.handleFeatureSelectionEvent(ApolloPanel.java:845)
This is the same (hard-to-repeat) bug that Mark reported:
Sporadic tier exception on fiddling with view dragging. Cant make it
repeatable but if you bring up example.xml and zoom in on CG1116 and
you slide away the bottom annotation window and you fiddle around with
the upper annot/result view slider after a bit of fiddling this
exception flies: [same exception]
Dont have to be zoomed. Happen a lot if you take out reverse view and
move the slider between the annots and results really fast (though it
sometimes happens on slow moves too)

On zooming way in on exon 1 of CG10229-RA in example.xml i get this message:
Couldn't get a fix on CG10229-RA exon 1 leftCoord 1057808 on feature at 130 TSS 1057787 on feature at 151 contains TSS true leftVisible 1057810 feature Tstart 1057787 for peptide  
comes from DrawableAnnotatedSeqFetaure.addDecorations
Happens when start of exon (not trans) zooms off side.
[I've seen this error message before, but I'm not getting it now with
CG10229-RA (which is the first transcript of katanin-60).

Reported by Brian Bettencourt:
When a load fails due to network timeout, Apollo says the same thing as
when the requested data really doesn't exist (e.g. "Gene foo not found").
Can we differentiate between these two scenarios?  How to simulate
network timeout when it never actually happens to us?

ScaleView (bases around axis) issues:
- Last base in sequence is missing in ScaleView.  [I have this vague
recollection that I did this on purpose to prevent exceptions.]

When you turn on labeling of results, the labels are very long.  For
example, one result is called "AY089360" in the colored detail panel, but
in the result display, it is labeled
"AY089360-AE003690.Sept-na_gb.dros-sim4".  Need a shorter label for
labeling results.
- 2/3/2003: I made a new method in NameAdapter, getShortName, for making
short labels, but I couldn't get it to work the "right" way and I'm in a
rush to get this release out, so I did a hack where the name gets
truncated heuristically.  Forgive me, for I have sinned most grievously
with this gross and kludgy hack.  Need to go back later and fix.

----------------
Selection issues
----------------
Look into all places where Selection.getSelectedData(View) is used, as
it will only pick up selection with that View as source, where the
selection could have an external source.
Fixed all tier popup menu issues.

The selection box for codons in the top start row and bottom stop rows
get cut off.

minor seq selection bug: if overlapping features from both strands
are selected, one strand highlights when you zoom in, but other doesn't.
Both should.
-----------------------
end of selection issues
-----------------------

When you slide away the bottom annot view and zoom you sometimes get
this message over and over:
"Warning: ColumnApolloLayout.standardHeight == 0.  Setting it to 1."
[I get this every time I launch Apollo under Solaris.  --NH]

Analysis control (Tweaker)
- Why does GC slider go from 1 to 497?  I can't seem to get it to go to 500.
- After looking at restriction enzymes and going back to GC window size pane,
it's all stretched out--need to constrain somehow?

Detail panel:
- In righthand detail panel, name bar is colored if the feature has a
specific name, but it's white if feature has generic name (e.g. genscan dummy)
- In feature detail panels, it's hard to see black text on dark results.
Choose white or black text depending on feature color?
- Can we make the left panel wider and the right one narrower?  Can we make
the leftmost column (Type) wider?

I don't see getNoStripes being called anywhere.  Should we be using it somewhere?

Both of these problems would be fixed by getting rid of "Save" and just
having "Save As":
- When you do "Save" (rather than "Save As") it freezes up (with the menu
still open!) while saving.  Should put up a message box that goes away
when saving is done.
- If you didn't read data from a file, and you edited the annotations and
then tried to quit, it will ask you if you want to save.  If you choose
"save, then quit", it will immediately quit w/o saving.  (Needs to prompt
you for which file to save to.)

----------------------
Annotation info window
----------------------
- When type of annotation is changed in annotation info window, need to
redraw annot (possibly in new color/shape) in main window.  I think the
problem is that it still has its old groupProperty.  How to change it?
- If you make changes to an annotation, then switch to another
annotation, and then hit X, it will not ask you if you want to save your
changes (to the other annotation).
- Memory leak
The mem leak is with the transcript canned comment pull down list and is the
java 1.3.1 popup mem leak. This is fixed in 1.4.1 so we'll just wait for the 
migration. Old curation sets are not being held onto.
- When you select a transcript and bring up the annot info window, it
shows one of the gene transcripts, but not necessarily the transcript you
selected.
- Uncommited edits are lost if edits are done in the main window. 
Annotation change events wipe out the edited uncommited clone. 
Need to preserve the clone over ann change events.
- When you add a new (custom) comment, it goes somewhere in the middle of the
list--would make more sense to go at the end (or the beginning)
[This is because comments are kept in a hash, which doesn't have an
order--see GenericAnnotationSet.java]
- Translation name and synonyms are not showing up on Annotation Info
panel--are they even being read from the XML?  If not, they should be,
and if they aren't in there they can be generated automatically from the
transcript names:  substitute PA, PB, etc for every RA, RB, etc.
[For now, we're not showing these.]
- The whole sequence of calls between/among FeatureEditorDialog,
TranscriptEditPanel, and GeneEditPanel is hopelessly baroque.
- Should we be setting some of the fields in response to activity by the
checkbox, instead of in updateFeature, which is called before the
annotation info window even appears?
- Should update Transcript Name in annotation info editor if annotation
name changes (doesn't update until you close and reopen)
- Should add variable (GOURL?) to style instead of just hardcoding it in GeneEditPanel.
- It's weird to have the list of comments be by author name and date.
Should have the comment text in that list.  Panel to right is really just
a panel for adding/editing comments, which should be a popup that comes
up when you want to add or edit rather than living there full-time.

-----------------
end of annot info
-----------------

getPropertyScheme is being called an awful lot (I noticed when I put a
println in it).  Is it being called in an inner loop somewhere?

Got exception trying to read /users/cdsmith/tmp/CG30461.xml:
"String Index out of Range: -21139"
- Problem is that map_position start > end.  If that happens, need to
mark sequence revcomped.  
x For now, warn of problem and exit.
x Chris should make all gadfly dumps have end > start so we don't
encounter this situation much.

Font/layout problems:  
- When you zoom in to see bases, some are too tall to fit in their
results.  Should ideally pick a font size for each tier, depending on
tier height.  (This might be hard).
- Use org.bdgp.swing.widget.FontChooser to let user choose fonts?
- Font for transcript name label doesn't change when you mark transcript
finished.  Need to redraw labels.
- If you zoom in just enough to see bases, the Gs get scrunched and look
like C's  Maybe choose a different font?  Or maybe we shouldn't show the
bases until the user zooms in a teensy bit more?  (See ScaleView:drawSequence)

Annotation creator colors and names:
- If user who's not in style file tries to make a new annotation, should pop up
a box asking them to set a UserColor in style file.
- When UserTranscriptColoring is turned on, and you click on a colored
annotation, the detail panel still uses deep blue.

Location data adapter not remembering history

GenBank writer:
- File browser won't let you choose a directory (even though that's what
GenBank writer requires).  Can we make it let you choose a directory?  If
not, can we accept a file and chop off the filename to get a directory?
- Even if you choose a directory, you're hosed:
caught exception writing AE003603.Sept.tbl
null
java.lang.NullPointerException
        at apollo.dataadapter.genbank.GenbankAdapter.writeGene(GenbankAdapter.java:601)
        at apollo.dataadapter.genbank.GenbankAdapter.commitTable(GenbankAdapter.java:303)
        at apollo.dataadapter.genbank.GenbankAdapter.commitChanges(GenbankAdapter.java:206)
        at apollo.dataadapter.genbank.GenbankAdapterGUI.doOperation(GenbankAdapterGUI.java:31)
        at org.bdgp.swing.widget.DataAdapterChooser.doCommitWithExceptions(DataAdapterChooser.java:355)
        at org.bdgp.swing.widget.DataAdapterChooser.doCommit(DataAdapterChooser.java:408)
        at apollo.gui.menus.FileMenu$SaveAdapterChooser.doCommit(FileMenu.java:349)
        at org.bdgp.swing.widget.DataAdapterChooser$CommitRunnable.run(DataAdapterChooser.java:132)
        at java.lang.Thread.run(Thread.java:479)
- I eliminated the null pointer exception, but something's wrong: the
validator is null (and not just for non-gene annotations)

Sequence...: (these are not exclusively SeqExport issues)
- should it listen for seq selection and highlight the seq? [low]
- arrow adjustable range for +/-
- need public method for getting currently selected sequence (suzi wants for bofe)
- intron sequence option - each intron in separate fasta
- Erroneously shows a translation for an exon that should not be translated!

Types panel:
- It's confusing that middle-mouse on a subtype gives you a score tweaker and
right-mouse gives you a color tweaker.
- Can we enable the Types panel to switch to "Berkeley style", showing
all subtypes, and user can invoke tweakers from there?
- When you kill the Types panel, any open score and color tweakers should
be killed too.

Printing bugs:
- Edgematch color and coordbackground color ignored?
- Roger reported that the postscript includes a bunch of invisible boxes.

Should make a centralized method for web browser launching--it's
recreated in too many different places.

New stuff in some data files is ignored but lots of messages are printed:
x Message from some data files (eg ~mgibson/sanger/data/apollo_test_list.xml)
annotation: Either intentionally ignoring or inadvertantly forgetting to parse aspect
- Commented this message out for now, but we should be parsing aspect (has to do
with gene function) and displaying it in Annotation Info

Data format issues:
Need to make sure that XML written out by Apollo is same as XML that it
read in--it's not losing any info.  Not so easy to test, because the XML
that comes out is reordered. [Colin is working on this]
- GadFly exports the the FBan dbxref at the <annotation> level, and the FBgn
dbxref at the <gene> level.  Apollo seems to export both at the <annotation> level.
- Make sure Apollo doesn't lose protein accession IDs from the database
when saving XML.  [Suzi?]

Annotation tree
- should allow you to sort by alphabetical order or order along
the sequence (separated by forward and reverse--right now they're intermingled?)
- put in peptide validation fonts
- Selecting an annot from annotation tree should zoom to selected annot,
rather than scrolling to beginning.

--
Annotation Editing Problems:
---
AE2a) When you split a transcript, one of the new transcripts may move to a
different tier so you can't see it without scrolling vertically.  Problem
is that tiers are sorted by start position.  Need to sort annotation
tiers in some more logical way (by name?)
  To see this problem:
  1. Load example.xml
  2. Double-click Tim17b1.1-RA to select whole transcript
  3. Ctrl-Z to zoom to selected
  4. Select last two exons of Tim17b1.1-RA
  5. Zoom x.1
  6. Use right-mouse menu to Split transcript
  7. Notice that you now see only one of the split transcripts--the other
one is not visible.  Moreover, there's still no scrollbar on the
annotation panel.
  11/14/02: Oops!  This now works fine.  Need a new example!
AE2b) Similar problem with merged transcript and duplicated transcript
AE7) There are cases where the selection that happens when you create/modify
a transcript isn't behaving the same as a selection that you do by
clicking--Mark said that, for example, there are menu items that aren't
enabled that should be.
AE8d)Splerge is now done but there are still issues:
Translation start and stop not being recalculated.
AE9) Sima: If you do an edit which eliminates a transcript's stop codon, a
warning popup should come up.
AE11)check out how all edits affect selection
AE12) Show gene report and annot info bring up first [now last] item in
multi-select. Should they consider where right click happens and
strand?  They now consider strand.
AE18) set as 3'/5'/both gives sporadic msg:
ERROR: Didn't find CG2604-RC exon 2 in set CG2604-RA
AE19) Assign name only works for exons.
Should it also work for transcripts and genes? 
AE20) The peptide status submenu I dont understand. Shouldnt I have
all of the PeptideStatus options that are in game.style?  Or if its 
already been compared to swissprot is it read only at that point. 
And if thats the case it should probably not give a sub-menu. In fact 
it seems informational, not a menu item that you select to do something. 
At least it appears to not do anything. And on new genes when I try to 
switch it from unresolved to accepted it doesnt seem to take.
In a multi-select it just says "Transcript status" and doesn't seem to 
do anything. It seems it should just be disabled for multi-selects.
AE30) There are a lot of places in the code where we're setting the
status property to "all done" or "not done".  These strings should be
defined somewhere as constants.
AE36) When we create a new transcript, should select and vertically
scroll to it--sometimes it's not visible until you vertically scroll and
locate it, which is confusing.
[I can't recreate this problem--although for some reason the new
transcripts are not always boxed, they do always seem to be visible.]
AE37) There used to (presumably in the Berkeley version) be an "add tiny
exon" command that let you start a new exon in a random location.  Need
to readd that option.

---------------------
end of annotation editing bugs subsection
---------------------

----
Exon Detail Editor (BOFE):
----
EDE9) merge with 3' exon not disabled when only one exon left
This has for the most part been fixed with this exception:
 Merging of exons still has sporadic problem. After doing a bunch
of editing fiddles I did a merge of the 2 exons of CG-1115
(example.xml). The EDE filled in the intron but it had 2 different
colors for the former exons and merge with 3' was still enabled on the
former first exon and merge with 5' was still enabled on the former
second exon. I have been unable to repeat this. Something else must
have gotten it into this funny state(?)
EDE20) got this error but not sure how: Unknown codon NNN
EDE32) Currently "make intron" is acting just like "Split". It should be
doing this:
Make intron looks upstream and downstream to find the
nearest donor and acceptor sites for splice junctions and makes
an intron using those. If it can't find two splice sites then the
intron isn't created. Same problem with create exon.
EDE33) After doing a bunch of splits (probably more than one would ever
do) you start getting a funny message even though the split works ok:
CG1158-RA has no feature containing 1126233 (1125864-1126908)
CG1158-RA has no feature containing 1126233 (1125864-1126908)
Couldn't get a fix on no_name leftCoord 1126233 on feature at 0 TSS
1125911 on feature at 48 contains TSS false leftVisible 1126176
feature Tstart 1126233 for peptide
MAEYGREPCPFRIVEDCGGAFAMGALGGGAFQAIKGFRNAPSGLGYRLSGGLAAVRARSGLVGGNFAVWGATFSA
IDCSLVYFRKKEDPWNAIIVEQHRGICLTD [low]
EDE36) If you do a "set as 3' end" before start of translation you get
this message in stdout:
CG1158-RA has no feature containing 1125911 (1125864-1126908)
FeatureSet.setPhases: CG1158-RA can't set phases--some sites undefined  tss=1125911 tes=1126908
Also, first exon is now unnumbered.  Generally seems to not deal well
with attempts to set 3' end before start of translation.
The set phases message can also happen with splits merges and deletes
with starts and stops dropping out. dont have specific case at moment.
EDE37) Eleanor Whitfield: set as 3' end and set as 5' end should be
active outside of just exons. So you can use them to extend as welll
as shorten the exons. It would probably then have to say which
exon and transcript it is for. If clicking between transcripts and 
the next transcript is really far away it should probably be disabled(?)
EDE38) As a follow up to #26 I think it would be nicer if the EDE was
truly gene focused, as in it only brought up one gene at a time 
(+/- some surrounding region). At the moment it actually brings up the
whole entry/sequence/annotations. You can actually scroll to other
genes if you want (which is awkward), and of course you have the buttons
to take you to neighboring genes(which is nice). Since Bev is saying
they only want one ede for one gene, and if they want another gene
they want to be able to bring up a separate EDE for it (which isnt
currently possilbe), then the EDE should cater to this case. It should
only bring up the area of the gene +/-500bp to be able to drag the
ends (or perhaps more?). This would have the additional benefit that
the number of lines of sequence would reflect the number of
transcripts for that gene. Currently the number of lines of sequence
reflects the maximum number of transcripts seen in one place along the
whole entry. Thus if there is a gene with 10 transcripts in the entry and you are
looking at a gene with 1 transcript you get 10 lines of sequence, 9 of
which have nothing on them. This is very awkward and confusing (and i
remember someone rightfully complaining about this). The EDE is
really to drill into one gene. I dont think this will be that hard to
do. I think the neighbor buttons could actually stay as a way of
flipping to the next gene, which is what they do now.
Sima brought up issue of wanting to see overlapping genes, this would have to 
be dealt with (could bring up genes and overlappers).
John Tupy wasnt keen on this, thought it would be hard to know how much region to
include, and doesnt want to lose ede scrolling to selection. His thought on
the seq real estate issue is to put up as many seq lines as the currently 
selected transcript - unclear how hard that would be.
Or it could grey out the unused seq lines.
Chris Smith liked it.
EDE43) Do more testing in multi-transcript genes in general. Also test
with both strands up.
EDE45) Chris Smith was very keen on having labels for the transcripts in the sequence.
Could also do mouse over transcript labeling.
EDE53) Should ede actively scroll to current selection when follow
external selection is checked? obscure case i know - nomi and sima: yes
EDE55) config option for following selection
EDE56) The glyph sometimes does not alternate colors for every
exon. Seems to happen sporadically on multi transcript genes, 
after switching the transcript.
EDE57) After doing a bunch of splits merges and adds I started to get
funny messages:
ERROR: Didn't find CG1116-RC exon 1 in set CG1116-RB
ERROR: Didn't find CG1116-RC exon 1 in set CG1116-RA
Also when I tried to do a set as 3' I got a dialog asking if i wanted
to merge transcripts, which seemed wrong. 
Since I did a bunch of things I dont know what is the repeatable here.
EDE58) Amino acid search selection highlighting does not go away after 
a nucleotide search (and vice versa--nucleotide matches don't clear when
you do an amino acid search).
EDE59) On an entry with just 2 transcripts, if you have the ede open and
you delete a transcript you get:
Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: 4 >= 4
        at java.util.Vector.elementAt(Vector.java:417)
        at apollo.gui.detailviewers.SeqAlignPanel.getSequenceForTier(SeqAlignPanel.java:638)
        at apollo.gui.detailviewers.exonviewer.TranslationViewer.paint(TranslationViewer.java:91)
        at
	java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:23)
...
you can get this on example.xml as well but you have to do a lot of
deletes to get it.
EDE60) Sima: Create exon needs to work outside of a transcript. Should it
just create a 1 bp to stretch or bring up a popup asking for length?
EDE61) While ede was up I added 3 new trans to Tim17b1 in example. The
3rd add caused the ede to jump to a transcriptless area. Each
subsequent new trans causes it to jump further 5'.
EDE62) If you open up the Find sequence window, and then load a new
sequence, the Find window doesn't go away (though the EDE goes).  Also,
when you close the EDE, it should go away (it currently doesn't).
EDE68) For any annotation that is not feature "gene" (protein-coding),
don't show frame numbers.
EDE69) Got exception (not sure how--looks like it was while doing "split
exon"):
java.lang.IllegalArgumentException: null source
        at java.util.EventObject.<init>(EventObject.java:32)
        at apollo.gui.event.FeatureSelectionEvent.<init>(FeatureSelectionEvent.java:43)
        at apollo.gui.SelectionManager.fireFeatureSelectionEvent(SelectionManager.java:164)
        at apollo.gui.SelectionManager.select(SelectionManager.java:73)
        at apollo.gui.SelectionManager.select(SelectionManager.java:100)
        at apollo.gui.AnnotationEditor.selectFeatures(AnnotationEditor.java:3115)
        at apollo.gui.AnnotationEditor.splitExon(AnnotationEditor.java:2444)
        at apollo.gui.AnnotationEditor.splitExon(AnnotationEditor.java:2457)
        at apollo.gui.AnnotationEditor.splitExon(AnnotationEditor.java:2395)
        at apollo.gui.detailviewers.exonviewer.BaseEditorPanel$RightClickActionListener.actionPerformed(BaseEditorPanel.java:822)
...
EDE71) Sometimes exons all have same colors instead of alternating
colors.  Seems to be that if you invoke a new EDE, exons have alternating
colors, but if you use "Go to next 5' gene" and/or "Go to next 3' gene"
you will soon see a gene with exons all the same color.
Example:  If I invoke EDE on CG2669, its exons are alternating colors.  If I
get to CG2669 by invoking EDE on CG14668 and then clicking "Go to next 3'
gene", the exons are all the same color.
EDE74) Make new EDE image for user manual.
EDE75) When we follow external selection, if we select a gene that
wouldn't normally bring up the EDE (i.e. one that falls of an edge of the
current region), shouldn't try to go to it in the EDE.

--------------------
GFF/Ensembl problems
--------------------

Need to be more robust and informative when user makes bad GFF or Ensembl
CGI requests:
- Ensembl CGI data adapter doesn't deal gracefully with bad ranges.  For example, if you
ask for a range starting at 0, you get many exceptions.  It should pop up a box saying
"The valid range for chromosome N is 1-3592309" or whatever.
[Now it seems ok with 0, but other bad ranges still make it throw an exception.]
- If you put letters instead of numbers in the boxes, it appears to freeze up.
- Ensj/Otter also behaves badly if you request nonexistent chromosomes or
bad ranges

GFF parsing problems:
- Saving GFF as GAME XML is not working very well--loses all the flavor.
Even if all the features show up gray when you load the saved XML
(because the tiers file doesn't know about these types), when you click
on the features, you should see more than "Type: null, Name: no_name".
(Do we need a merged tiers file?  If so, can we make tiers that contain
no data not show up in the Types panel, so it's not so cluttered?)
[Made a merged tiers file for testing; results still show up gray.  Types
are somehow getting lost.  I think the main problem is that GFF results
are not FeaturePairs.]
[If we read in GFF data without sequence, curation.getRefSequence()
is null.  Should make something up, or else we will not have a <seq>
entry for genomic, and we won't be able to read in the saved GFF file.]
[Creating new feature property scheme for human_protein:dummy [etc]
If we can't find analysis name with the ":dummy", try without it.]
- Saving GAME as GFF is also a lose.
- When fixing the no_name problem, I put a println in DefaultNameAdapter:getDisplayName
and discovered that this method is called whenever you move the mouse over the table
in the left detail panel!  This isn't terrible, but it seems like a waste of time.
I'm not sure why it's getting called so much--I couldn't track down the event that
caused it.

Ensj bugs:
- Alex reported that stop and start dont adjust when moving splice
sites for ensj fugu. I found this to be true in ensj but couldnt
repeat in game.
- When you set ensj to fugu db a popup comes up saying it cant find
the db - but in fact it does.
- ensj with annot view showing a popup comes up saying "No valid
annotation server selected...", but things load ok.
- Tried to load the stable id in the history without changing database
settings; got exception:
assemblyElements cache features: num = 0, load time = 3584ms (total = 0)
 Fetching stable id:ENSG00000157399
 assemblyElements cache features: num = 0, load time = 3411ms (total = 0)
 java.lang.NullPointerException
        at org.ensembl.driver.plugin.standard.MySQLTranscriptAdaptor.fetchTranscriptsFromDatabase(MySQLTranscriptAdaptor.java:272)
        at org.ensembl.driver.plugin.standard.MySQLTranscriptAdaptor.fetch(MySQLTranscriptAdaptor.java:106)
        at org.ensembl.driver.plugin.standard.MySQLTranscriptAdaptor.fetch(MySQLTranscriptAdaptor.java:83)
        at apollo.dataadapter.ensj.EnsJAdapter.stableID2Location(EnsJAdapter.java:397)
        at apollo.dataadapter.ensj.EnsJAdapter.getLocation(EnsJAdapter.java:352)
        at apollo.dataadapter.ensj.EnsJAdapter.setRegion(EnsJAdapter.java:188)

---------------------------
End of GFF/Ensembl problems
---------------------------

---------------------------
Synteny view problems
---------------------------

Can only enable synteny gff load OR synteny db load in apollo.cfg--can't
enable both at once.  Couldn't we just have two different dataadapters
for the different load types (even if they are mostly or entirely the
same)?

After loading GFF synteny files, I pulled up the data adapter chooser and
pulled down the list, and now all that's on it is Synteny--can't load
GAME or GFF or anything else!  (Vice versa is also true--if you load
another datatype first, then you aren't offered the synteny adapter when
you try Open new.)

If I make the evidence panel horizontal (or expand the Apollo window
horizontally), I see text to the right of the Zoom factor that says
"Species1:null:42-41991".  (This text is not visible when the evidence
panel is vertical.)

Can't ask user to keep changing names of synteny config files.  Need a
better way to do that.

When I selected a chromosome from the range chooser, it returned me to
main chooser window, but I saw no indication of what I had chosen.
Should show up somehow.

After loading some synteny data from the db, when I tried to quit, I got:
java.lang.NoClassDefFoundError: apollo/dataadapter/otter/parser/OtterXMLRenderingVisitor
	at apollo.dataadapter.ensj.AnnotationEnsJAdapter.rollbackAnnotations(AnnotationEnsJAdapter.java:727)
	at apollo.gui.ApolloFrame.confirmSaved(ApolloFrame.java:711)

----------------------------
End of synteny view problems
----------------------------



-------------------------------------------------------------------
			Desired new features
-------------------------------------------------------------------

When upgrading to 1.4, fix deprecated calls.

Put in some sort of marker where sequence/region ends. Could be
slightly different shading of background(sima votes for), or some sort
of line (thick or dashed or something)

Parse dates from na_gb headers; indicate new (how new?) sequences in some
way.

Search (Find) should allow wildcards.
x Add an implicit final *:  if we don't find anything that exactly
matches the desired name, add a final wildcard and see if anything turns up
(e.g. if user asks for LD46133, we might find LD46133.5prime).

Integrity checking of annotations when saving--e.g. check for weird
splice sites, and alert user.
(See message from Sima, Mon, 22 Apr 2002 15:06:56)

Apollo bug reports item #665973, was opened at 2003-01-10 13:25
https://sourceforge.net/tracker/?func=detail&atid=462763&aid=665973&group_id=27707
At a zoom level where nucleotides are visible, it would be nice to cut &
paste nucleotide sequences (or at least export them in some way) for
BLASTing, primer design, etc.
(Rubberband a region on the axis to select a region of sequence, view with "Sequence...")

Add more GAME data loader options
- By P element name
- By BAC

Put data adapter name strings into apollo.cfg

Add a new column to detail view: genomic range relative to current region
(rather than entire arm)

Should bookmarks be persistent across sessions (save in history file)?
If so, they will need to request the appropriate gene region from the
data loader.

Suzi wrote (on 1/20/2003):
BTW, we do need to add some of the more ad-hoc type things to Apollo
(note to self and so on). 5' and 3' partials have behaviorial
implications that should be implemented (don't allow users to set
translation start site if 5' partial is true). Likewise code should be
added to deal with seleno-cystienes and translational frameshifting in a
more rigorous way.

x We must have the annotation "name" in sync with the annotation "id". [Colin]
- Ideally, curators should be able to edit the ID in the text editor, and
apollo should be smart enough to make sure the ID and name are in sync,
and squawk if there is a problem.

Let user choose which database they want to use (e.g. gadfly, gadfly3, etc.)
Pulldown list on GAME data adapter (generated by call to perl script)?

"Send"--let user send xml to fruitfly.org
- We need a good way to diff their new xml from the old
- In addition to saving deletion, merges, and splits in the XML, should
save new genes.  Then maybe we can just send these differences.

Show evidence for annotations
- This needs to happen in the data, but will also need to make changes
probably to tiers.dat

Slider triangles
- Size and color should be configurable in style

Add editing to synteny viewer
[Is this done?]

Tier heights:
- Tier height should be in TierProperty--ideally, should be controllable
in tiers.dat.  Maybe three different variables for height of start/stop
codons, annotations, and results.
- Make annotations a bit taller than features
  - I tried making TierManager:setupTiers check if the tier it's setting
up is type Annotation, and if so, adding 5 to the drawSpace.  This worked
temporarily, but it forgot about it when the tiers were resized.

Type line in tiers file should allow for newlines.

If last line of style file lacks newline, it doesn't get read.  (Same is
presumably true for apollo.cfg)

It would be nice if there were a way to cancel loading once it starts!
(Should we worry that this would leave unwanted processes running on the
server?)

More text (e.g. sequence IDs) should be hyperlinked.  Make hyperlinked text blue.

Make memory editable in released installer version. Need to have it edit the intaller
file that is inside a jar, which is possible with javas jar api. The user could set
this and then be told to restart to have it take effect. 

Set flag in config to control verbose output; replace System.out.print* with
calls to a method that decides whether to print the message or not based on
whether we're in verbose mode.

Two modes for showing data:
x Simple (just annots, transposons, P elements, sequence) is the default
x Rich (View -> Show all results) shows a lot more
x Can this be communicated via arguments to the CGI that fetches the data?
- What about when they're reading from a file?  In simple mode, do we read
everything and just show the wanted types?

GenBank adapter: read data from GenBank, show or superimpose

Ability to superimpose your own annotations on top of existing 
annotations (layering): Mark and Suzi
x Can superimpose annotations in same region
- Need to make it work if annotations are not in same region (give sensible error
message if they're too far away)

Intron editor: Suzi

Add list of recently opened sequences (from any data adapter) to File
menu, as in Berkeley branch:  Mark or Nomi [med]

Need a more generalized argument-parsing method for ApolloFrame.  Right
now it is hardcoded to expect only certain arguments--it can't take
multiple arguments.

While reading data, show some visible indication that something's
happening (hard to make progress bar fill because we don't know how long
it will take)--maybe a spinning watch or something.  Mark
- Suzi added a Progress window, but it doesn't work right.
- Maybe start a thread to increment progress bar?



-------------------
For future releases
-------------------

Score tweaker (type->middle mouse) shows inappropriate range (1-100) for
blast hits.  How to get appropriate range?
- Chris M suggests dynamically looking at all features of that type and
calculating the min and max.  This is non-trivial; FeatureProperty is set
up before we read the features.
x For now, empirically set roughly appropriate range

Use cigar strings to store alignments (more compact).

Make undo/redo work (this would be hard.)

Need more general mechanism for indicating (in tiers file?) whether a
result sequence is nucleotides or amino acids.  Right now, relies on
"[t]blastx" program name in result, or presence of text "protein" in
feature tier label.

--------
From Andy Schroeder:
1) Very cool that you have made an option so that potential splice donor and 
acceptors can be highlighted on the genomic sequence when zoomed in.  It would 
be very useful to have edge matches highlighted in a different color than the 
default(both in the annotation and the evidence) when they lineup with a 
consensus splice site.  This would allow people to decide which ESTs are likely 
to be the most useful for their purposes,

2) Currently there is not a good way to make de novo exons that have no 
corresponding evidence in view (i.e. outside of a gene model).  This is in 
reference to cases in which there is a 5' or 3' untranslated exon a good 
distance upstream or downstream of the present annotation (perhaps identified 
and reported in a paper but not included in genbank; or an exon newly identified 
by a researcher who then wants to submit an update to an annotation).  Currently 
the only way we have to do make this sort of exon is to pull down the closest 
feature we can and use the BOFE to drag the sequence out to where we want it and 
then delete the unwanted part of the new exon.  And this only works if there is 
a feature within the distance that BOFE allows you to extend.

3) At present, when evidence is aligned (using SIM4?) there are cases where 
portions of the evidence are excluded from the alignment, and there is no easy 
way to know (for example, just by looking at the graphical viewer) if this has 
occurred.  

Two examples of when this might occur:
1) In an EST, if there is a short i.e. 8 bp sequence that matches the sequence 
of an upstream exon, the alignment algorithm won't align this 8 bp sequence to 
the appropriate exon (because the sequence is too short) but instead will just 
extend the alignment to the 5' side of the down stream exon.  When we look at 
these sequences in the alignment viewer we see either a misalignment or dashes 
indicating that there is other sequence but we don't know where it came from.  
We can usually resolve this by doing blasts and such, however, this could be 
very confusing for your average user.

2) If a piece of evidence extends from one scaffold to the next, there is no way 
to know this currently, unless you retrieve and blast the actual EST or cDNA 
sequence.

A nice feature (that would help to alleviate potential confusion due to the 
shortcomings in the alignment algorithm) would be some sort of visible flag to 
indicate that the evidence did not match the underlying sequence.  However, it 
would be important to not flag every case of a mismatch, because the sequence 
quality of ESTs is not perfect but instead to only flag those cases which had 
ends of perhaps >4? bases that do not match.
-----------

Annotators need a new window in addition to bofe that focuses solely on 
splice sites. in bofe you hafta scroll all over the place for them.

Lazy sequence loading: Mark, Colin
- Break DNA sequence out of GAME XML; get it on demand

Load data on a separate thread and display it while it's loading. There is a huge gain
here. The user can interact with the data while it's loading and doesn't have to wait
forever. This is even more relevant when going to the database which will take longer.
Mark's feeling is that this should be high priority. Unclear how hard it will be.

Web start: enable Apollo to be launched via an URL.  David Block
(dblock@gnf.org) has worked on this, but didn't want to send us his
code.  Ask him again.

When loading data, show checkbox list like the Types panel to let users choose
ahead of time which types of data they want to load.  Types can default to selected
or unselected.

For now, queries (e.g. by gene) bring up one answer.  Enable multiple answers (e.g.
wildcards), with a list that comes back to let you choose which one you want to see.

Instead of having $HOME/.apollo/apollo.cfg be a slightly modified copy of
APOLLO_ROOT/data/apollo.cfg, would be nice if you could put ONLY the
stuff you want changed into your personal one; Apollo would read the
generic one first, and then apply any modifications in your personal one.

When you turn on labeling for a type that has no result names
(e.g. Predictions), the results fan out to take up more space, even
though in fact there are no labels.  This is a bit wasteful and
confusing, but may be nontrivial to fix (since you'd have to go through
all the results first to confirm that none of them had names).

Dynamic analysis launch (e.g. blast): Suzi
- Minimal solution: launch blast (on what?), show raw text output
- Better: display new results as glyphs

Better packing - tiling takes up a lot of real estate: Mark

3D mode is rendered useless because the 3d feature overwrites most of the highlighted
ends making them very hard to see - which is critical to the biologist
need to make those ends fatter in 3d 
or make the feature a little shorter so it doesnt overwrite it

Repackage! apollo.gui is huge. It should be broken up. apollo.dataadapter could be
subpackaged into the different kinds of datadapters (game,ens,...). Mark (do post-merge)

Refactor layout. presently the view queries for its layout constraint. It should not care
about its constraint. In addition the views should be resizable. Perhaps they should
extend JPanel. - Mark
(int)stacker.getVisibleUserCoord()
Refactor DrawableSeqFeature storagein FeatureSet. Right now the details of storage are not hidden
from other objects that use it, so they have to know that the reverse strand is
stored in reverse, which makes things tedious and error prone. Mark

Refactor! FeatureSet should NOT subclass SeqFeature - seqFeature should have methods:
boolean haveChildren()
FeatureSet getChildren()
(int)stacker.getVisibleUserCoord()
Refactor FeatureSet once again. The gene/translation methods should be separated out either
in a subclass or put into a static util class

Refactor for MVC in general. DrawableSeqFeature is both a view and model. It needs to stop
being model, which means it shouldnt implement SeqFeatureI. There is probably a lot of other
MVC issues to explore as well...

Sequence selection should be separated from feature selection. Right now sequence selection
goes through feature selection.

Refactor vertical scrolling. Right now views are vertically scrolled by setting the
tier number to be visible. This is confusing because tiers are laid out in opposite
directions in the forward and reverse strands, so the scrollbar code has to invert 
tier numbers for the forward strand in ScrollableTierView, to have the 2 scrollbars
behave consistently. I think a scrollbar should just spit out its values and a view
should set itself according to y screen values, not tier values, so no inversion
would be necessary. 
The alternative would be that a scrollbar spits out tier numbers, not user coordinates.
It would then be loaded up with 0 to max tier. The only problem i guess would be figuring
what the extent is as tiers are variable sized with labeling, which actually is 
quite a problem, so maybe its not the way to go.
I think a scroll arrow click should scroll pixels and not try to go next tier, as with 
variable sized tiers (labels) a click may do nothing which is awkward.
Another minor issue is that labels are adding "black space" to the top of the forward strand.


-------------------
Documentation, etc.
-------------------

Get Suzi's BLAST analysis reader to work (add line in apollo.cfg)
(Why does it work in installed version but not in apollo_airlock version?)

"make tar" doesn't work on Solaris

With fresh checkout, bin/apollo -s doesn't work.

x Get CVS tarball from SourceForge to preserve CVS history in case SourceForge
goes under--put in /data/scratch2
- Did this, but should do regularly (every few weeks)

User manual: Nomi
- Continue to edit and update
- Improve description of editing
- Add more screenshots from EDE

Need tutorial

Make "testing manual" for testing GUI: an html page that directs you to
try different things and has screenshots showing what you should see.
This can be similar to portions of the user manual and share the
screenshots.  Mark, Nomi
- See ApolloTestlist wiki page: http://whitefly.lbl.gov/cgi-bin/wiki/view.pl/Apollo/ApolloTestlist

Creat test suites for everything, for instance data adapters:  Mark

Housecleaning: Nomi and Mark
- remove classes, methods, variables that are no longer used (warn apollo
mailing list first)

Better documentation for developers
x At least do javadoc
- Look into javadoc errors
- Document data adapters (Vivek has made a good start on this)

Make BOP portable, usable, and documented


---------------------------------
Erroneous things in the GAME file
(things that aren't apollo's fault but appear as apollo bugs,
doesn't exactly belong here - but where else would it go)
---------------------------------
- Some sequences have no residues. This is ok if they are virtual
sequences where the sequence is not recorded for them(though they
still have alignment sequence). Virtual sequences are sequences that
are constructed from ests in bop(or at least thats my understanding).
However sequence for CAC42517 has no
residues and it does not appear to be a virtual sequence.
- Some exons appear inverted. This is noticeable by observing the
alginment sequence. see LD24906.3prime in example.xml
- Sometimes there are dashes at the beginning of alignments that seem
to throw the whole alignment off - whats up with that.

GAME XML format read by Apollo is not the same GAME XML that gbrowse outputs.
[2/5/2003: Lincoln promises to fix gbrowse to write the current GAME XML format.]

BioPerl also needs to be updated to use current GAME XML.  Sheldon McKay
(smckay@bcgsc.bc.ca) is going to help with that.

