Skip to content
This repository has been archived by the owner on May 22, 2022. It is now read-only.

Package list

greenify edited this page Sep 25, 2014 · 3 revisions
  1. msa: the main class that wraps everything together
  • algo: used algorithms
  • bone: patched backbone version with jBone and own view type (pluginator) with children support
  • g: global configuration object
  • menu: render the menu
  • model: models in the project
  • views: all different views to represent the models
    • header: views for the header area
    • labels: views for the labels area
  • utils: some common helper libs

msa.coffee

  • bundles all dependencies & initiliazies the views
  • pluginator.extend = backbone view with children support
  • the initialize method is called by Backbone.view (when the user calls the constructor)
  • g is the global namespace (for the current msa) and also the mediator
  • the g is initiliazed by parameters given in the constructor
  • render() -> starts the recursive rendering process

subpackage "algo"

  • consensuscalc: loops over seqs, residues to build consensus count (for max occupant in column) .. this is a good, simple, concrete example for illustrating code framework usage and patterns
  • identitycalc: uses consensus, identity = matchedChars / totalChars (excluding gaps)

subpackage "bone"

  • view: custom patch to run with jBone instead of jQuery
  • extend: inheritance manager
  • pluginator: support for children views in a backbone view (extends the Backbone view)

subpackage "g"

  • colorator: initializing default color scheme settings "taylor")
  • columns: all column based data structures (array for tracking hidden columns, conservation precomputed, consensus precomputed (with weights), scaling) ..
  • config: some settings (e.g. the CORS proxy)
  • consensus (calls algo/ConsensusCalc)
  • visOrdering (ordering of different views)
  • visibility (set of flags for show/hide options)
  • zoomer (sizes and positions of Dom elements and regions, scroll position and speeds, padding, )

subpackage "menu"

  • defaultmenu (uses a number of components from "views" ; extremely simple menu construction)
  • menubuilder ("builds" the menu ( "factory" design pattern use). Some behaviors set here .. styles and timeouts. Also supports submenus)

subpackage "model"

  • feature (display item with text, shape, size, color, border. Defaults set)
  • featurecol (feature collection which can be probed to find all features with a set column (x) offset. I wonder if this covers amino acid code rendering (via DOM))
  • sequence (data object to hold a sequence .. name/id/seq. Contains an embedded featurecol.)
  • seqcollection (collection of sequence objects accessed through next and prev. getMaxLength() scans all seq lengths)

subpackage "views"

  • alignmentbody (listens to events from zoomer and columns, can be rendered, and vertically resized. queries zoomer.)
  • canvasfontcache (caches rendered letters (for the amino acid code drawing))
  • canvasseqblock (calculates appropriate viewport for the main view based on scroll bar and positions letter canvas elements. Handles drag/drop events for residue selection. Also shows any current selections (within row I think). Some "throttling" timing is done for legacy browsers, presumably to prevent expensive repetitive redraw actions)
  • overviewbox (holds color scheme, drawn rectangle with fillRect (so apparently does not leverage canvasseqblock ... but maybe appropriate since no scroll bar here. But also has selection drag/drop mouse code, and selection rendering code)
  • stage (links and renders the main subviews: consensus, overview, header, body)

header

the bar above the alignment block

  • header/conservationview (uses svg to plot bar chart, captures mouse events over this view)
  • header/headerblock (displays the scrollbar needed for the main canvas, handles consensus, identity, conservation, markers)
  • header/markerview (marker is ruler .. show column numbers at intervals .. senses mouse events in markers)

labels

  • labels/labelblock (a collection of labelrowview objects. talks with zoomer to set alignmentscrolltop, and sends scroll events to the main seqBlock canvas)
  • labels/labelrowview (data object holding labels and metacell, style set by sass class)
  • labels/labelview (renders checkbox, id, partition, name (the left hand margin text columns), and captures mouse events (hovers and clicks))
  • labels/metaview (renders gap count, identity, external URL links (uniprot), captures mouse events (hovers, mouseovers, clicks))

subpackage "utils"

  • bmath (random number generation)
  • color (rgb color representation conversion)
  • dom (utilities for temporary dom deletions and recursive deletions)
  • mouse (access mouse coordinates and mouse wheel changes)
  • seqgen (creates randomized sequences)
  • svg (class for rect, line, polygon and (root) svg elements)