ExonMostlyInitialDesignMeetingWhiteboard
From Genecats
Revision as of 18:41, 5 September 2014 by AngieHinrichs (talk | contribs) (Angie's transcription of whiteboard photos -- [?] where I'm not sure that I read a word correctly.)
Transcription
Please do correct any errors and feel free to clarify things but please keep major discussions on ExonMostlyInitialDesignMeeting or a subpage.
Jim's sections
Browser steps
- Load cart
- Get groups and tracks (Angie sidenote: {groups, supertracks/composites/etc, and user groupings})
- Load data from some displayed tracks
- Calculate track heights & layout
- Render tracks including[?] in loop (Angie sidenote: consider moving series of rendering loops into each track)
- loading data for rmsk[?], bigWig
- drawing data
- making image map for Javascript
- Interpreting Javascript
Multiple regions in zooming and scrolling
- Need some sort of global idea of genomic regions
- algorithm or list
- Fetch some items overlapping a range
- Merge some items that span multiple ranges
- Render item across all ranges
Packing
- Allocates low res array for a line
- Allocates new lines as needed
- Input: list of horizontal regions
Genome regions we support
- region in view
- items in genome coordinates
- items in pixel coordinates
Angie's sections
Incarnations of region list
- regions = {chr1:100-200, chr1:150-250, chr1:500-600, chr2:300-400}
(transform to displayed regions: merge overlap, add adding)
- dRegions = {chr1:95-255, chr1:495-605, chr2:295-405}
(transform to fetched regions: merge nearby regions to reduce #db queries)
- fRegions = {chr1:95-605, chr2:295-405}
- dRegions will be mapped to pixel coord ranges
[Emancipate us from series of rendering loops that have to recalculate height exactly in step]
- per-item rendering commands stored in list [by virtual gfx layer]
- quick pass on list calculates total height to allocate for image,
packs items[never mind, packing happens at draw time] - second pass blts into allocated image
Experiments
[partial list]
- how many simultaneous hgTracks requests/processes are typical on the RR?
- how many of the following can be done simultaneously without dragging down system performance?
* mysql queries * processes * pthreads
- when is it faster to merge nearby regions for mysql query vs. make multiple queries? [i.e. what is the max distance that we should merge -> dRegions]
overhead of exec --> socket for parallel mysql requestsoverhead of virtual command list generated by virtual gfx layer