GMOD / Apollo

Genome annotation editor with a Java Server backend and a Javascript client that runs in a web browser as a JBrowse plugin.
http://genomearchitect.readthedocs.io/
Other
126 stars 85 forks source link

Create Projection v2 #895

Closed nathandunn closed 8 years ago

nathandunn commented 8 years ago

TODO:

      {
            "start": 17,
            "end": 932,
            "id": 3,
            "id": 3,
            "sequenceList":[
                {
                    "name":"chr1", 
                    "start": 123, 
                    "end": 789
                    "reverse": false
                    "feature": {"name":"SOX9"},
                    "folding":[
                        {"fmin":300,"fmax":532}
                    ]
                }
            ]
        }

Use-cases

Datastructure: Putative datastructure used for display. Note that the "folding" is different as it indicates the areas we are hiding (and need to indicate). Features indicate the areas that we are showing. In the sequenceList we need to be able to the region. The "features" portion is for decoration as is the "folding" region.

nathandunn commented 8 years ago

Create fold method:

Rightedge - left edge .. Projection .. Note (json)

Project feature:

Fmin fmax .. Projection .. Note (json)

Multiple projections e.g. Reverse complement .. Store a list of projections to apply

Display .. Sketch note

from skitch

Projection notation should be (red is flipped, blue is not or vice versa):

image

With Genes:

image

A Gene crossing scaffold:

image

nathandunn commented 8 years ago

Note: 1-base vs interbase: http://transvar.org/6111/interbase.pdf

We are using 1-base (same as GFF3), though internally, I think that JBrowse is using interbase (bed files, etc.).

nathandunn commented 8 years ago

will try adding an extra track for the display . . should be REST based initially

nathandunn commented 8 years ago

so there are a few different approaches that we've looked at. Our biggest hinderances are: 1) we don't want to rewrite JBrowse and 2) we need appropriate visualizations 3) we don't have an appropriate model store / alternate view for our data.

I'm curious why . . . instead of modifying store functions, if we used REST directly, but this is sort of what we were already doing with the server-side mangling.

To create the REST-side alternate "view" track, I think we could just display a "feature" labelled "Projection Legend (785-913)". This will allow counting. You could even count by 10's or something, internally, displaying as exons, etc. From here you could

nathandunn commented 8 years ago

Components to Consider

Implications of doing on the client versus the backend

nathandunn commented 8 years ago

closing in favor of #895