diff --git a/client/galaxy/scripts/utils/config.js b/client/galaxy/scripts/utils/config.js index db3c4052ede..50bec9ccb9e 100644 --- a/client/galaxy/scripts/utils/config.js +++ b/client/galaxy/scripts/utils/config.js @@ -4,7 +4,7 @@ define(['libs/underscore', 'viz/trackster/util', 'utils/config'], function(_, ut * A configuration setting. Currently key is used as id. */ var ConfigSetting = Backbone.Model.extend({ - + initialize: function(options) { // Use key as id for now. var key = this.get('key'); @@ -16,8 +16,8 @@ var ConfigSetting = Backbone.Model.extend({ this.set(_.extend({}, defaults, options)); } - if (this.get('value') === undefined) { - // Use default to set value. + if (this.get('value') === undefined && this.get('default_value') !== undefined) { + // Use default to set value (if present). this.set_value(this.get('default_value')); // If no default value for color config, set random color. @@ -134,7 +134,7 @@ var ConfigSettingCollection = Backbone.Collection.extend({ return _.extend({}, m, { value: saved_values[m.key] }); }); } - + return new ConfigSettingCollection(models); } }); @@ -150,7 +150,7 @@ var ConfigSettingCollectionView = Backbone.View.extend({ */ render: function() { var container = this.$el; - + this.collection.each(function(param, index) { // Hidden params have no representation in the form if (param.get('hidden')) { return; } @@ -165,7 +165,7 @@ var ConfigSettingCollectionView = Backbone.View.extend({ if ( type === 'bool' ) { row.append( $('').attr("id", id ).attr("name", id ).attr( 'checked', value ) ); } - // Draw parameter as textbox + // Draw parameter as textbox else if ( type === 'text' ) { row.append( $('').attr("id", id ).val(value).click( function() { $(this).select(); })); } @@ -177,39 +177,39 @@ var ConfigSettingCollectionView = Backbone.View.extend({ }); select.val( value ); row.append( select ); - + } - // Draw parameter as color picker + // Draw parameter as color picker else if ( type === 'color' ) { - var + var container_div = $("
").appendTo(row), - input = $('').attr("id", id ).attr("name", id ).val( value ).css("float", "left") + input = $('').attr("id", id ).attr("name", id ).val( value ).css("float", "left") .appendTo(container_div).click(function(e) { // Hide other pickers. $(".tooltip").removeClass( "in" ); - + // Show input's color picker. var tip = $(this).siblings(".tooltip").addClass( "in" ); - tip.css( { + tip.css( { // left: $(this).position().left + ( $(input).width() / 2 ) - 60, - // top: $(this).position().top + $(this.height) + // top: $(this).position().top + $(this.height) left: $(this).position().left + $(this).width() + 5, top: $(this).position().top - ( $(tip).height() / 2 ) + ( $(this).height() / 2 ) } ).show(); - - // Click management: - + + // Click management: + // Keep showing tip if clicking in tip. tip.click(function(e) { e.stopPropagation(); }); - + // Hide tip if clicking outside of tip. $(document).bind( "click.color-picker", function() { tip.hide(); $(document).unbind( "click.color-picker" ); }); - + // No propagation to avoid triggering document click (and tip hiding) above. e.stopPropagation(); }), @@ -222,20 +222,20 @@ var ConfigSettingCollectionView = Backbone.View.extend({ tip_inner = $("
").appendTo(tip), tip_arrow = $("
").appendTo(tip), farb_obj = $.farbtastic(tip_inner, { width: 100, height: 100, callback: input, color: value }); - + // Clear floating. container_div.append( $("
").css("clear", "both")); - + // Use function to fix farb_obj value. (function(fixed_farb_obj) { new_color_icon.click(function() { fixed_farb_obj.setColor(util_mod.get_random_color()); - }); + }); })(farb_obj); - - } + + } else { - row.append( $('').attr("id", id ).attr("name", id ).val( value ) ); + row.append( $('').attr("id", id ).attr("name", id ).val( value ) ); } // Help text if ( param.help ) { diff --git a/client/galaxy/scripts/viz/trackster/painters.js b/client/galaxy/scripts/viz/trackster/painters.js index f17cb050067..f88aabf3d69 100644 --- a/client/galaxy/scripts/viz/trackster/painters.js +++ b/client/galaxy/scripts/viz/trackster/painters.js @@ -8,7 +8,7 @@ define( ["libs/underscore"], function( _ ) { */ var BEFORE = 1001, CONTAINS = 1002, OVERLAP_START = 1003, OVERLAP_END = 1004, CONTAINED_BY = 1005, AFTER = 1006; var compute_overlap = function(first_region, second_region) { - var + var first_start = first_region[0], first_end = first_region[1], second_start = second_region[0], second_end = second_region[1], overlap; @@ -34,7 +34,7 @@ var compute_overlap = function(first_region, second_region) { overlap = OVERLAP_END; } } - + return overlap; }; @@ -60,7 +60,7 @@ var dashedLine = function(ctx, x1, y1, x2, y2, dashLen) { var dashX = dX / dashes; var dashY = dY / dashes; var q; - + for (q = 0; q < dashes; q++, x1 += dashX, y1 += dashY) { if (q % 2 !== 0) { continue; @@ -74,11 +74,11 @@ var dashedLine = function(ctx, x1, y1, x2, y2, dashLen) { */ var drawDownwardEquilateralTriangle = function(ctx, down_vertex_x, down_vertex_y, side_len) { // Compute other two points of triangle. - var + var x1 = down_vertex_x - side_len/2, x2 = down_vertex_x + side_len/2, y = down_vertex_y - Math.sqrt( side_len*3/2 ); - + // Draw and fill. ctx.beginPath(); ctx.moveTo(x1, y); @@ -198,16 +198,16 @@ LinePainter.prototype.draw = function(ctx, width, height, w_scale) { ctx.fillStyle = "#aaa"; ctx.fillRect( 0, y_zero, width, 1 ); } - + ctx.beginPath(); var x_scaled, y, delta_x_px; if (data.length > 1) { delta_x_px = Math.ceil((data[1][0] - data[0][0]) * w_scale); - } + } else { delta_x_px = 10; } - + // Painter color can be in either block_color (FeatureTrack) or color pref (LineTrack). var painter_color = this.prefs.block_color || this.prefs.color, // Extract RGB from preference color. @@ -215,10 +215,10 @@ LinePainter.prototype.draw = function(ctx, width, height, w_scale) { pref_r = (pref_color & 0xff0000) >> 16, pref_g = (pref_color & 0x00ff00) >> 8, pref_b = pref_color & 0x0000ff, - top_overflow = false, + top_overflow = false, bot_overflow = false; - - + + // Paint track. for (var i = 0, len = data.length; i < len; i++) { // Reset attributes for next point. @@ -241,20 +241,20 @@ LinePainter.prototype.draw = function(ctx, width, height, w_scale) { if (y < min_value) { bot_overflow = true; y = min_value; - } + } else if (y > max_value) { top_overflow = true; y = max_value; } - + // Draw point. if (mode === "Histogram") { // y becomes the bar height in pixels, which is the negated for canvas coords y = Math.round( y / vertical_range * height_px ); ctx.fillRect(x_scaled, y_zero, delta_x_px, - y ); - } + } else if (mode === "Intensity") { - var + var saturation = (y - min_value) / vertical_range, // Range is [pref_color, 255] where saturation = 0 --> 255 and saturation = 1 --> pref color new_r = Math.round( pref_r + (255 - pref_r) * (1 - saturation) ), @@ -262,23 +262,23 @@ LinePainter.prototype.draw = function(ctx, width, height, w_scale) { new_b = Math.round( pref_b + (255 - pref_b) * (1 - saturation) ); ctx.fillStyle = "rgb(" + new_r + "," + new_g + "," + new_b + ")"; ctx.fillRect(x_scaled, 0, delta_x_px, height_px); - } + } else { // mode is Coverage/Line or Filled. // Scale Y value. y = Math.round( height_px - (y - min_value) / vertical_range * height_px ); if (in_path) { ctx.lineTo(x_scaled, y); - } + } else { in_path = true; if (mode === "Filled") { ctx.moveTo(x_scaled, height_px); ctx.lineTo(x_scaled, y); - } + } else { ctx.moveTo(x_scaled, y); - // Use this approach (note: same as for filled) to draw line from 0 to + // Use this approach (note: same as for filled) to draw line from 0 to // first data point. //ctx.moveTo(x_scaled, height_px); //ctx.lineTo(x_scaled, y); @@ -292,7 +292,7 @@ LinePainter.prototype.draw = function(ctx, width, height, w_scale) { var overflow_x; if (mode === "Histogram" || mode === "Intensity") { overflow_x = delta_x_px; - } + } else { // Line and Filled, which are points x_scaled -= 2; // Move it over to the left so it's centered on the point overflow_x = 4; @@ -312,11 +312,11 @@ LinePainter.prototype.draw = function(ctx, width, height, w_scale) { ctx.lineTo( 0, y_zero ); } ctx.fill(); - } + } else { ctx.stroke(); } - + ctx.restore(); }; @@ -356,7 +356,7 @@ FeaturePositionMapper.prototype.get_feature_data = function(x, y) { if (!this.feature_positions[slot]) { return null; } - + // Find feature using X. x += this.translation; for (var i = 0; i < this.feature_positions[slot].length; i++) { @@ -404,8 +404,8 @@ _.extend(FeaturePainter.prototype, { * a FeaturePositionMapper object with information about where features were drawn. */ draw: function(ctx, width, height, w_scale, slots) { - var data = this.data, - view_start = this.view_start, + var data = this.data, + view_start = this.view_start, view_end = this.view_end; ctx.save(); @@ -423,11 +423,11 @@ _.extend(FeaturePainter.prototype, { feature_uid = feature[0], feature_start = feature[1], feature_end = feature[2], - // Slot valid only if features are slotted and this feature is slotted; + // Slot valid only if features are slotted and this feature is slotted; // feature may not be due to lack of space. slot = (slots && slots[feature_uid] !== undefined ? slots[feature_uid].slot : null); - - // Draw feature if (a) mode is dense or feature is slotted (as it must be for all non-dense modes) and + + // Draw feature if (a) mode is dense or feature is slotted (as it must be for all non-dense modes) and // (b) there's overlap between the feature and drawing region. if ( (this.mode === "Dense" || slot !== null) && ( feature_start < view_end && feature_end > view_start ) ) { x_draw_coords = this.draw_element(ctx, this.mode, feature, slot, view_start, view_end, w_scale, y_scale, width); @@ -449,7 +449,7 @@ _.extend(FeaturePainter.prototype, { }); }, - /** + /** * Abstract function for drawing an individual feature. */ draw_element: function(ctx, mode, feature, slot, tile_low, tile_high, w_scale, y_scale, width ) { @@ -486,7 +486,7 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { get_row_height: function() { var mode = this.mode, height; if (mode === "Dense") { - height = DENSE_TRACK_HEIGHT; + height = DENSE_TRACK_HEIGHT; } else if (mode === "no_detail") { height = NO_DETAIL_TRACK_HEIGHT; @@ -520,20 +520,20 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { // For now, assume '.' === '+' block_color = (!feature_strand || feature_strand === "+" || feature_strand === "." ? this.prefs.block_color : this.prefs.reverse_strand_color); label_color = this.prefs.label_color; - + // Set global alpha. ctx.globalAlpha = this.alpha_scaler.gen_val(feature); - + // In dense mode, put all data in top slot. if (mode === "Dense") { slot = 1; } - + if (mode === "no_detail") { // No details for feature, so only one way to display. ctx.fillStyle = block_color; ctx.fillRect(f_start, y_start + 5, f_end - f_start, NO_DETAIL_FEATURE_HEIGHT); - } + } else { // Mode is either Squish or Pack: // Feature details. var feature_ts = feature[5], @@ -541,12 +541,12 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { feature_blocks = feature[7], // Whether we are drawing full height or squished features full_height = true; - + if (feature_ts && feature_te) { thick_start = Math.floor( Math.max(0, (feature_ts - tile_low) * w_scale) ); thick_end = Math.ceil( Math.min(width, Math.max(0, (feature_te - tile_low) * w_scale)) ); } - + // Set vars that depend on mode. var thin_height, thick_height; if (mode === "Squish" ) { @@ -560,7 +560,7 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { thin_height = 5; thick_height = PACK_FEATURE_HEIGHT; } - + // Draw feature/feature blocks + connectors. if (!feature_blocks) { // If there are no blocks, treat the feature as one big exon. @@ -575,15 +575,15 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { } ctx.fillRect(f_start, y_start + 1, f_end - f_start, thick_height); } - } else { + } else { // // There are feature blocks and mode is either Squish or Pack. // - // Approach: (a) draw whole feature as connector/intron and (b) draw blocks as + // Approach: (a) draw whole feature as connector/intron and (b) draw blocks as // needed. This ensures that whole feature, regardless of whether it starts with // a block, is visible. // - + // Compute y axis start position and height var cur_y_start, cur_height; if (mode === "Squish" || mode === "Dense") { @@ -620,7 +620,7 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { } ctx.fillRect(f_start, cur_y_start, f_end - f_start, cur_height); } - + // Draw blocks. var start_and_height; for (var k = 0, k_len = feature_blocks.length; k < k_len; k++) { @@ -630,7 +630,7 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { block_end = Math.ceil( Math.min(width, Math.max((block[1] - tile_low - 0.5) * w_scale)) ), last_block_start, last_block_end; - // Skip drawing if block not on tile. + // Skip drawing if block not on tile. if (block_start > block_end) { continue; } // Draw thin block. @@ -666,15 +666,15 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { last_block_start = block_start; last_block_end = block_end; } - + // FIXME: Height scaling only works in Pack mode right now. if (mode === "Pack") { // Reset alpha so height scaling is not impacted by alpha scaling. ctx.globalAlpha = 1; - + // Height scaling: draw white lines to reduce height according to height scale factor. ctx.fillStyle = "white"; // TODO: set this to background color. - var + var hscale_factor = this.height_scaler.gen_val(feature), // Ceil ensures that min height is >= 1. new_height = Math.ceil(thick_height * hscale_factor), @@ -682,13 +682,13 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { if (hscale_factor !== 1) { ctx.fillRect(f_start, cur_y_start + 1, f_end - f_start, ws_height); ctx.fillRect(f_start, cur_y_start + thick_height - ws_height + 1, f_end - f_start, ws_height); - } - } + } + } } - + // Reset alpha so that label is not transparent. ctx.globalAlpha = 1; - + // Draw label for Pack mode. if (feature_name && mode === "Pack" && feature_start > tile_low) { ctx.fillStyle = label_color; @@ -705,10 +705,10 @@ _.extend(LinkedFeaturePainter.prototype, FeaturePainter.prototype, { //ctx.fillStyle = block_color; } } - + // Reset global alpha. ctx.globalAlpha = 1; - + return [draw_start, draw_end]; } }); @@ -726,7 +726,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { get_row_height: function() { var height, mode = this.mode; if (mode === "Dense") { - height = DENSE_TRACK_HEIGHT; + height = DENSE_TRACK_HEIGHT; } else if (mode === "Squish") { height = SQUISH_TRACK_HEIGHT; @@ -821,7 +821,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { drawing_blocks = [], s_start, s_end; - + // Keep list of items that need to be drawn on top of initial drawing layer. var draw_last = []; @@ -837,7 +837,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { if (is_overlap([feature_start + block[0], feature_start + block[1]], tile_region)) { s_start = get_draw_coord(feature_start + block[0]); s_end = get_draw_coord(feature_start + block[1]); - + // Make sure that block is drawn even if it too small to be rendered officially; in this case, // read is drawn at 1px. // TODO: need to ensure that s_start, s_end are calculated the same for both slotting @@ -861,7 +861,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { var seq_start = feature_start + base_offset; s_start = get_draw_coord(seq_start); s_end = get_draw_coord(seq_start + cig_len); - + // Skip feature if it's not in tile. if (!is_overlap([seq_start, seq_start + cig_len], tile_region)) { // Update offsets. @@ -869,7 +869,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { seq_offset = update_seq_offset(seq_offset, cig_op, cig_len); continue; } - + // Make sure that read is drawn even if it too small to be rendered officially; in this case, // read is drawn at 1px. // TODO: need to ensure that s_start, s_end are calculated the same for both slotting @@ -877,8 +877,8 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { if (s_start === s_end) { s_end += 1; } - - // Draw read feature. + + // Draw read feature. switch (cig_op) { case "H": // Hard clipping. case "S": // Soft clipping. @@ -932,7 +932,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { // Move forward in sequence only if sequence used to get mismatches. if (cig_op === 'X') { seq_offset += cig_len; } base_offset += cig_len; - + break; case "N": // Skipped bases. ctx.fillStyle = CONNECTOR_COLOR; @@ -948,7 +948,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { // Check to see if sequence should be drawn at all by looking at the overlap between // the sequence region and the tile region. var insert_x_coord = s_start - gap; - + if (is_overlap([seq_start, seq_start + cig_len], tile_region)) { var seq = read_seq.slice(seq_offset, seq_offset + cig_len); // Insertion point is between the sequence start and the previous base: (-gap) moves @@ -992,7 +992,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { // Draw block. ctx.fillStyle = "yellow"; // TODO: This is a pretty hack-ish way to fill rectangle based on mode. - ctx.fillRect(x_center, y_start + (this.mode !== "Dense" ? 2 : 5), + ctx.fillRect(x_center, y_start + (this.mode !== "Dense" ? 2 : 5), s_end - s_start, (mode !== "Dense" ? SQUISH_FEATURE_HEIGHT : DENSE_FEATURE_HEIGHT)); } } @@ -1011,7 +1011,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { break; } } - + // // Draw last items. // @@ -1032,7 +1032,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { } } }, - + /** * Draw a complete read pair */ @@ -1048,7 +1048,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { y_start = (mode === "Dense" ? 0 : (0 + slot)) * y_scale, draw_height = (mode === 'Pack' ? PACK_FEATURE_HEIGHT : SQUISH_FEATURE_HEIGHT), label_color = this.prefs.label_color; - + // Draw read. if (feature[5] instanceof Array) { // Read is paired. @@ -1097,7 +1097,7 @@ _.extend(ReadPainter.prototype, FeaturePainter.prototype, { ctx.fillText(feature_name, f_start - LABEL_SPACING, y_start + 9, this.max_label_length); } } - + // FIXME: provide actual coordinates for drawn read. return [0,0]; } @@ -1122,7 +1122,7 @@ _.extend(ArcLinkedFeaturePainter.prototype, FeaturePainter.prototype, LinkedFeat return longest_feature_length; }, - get_top_padding: function( width ) { + get_top_padding: function( width ) { var view_range = this.view_end - this.view_start, w_scale = width / view_range; return Math.min( 128, Math.ceil( ( this.longest_feature_length / 2 ) * w_scale ) ); @@ -1131,7 +1131,7 @@ _.extend(ArcLinkedFeaturePainter.prototype, FeaturePainter.prototype, LinkedFeat draw_connector: function( ctx, block1_start, block1_end, block2_start, block2_end, y_start ) { // Arc drawing -- from closest endpoints var x_center = ( block1_end + block2_start ) / 2, - radius = block2_start - x_center; + radius = block2_start - x_center; // For full half circles var angle1 = Math.PI, angle2 = 0; if ( radius > 0 ) { @@ -1290,32 +1290,33 @@ SplitRamp.prototype.map_value = function( value ) { var DiagonalHeatmapPainter = function(data, view_start, view_end, prefs, mode) { Painter.call( this, data, view_start, view_end, prefs, mode ); var i, len; + if ( this.prefs.min_value === undefined ) { var min_value = Infinity; for (i = 0, len = this.data.length; i < len; i++) { - min_value = Math.min( min_value, this.data[i][5] ); + min_value = Math.min( min_value, this.data[i][6] ); } this.prefs.min_value = min_value; } if ( this.prefs.max_value === undefined ) { var max_value = -Infinity; for (i = 0, len = this.data.length; i < len; i++) { - max_value = Math.max( max_value, this.data[i][5] ); + max_value = Math.max( max_value, this.data[i][6] ); } this.prefs.max_value = max_value; } }; -DiagonalHeatmapPainter.prototype.default_prefs = { - min_value: undefined, - max_value: undefined, - mode: "Heatmap", +DiagonalHeatmapPainter.prototype.default_prefs = { + min_value: undefined, + max_value: undefined, + mode: "Heatmap", pos_color: "#FF8C00", - neg_color: "#4169E1" + neg_color: "#4169E1" }; DiagonalHeatmapPainter.prototype.draw = function(ctx, width, height, w_scale) { - var + var min_value = this.prefs.min_value, max_value = this.prefs.max_value, value_range = max_value - min_value, @@ -1336,15 +1337,11 @@ DiagonalHeatmapPainter.prototype.draw = function(ctx, width, height, w_scale) { // Draw into triangle, then rotate and scale ctx.rotate(-45 * Math.PI / 180); ctx.scale( invsqrt2, invsqrt2 ); - + // Paint track. for (var i = 0, len = data.length; i < len; i++) { - d = data[i]; - // Ensure the cell is visible - // if ( ) - s1 = scale( d[1] ); e1 = scale( d[2] ); s2 = scale( d[4] ); @@ -1352,10 +1349,9 @@ DiagonalHeatmapPainter.prototype.draw = function(ctx, width, height, w_scale) { value = d[6]; ctx.fillStyle = ( ramp.map_value( value ) ); - ctx.fillRect( s1, s2, ( e1 - s1 ), ( e2 - s2 ) ); } - + ctx.restore(); }; @@ -1372,7 +1368,7 @@ var ReadPainterUtils = function(ctx, row_height, px_per_base, mode) { _.extend(ReadPainterUtils.prototype, { /** - * Draw deletion of base(s). + * Draw deletion of base(s). * @param draw_detail if true, drawing in detail and deletion is drawn more subtly */ draw_deletion: function(x, y, len) { @@ -1399,7 +1395,7 @@ _.extend(VariantPainter.prototype, Painter.prototype, { get_row_height: function() { var mode = this.mode, height; if (mode === "Dense") { - height = DENSE_TRACK_HEIGHT; + height = DENSE_TRACK_HEIGHT; } else if (mode === "Squish") { height = SQUISH_TRACK_HEIGHT; @@ -1431,8 +1427,8 @@ _.extend(VariantPainter.prototype, Painter.prototype, { draw: function(ctx, width, height, w_scale) { ctx.save(); - var - /** + var + /** * Returns dictionary of information about an indel; returns empty if there no indel. Assumes indel is left-aligned. * Dict attributes: * -type: 'insertion' or 'deletion' @@ -1485,7 +1481,7 @@ _.extend(VariantPainter.prototype, Painter.prototype, { row_height = (this.mode === 'Squish' ? SQUISH_TRACK_HEIGHT : PACK_TRACK_HEIGHT), // If zoomed out, fill the whole row with feature to make it easier to read; // when zoomed in, use feature height so that there are gaps in sample rows. - feature_height = (w_scale < 0.1 ? + feature_height = (w_scale < 0.1 ? row_height : (this.mode === 'Squish' ? SQUISH_FEATURE_HEIGHT : PACK_FEATURE_HEIGHT) ), @@ -1495,7 +1491,7 @@ _.extend(VariantPainter.prototype, Painter.prototype, { // If there's a single sample, update drawing variables. if (num_samples === 1) { - row_height = feature_height = + row_height = feature_height = (w_scale < ctx.canvas.manager.char_width_px ? this.prefs.summary_height : row_height); paint_utils.row_height = row_height; // No summary when there's a single sample. @@ -1519,7 +1515,7 @@ _.extend(VariantPainter.prototype, Painter.prototype, { alt = [ locus_data[4].split(',') ]; sample_gts = locus_data[7].split(','); allele_counts = locus_data.slice(8); - + // Process alterate values to derive information about each alt. alt = _.map(_.flatten(alt), function(a) { var alt_info = { @@ -1528,7 +1524,7 @@ _.extend(VariantPainter.prototype, Painter.prototype, { start: 0 }, indel_info = get_indel_info(ref, a); - + return _.extend(alt_info, indel_info); }); @@ -1541,7 +1537,7 @@ _.extend(VariantPainter.prototype, Painter.prototype, { if (draw_summary) { ctx.fillStyle = '#999999'; ctx.globalAlpha = 1; - for (j = 0; j < alt.length; j++) { + for (j = 0; j < alt.length; j++) { // Draw background for summary. draw_x_start = this.get_start_draw_pos(pos + alt[j].start, w_scale); ctx.fillRect(draw_x_start, 0, base_px, this.prefs.summary_height); @@ -1564,7 +1560,7 @@ _.extend(VariantPainter.prototype, Painter.prototype, { draw_y_start = (draw_summary ? this.prefs.summary_height + this.divider_height : 0); for (j = 0; j < sample_gts.length; j++, draw_y_start += row_height) { genotype = (sample_gts[j] ? sample_gts[j].split(/\/|\|/) : ['0', '0']); - + // Get variant to draw and set drawing properties. variant = null; if (genotype[0] === genotype[1]) { diff --git a/client/galaxy/scripts/viz/trackster/tracks.js b/client/galaxy/scripts/viz/trackster/tracks.js index f3719d6c2ef..31c8d3dfcff 100644 --- a/client/galaxy/scripts/viz/trackster/tracks.js +++ b/client/galaxy/scripts/viz/trackster/tracks.js @@ -1,6 +1,6 @@ -define( ["libs/underscore", "viz/visualization", "viz/viz_views", "viz/trackster/util", +define( ["libs/underscore", "viz/visualization", "viz/viz_views", "viz/trackster/util", "viz/trackster/slotting", "viz/trackster/painters", "viz/trackster/filters", - "mvc/data", "mvc/tools", "utils/config" ], + "mvc/data", "mvc/tools", "utils/config" ], function(_, visualization, viz_views, util, slotting, painters, filters_mod, data, tools_mod, config_mod) { var extend = _.extend; @@ -20,22 +20,22 @@ var is_container = function(element, obj) { html_elt_js_obj_dict[element.attr("id")] = obj; }; -/** +/** * Make `element` moveable within parent and sibling elements by dragging `handle` (a selector). * Function manages JS objects, containers as well. * * @param element HTML element to make moveable * @param handle_class classname that denotes HTML element to be used as handle * @param container_selector selector used to identify possible containers for this element - * @param element_js_obj JavaScript object associated with element; used + * @param element_js_obj JavaScript object associated with element; used */ var moveable = function(element, handle_class, container_selector, element_js_obj) { // HACK: set default value for container selector. container_selector = ".group"; - + // Register element with its object. html_elt_js_obj_dict[element.attr("id")] = element_js_obj; - + // Need to provide selector for handle, not class. element.bind( "drag", { handle: "." + handle_class, relative: true }, function ( e, d ) { var element = $(this), @@ -48,12 +48,12 @@ var moveable = function(element, handle_class, container_selector, element_js_ob top, bottom, i; - + // - // Enable three types of dragging: (a) out of container; (b) into container; + // Enable three types of dragging: (a) out of container; (b) into container; // (c) sibling movement, aka sorting. Handle in this order for simplicity. // - + // Handle dragging out of container. container = $(this).parents(container_selector); if (container.length !== 0) { @@ -73,9 +73,9 @@ var moveable = function(element, handle_class, container_selector, element_js_ob cur_container.remove_drawable(this_obj); cur_container.container.add_drawable(this_obj); return; - } + } } - + // Handle dragging into container. Child is appended to container's content_div. container = null; for ( i = 0; i < children.length; i++ ) { @@ -83,7 +83,7 @@ var moveable = function(element, handle_class, container_selector, element_js_ob top = child.position().top; bottom = top + child.outerHeight(); // Dragging into container if child is a container and offset is inside container. - if ( child.is(container_selector) && this !== child.get(0) && + if ( child.is(container_selector) && this !== child.get(0) && d.offsetY >= top && d.offsetY <= bottom ) { // Append/prepend based on where offsetY is closest to and return. if (d.offsetY - top < bottom - d.offsetY) { @@ -94,7 +94,7 @@ var moveable = function(element, handle_class, container_selector, element_js_ob } // Update containers. Object may not have container if it is being moved quickly. if (this_obj.container) { - this_obj.container.remove_drawable(this_obj); + this_obj.container.remove_drawable(this_obj); } html_elt_js_obj_dict[child.attr("id")].add_drawable(this_obj); return; @@ -102,7 +102,7 @@ var moveable = function(element, handle_class, container_selector, element_js_ob } // Handle sibling movement, aka sorting. - + // Determine new position for ( i = 0; i < children.length; i++ ) { child = $(children.get(i)); @@ -112,9 +112,9 @@ var moveable = function(element, handle_class, container_selector, element_js_ob break; } } - - // If not already in the right place, move. Need - // to handle the end specially since we don't have + + // If not already in the right place, move. Need + // to handle the end specially since we don't have // insert at index if ( i === children.length ) { if ( this !== children.get(i - 1) ) { @@ -124,7 +124,7 @@ var moveable = function(element, handle_class, container_selector, element_js_ob } else if ( this !== children.get(i) ) { $(this).insertBefore( children.get(i) ); - // Need to adjust insert position if moving down because move is changing + // Need to adjust insert position if moving down because move is changing // indices of all list items. html_elt_js_obj_dict[parent.attr("id")].move_drawable(this_obj, (d.deltaY > 0 ? i-1 : i) ); } @@ -138,7 +138,7 @@ var moveable = function(element, handle_class, container_selector, element_js_ob /** * Init constants & functions used throughout trackster. */ -var +var // Padding at the top of tracks for error messages ERROR_PADDING = 20, // Maximum number of rows un a slotted track @@ -153,7 +153,7 @@ var DATA_ERROR = "Cannot display dataset due to an error. ", DATA_NOCONVERTER = "A converter for this dataset is not installed. Please check your datatypes_conf.xml file.", DATA_NONE = "No data for this chrom/contig.", - DATA_PENDING = "Preparing data. This can take a while for a large dataset. " + + DATA_PENDING = "Preparing data. This can take a while for a large dataset. " + "If the visualization is saved and closed, preparation will continue in the background.", DATA_CANNOT_RUN_TOOL = "Tool cannot be rerun: ", DATA_LOADING = "Loading data...", @@ -163,7 +163,7 @@ var // Numerical/continuous data display modes. CONTINUOUS_DATA_MODES = ["Histogram", "Line", "Filled", "Intensity"]; - + /** * Round a number to a given number of decimal places. */ @@ -172,7 +172,7 @@ function round(num, places) { if (!places) { places = 0; } - + var val = Math.pow(10, places); return Math.round(num * val) / val; } @@ -188,13 +188,13 @@ function round(num, places) { */ /** - * Base class for all drawable objects. Drawable objects are associated with a view and live in a + * Base class for all drawable objects. Drawable objects are associated with a view and live in a * container. They have the following HTML elements and structure: * * * * - * They optionally have a drag handle class. + * They optionally have a drag handle class. */ var Drawable = function(view, container, obj_dict) { if (!Drawable.id_counter) { Drawable.id_counter = 0; } @@ -204,11 +204,10 @@ var Drawable = function(view, container, obj_dict) { this.drag_handle_class = obj_dict.drag_handle_class; this.is_overview = false; this.action_icons = {}; - - // -- Set up drawable configuration. -- + // -- Set up drawable configuration. -- this.config = config_mod.ConfigSettingCollection.from_models_and_saved_values(this.config_params, obj_dict.prefs); - + // If there's no saved name, use object name. if (!this.config.get_value('name')) { this.config.set_value('name', obj_dict.name); @@ -216,19 +215,19 @@ var Drawable = function(view, container, obj_dict) { if (this.config_onchange) { this.config.on('change', this.config_onchange, this); } - + // Build Drawable HTML and behaviors. this.container_div = this.build_container_div(); this.header_div = null; - // Use opt-out policy on header creation because this is the more frequent approach: + // Use opt-out policy on header creation because this is the more frequent approach: // unless flag set, create header. if (obj_dict.header !== false) { var header_view = new viz_views.TrackHeaderView({ model: this, id: this.id }); - + this.header_div = header_view.$el; this.container_div.append(this.header_div); @@ -293,7 +292,7 @@ extend(Drawable.prototype, { ], config_onchange: function() {}, - + init: function() {}, changed: function() { @@ -304,7 +303,7 @@ extend(Drawable.prototype, { if (this.enabled && this.config.get_value('content_visible')) { return true; } - + return false; }, @@ -312,8 +311,8 @@ extend(Drawable.prototype, { _draw: function(options) {}, - /** - * Returns representation of object in a dictionary for easy saving. + /** + * Returns representation of object in a dictionary for easy saving. * Use from_dict to recreate object. */ to_dict: function() {}, @@ -340,7 +339,7 @@ extend(Drawable.prototype, { */ remove: function() { this.changed(); - + this.container.remove_drawable(this); var view = this.view; this.container_div.hide(0, function() { @@ -354,17 +353,17 @@ extend(Drawable.prototype, { * Build drawable's container div; this is the parent div for all drawable's elements. */ build_container_div: function() {}, - + /** * Update icons. */ update_icons: function() {}, - + /** * Hide drawable's contents. */ hide_contents: function () {}, - + /** * Show drawable's contents. */ @@ -381,7 +380,7 @@ extend(Drawable.prototype, { */ var DrawableCollection = function(view, container, obj_dict) { Drawable.call(this, view, container, obj_dict); - + // Attribute init. this.obj_type = obj_dict.obj_type; this.drawables = []; @@ -400,7 +399,7 @@ extend(DrawableCollection.prototype, Drawable.prototype, { this.add_drawable(drawable); } }, - + /** * Init each drawable in the collection. */ @@ -408,8 +407,8 @@ extend(DrawableCollection.prototype, Drawable.prototype, { for (var i = 0; i < this.drawables.length; i++) { this.drawables[i].init(); } - }, - + }, + /** * Draw each drawable in the collection. */ @@ -418,9 +417,9 @@ extend(DrawableCollection.prototype, Drawable.prototype, { this.drawables[i]._draw(options); } }, - - /** - * Returns representation of object in a dictionary for easy saving. + + /** + * Returns representation of object in a dictionary for easy saving. * Use from_dict to recreate object. */ to_dict: function() { @@ -434,7 +433,7 @@ extend(DrawableCollection.prototype, Drawable.prototype, { drawables: dictified_drawables }; }, - + /** * Add a drawable to the end of the collection. */ @@ -443,7 +442,7 @@ extend(DrawableCollection.prototype, Drawable.prototype, { drawable.container = this; this.changed(); }, - + /** * Add a drawable before another drawable. */ @@ -456,7 +455,7 @@ extend(DrawableCollection.prototype, Drawable.prototype, { } return false; }, - + /** * Replace one drawable with another. */ @@ -471,7 +470,7 @@ extend(DrawableCollection.prototype, Drawable.prototype, { } return index; }, - + /** * Remove drawable from this collection. */ @@ -482,11 +481,11 @@ extend(DrawableCollection.prototype, Drawable.prototype, { this.drawables.splice(index, 1); drawable.container = null; this.changed(); - return true; + return true; } return false; }, - + /** * Move drawable to another location in collection. */ @@ -537,18 +536,18 @@ extend(DrawableCollection.prototype, Drawable.prototype, { var DrawableGroup = function(view, container, obj_dict) { extend(obj_dict, { obj_type: "DrawableGroup", - drag_handle_class: "group-handle" + drag_handle_class: "group-handle" }); DrawableCollection.call(this, view, container, obj_dict); - + // Set up containers/moving for group: register both container_div and content div as container - // because both are used as containers (container div to recognize container, content_div to + // because both are used as containers (container div to recognize container, content_div to // store elements). Group can be moved. this.content_div = $("
").addClass("content-div").attr("id", "group_" + this.id + "_content_div").appendTo(this.container_div); is_container(this.container_div, this); is_container(this.content_div, this); moveable(this.container_div, this.drag_handle_class, ".group", this); - + // Set up filters. this.filters_manager = new filters_mod.FiltersManager(this); this.header_div.after(this.filters_manager.parent_div); @@ -558,19 +557,19 @@ var DrawableGroup = function(view, container, obj_dict) { // For saving drawables' filter managers when group-level filtering is done: this.saved_filters_managers = []; - + // Add drawables. if ('drawables' in obj_dict) { this.unpack_drawables(obj_dict.drawables); } - + // Restore filters. if ('filters' in obj_dict) { // FIXME: Pass collection_dict to DrawableCollection/Drawable will make this easier. var old_manager = this.filters_manager; this.filters_manager = new filters_mod.FiltersManager(this, obj_dict.filters); old_manager.parent_div.replaceWith(this.filters_manager.parent_div); - + if (obj_dict.filters.visible) { this.setup_multitrack_filtering(); } @@ -602,9 +601,9 @@ extend(DrawableGroup.prototype, Drawable.prototype, DrawableCollection.prototype // Hiding filters. group.filters_manager.clear_filters(); group._restore_filter_managers(); - // TODO: maintain current filter by restoring and setting saved manager's + // TODO: maintain current filter by restoring and setting saved manager's // settings to current/shared manager's settings. - // TODO: need to restore filter managers when moving drawable outside group. + // TODO: need to restore filter managers when moving drawable outside group. } else { // Showing filters. @@ -674,7 +673,7 @@ extend(DrawableGroup.prototype, Drawable.prototype, DrawableCollection.prototype num_feature_tracks++; } } - + if (same_type && this.drawables[0] instanceof LineTrack) { this.action_icons.composite_icon.show(); } @@ -692,14 +691,14 @@ extend(DrawableGroup.prototype, Drawable.prototype, DrawableCollection.prototype // var shared_filters = {}, filter; - + // Init shared filters with filters from first drawable. drawable = this.drawables[0]; for (j = 0; j < drawable.filters_manager.filters.length; j++) { filter = drawable.filters_manager.filters[j]; shared_filters[filter.name] = [filter]; } - + // Create lists of shared filters. for (i = 1; i < this.drawables.length; i++) { drawable = this.drawables[i]; @@ -710,13 +709,13 @@ extend(DrawableGroup.prototype, Drawable.prototype, DrawableCollection.prototype } } } - + // // Create filters for shared filters manager. Shared filters manager is group's // manager. // this.filters_manager.remove_all(); - var + var filters, new_filter, min, @@ -727,13 +726,13 @@ extend(DrawableGroup.prototype, Drawable.prototype, DrawableCollection.prototype // Add new filter. // FIXME: can filter.copy() be used? new_filter = new filters_mod.NumberFilter( { - name: filters[0].name, + name: filters[0].name, index: filters[0].index } ); this.filters_manager.add_filter(new_filter); } } - + // Show/hide icon based on filter availability. this.action_icons.filters_icon.toggle(this.filters_manager.filters.length > 0); } @@ -783,30 +782,30 @@ extend(DrawableGroup.prototype, Drawable.prototype, DrawableCollection.prototype var index = this.container.replace_drawable(this, composite_track, true); composite_track.request_draw(); }, - + add_drawable: function(drawable) { DrawableCollection.prototype.add_drawable.call(this, drawable); this.update_icons(); }, - + remove_drawable: function(drawable) { DrawableCollection.prototype.remove_drawable.call(this, drawable); this.update_icons(); }, - + to_dict: function() { - // If filters are visible, need to restore original filter managers before converting to dict. + // If filters are visible, need to restore original filter managers before converting to dict. if (this.filters_manager.visible()) { this._restore_filter_managers(); } var obj_dict = extend(DrawableCollection.prototype.to_dict.call(this), { "filters": this.filters_manager.to_dict() }); - + // Setup multi-track filtering again. if (this.filters_manager.visible()) { this.setup_multitrack_filtering(); } - + return obj_dict; }, @@ -860,7 +859,7 @@ var TracksterView = Backbone.View.extend({ render: function() { // Attribute init. this.requested_redraw = false; - + // Create DOM elements var parent_element = this.container, view = this; @@ -870,9 +869,9 @@ var TracksterView = Backbone.View.extend({ this.browser_content_div = $("
").addClass("content").appendTo(parent_element); // Bottom container for things that are fixed at the bottom this.bottom_container = $("
").addClass("bottom-container").appendTo(parent_element); - // Label track fixed at top - this.top_labeltrack = $("
").addClass("top-labeltrack").appendTo(this.top_container); - // Viewport for dragging tracks in center + // Label track fixed at top + this.top_labeltrack = $("
").addClass("top-labeltrack").appendTo(this.top_container); + // Viewport for dragging tracks in center this.viewport_container = $("
").addClass("viewport-container").attr("id", "viewport-container").appendTo(this.browser_content_div); // Alias viewport_container as content_div so that it matches function of DrawableCollection/Group content_div. this.content_div = this.viewport_container; @@ -882,7 +881,7 @@ var TracksterView = Backbone.View.extend({ var add_tracks_button = $("
").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function () { visualization.select_datasets(galaxy_config.root + "visualization/list_current_history_datasets", galaxy_config.root + "api/datasets", { 'f-dbkey': view.dbkey }, function(tracks) { _.each(tracks, function(track) { - view.add_drawable( object_from_template(track, view, view) ); + view.add_drawable( object_from_template(track, view, view) ); }); }); }); @@ -907,7 +906,7 @@ var TracksterView = Backbone.View.extend({ this.overview_box_background = $("
").addClass("overview-boxback").appendTo(this.overview_viewport); this.overview_box = $("
").addClass("overview-box").appendTo(this.overview_viewport); this.default_overview_height = this.overview_box.height(); - + this.nav_controls = $("
").addClass("nav-controls").appendTo(this.nav); this.chrom_select = $("").attr("type", "hidden").val(this.vis_id).appendTo(this.nav_controls); } - + this.zo_link = $("").attr("id", "zoom-out").attr("title", "Zoom out").tooltip( {placement: 'bottom'} ) .click(function() { view.zoom_out(); }).appendTo(this.nav_controls); this.zi_link = $("").attr("id", "zoom-in").attr("title", "Zoom in").tooltip( {placement: 'bottom'} ) - .click(function() { view.zoom_in(); }).appendTo(this.nav_controls); - + .click(function() { view.zoom_in(); }).appendTo(this.nav_controls); + // Get initial set of chroms. this.load_chroms_deferred = this.load_chroms({low: 0}); this.chrom_select.bind("change", function() { view.change_chrom(view.chrom_select.val()); }); - + /* this.browser_content_div.bind("mousewheel", function( e, delta ) { if (Math.abs(delta) < 0.5) { @@ -985,10 +984,10 @@ var TracksterView = Backbone.View.extend({ e.preventDefault(); }); */ - + // Blur tool/filter inputs when user clicks on content div. this.browser_content_div.click(function( e ) { - $(this).find("input").trigger("blur"); + $(this).find("input").trigger("blur"); }); // Double clicking zooms in @@ -1005,11 +1004,11 @@ var TracksterView = Backbone.View.extend({ var delta_chrom = Math.round(delta / view.viewport_container.width() * (view.max_high - view.max_low) ); view.move_delta(-delta_chrom); }); - + this.overview_close.click(function() { view.reset_overview(); }); - + // Dragging in the viewport scrolls this.viewport_container.bind( "draginit", function( e, d ) { // Disable interaction if started in scrollbar (for webkit) @@ -1031,7 +1030,7 @@ var TracksterView = Backbone.View.extend({ view.move_delta(delta_chrom); }); /* - FIXME: Do not do this for now because it's too jittery. Some kind of gravity approach is + FIXME: Do not do this for now because it's too jittery. Some kind of gravity approach is needed here because moving left/right should be difficult. // Also capture mouse wheel for left/right scrolling @@ -1044,7 +1043,7 @@ var TracksterView = Backbone.View.extend({ } }); */ - + // Dragging in the top label track allows selecting a region to zoom in on selected region. this.top_labeltrack.bind( "dragstart", function( e, d ) { return $("
").addClass('zoom-area').css( @@ -1056,7 +1055,7 @@ var TracksterView = Backbone.View.extend({ max = Math.max(e.pageX, d.startX ) - view.container.offset().left, span = (view.high - view.low), width = view.viewport_container.width(); - view.update_location( Math.round(min / width * span) + view.low, + view.update_location( Math.round(min / width * span) + view.low, Math.round(max / width * span) + view.low ); }).bind( "dragend", function( e, d ) { var min = Math.min(e.pageX, d.startX), @@ -1092,28 +1091,28 @@ var TracksterView = Backbone.View.extend({ } ); */ - + this.add_label_track( new LabelTrack( this, { content_div: this.top_labeltrack } ) ); - + $(window).bind("resize", function() { // Stop previous timer. if (this.resize_timer) { clearTimeout(this.resize_timer); } - + // When function activated, resize window and redraw. this.resize_timer = setTimeout(function () { view.resize_window(); }, 500 ); }); $(document).bind("redraw", function() { view.redraw(); }); - + this.reset(); $(window).trigger("resize"); }, get_base_color: function(base) { - return this.config.get_value(base.toLowerCase() + '_color') || + return this.config.get_value(base.toLowerCase() + '_color') || this.config.get_value('n_color'); } @@ -1123,7 +1122,7 @@ var TracksterView = Backbone.View.extend({ extend( TracksterView.prototype, DrawableCollection.prototype, { changed: function() { - this.has_changes = true; + this.has_changes = true; }, /** Add or remove intro div depending on view state. */ @@ -1140,7 +1139,7 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { if (this.timer) { clearTimeout(this.timer); } - + if (delay) { // To aggregate calls, use timer and only navigate once // location has stabilized. @@ -1157,8 +1156,8 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { update_location: function(low, high) { this.location_span.text( commatize(low) + ' - ' + commatize(high) ); this.nav_input.val( this.chrom + ':' + commatize(low) + '-' + commatize(high) ); - - // Update location. Only update when there is a valid chrom; when loading vis, there may + + // Update location. Only update when there is a valid chrom; when loading vis, there may // not be a valid chrom. var chrom = this.chrom_select.val(); if (chrom !== "") { @@ -1185,7 +1184,7 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { if (result.chrom_info.length === 0) { return; } - + // Load chroms. if (result.reference) { var ref_track = new ReferenceTrack(view); @@ -1206,7 +1205,7 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { } view.chrom_select.html(chrom_options); view.chrom_start_index = result.start_index; - + chrom_data.resolve(result.chrom_info); }, error: function() { @@ -1215,7 +1214,7 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { }); return chrom_data; }, - + change_chrom: function(chrom, low, high) { var view = this; // If chrom data is still loading, wait for it. @@ -1225,12 +1224,12 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { }); return; } - + // Don't do anything if chrom is "None" (hackish but some browsers already have this set), or null/blank if (!chrom || chrom === "None") { return; } - + // // If user is navigating to previous/next set of chroms, load new chrom set and return. // @@ -1242,7 +1241,7 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { view.load_chroms({low: this.chrom_start_index + MAX_CHROMS_SELECTABLE}); return; } - + // // User is loading a particular chrom. Look first in current set; if not in current set, load new // chrom set. @@ -1262,7 +1261,7 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { view.chrom_select.val(view.chrom); view.max_high = found.len-1; // -1 because we're using 0-based indexing. view.reset(); - + for (var i = 0, len = view.drawables.length; i < len; i++) { var drawable = view.drawables[i]; if (drawable.init) { @@ -1403,9 +1402,9 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { DrawableCollection.prototype.remove_drawable.call(this, drawable); if (hide) { var view = this; - drawable.container_div.hide(0, function() { + drawable.container_div.hide(0, function() { $(this).remove(); - view.update_intro_div(); + view.update_intro_div(); }); } }, @@ -1455,13 +1454,13 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { */ _redraw: function() { // TODO: move this code to function that does location setting. - + // Clear because requested redraw is being handled now. this.requested_redraw = false; - + var low = this.low, high = this.high; - + if (low < this.max_low) { low = this.max_low; } @@ -1474,19 +1473,19 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { } this.low = Math.floor(low); this.high = Math.ceil(high); - + this.update_location(this.low, this.high); - + // -- Drawing code -- - + // Resolution is a pixel density. this.resolution_px_b = this.viewport_container.width() / (this.high - this.low); - + // Overview var left_px = ( this.low / (this.max_high - this.max_low) * this.overview_viewport.width() ) || 0; var width_px = ( (this.high - this.low)/(this.max_high - this.max_low) * this.overview_viewport.width() ) || 0; var min_width_px = 13; - + this.overview_box.css({ left: left_px, width: Math.max(min_width_px, width_px) }).show(); if (width_px < min_width_px) { this.overview_box.css("left", left_px - (min_width_px - width_px)/2); @@ -1494,7 +1493,7 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { if (this.overview_highlight) { this.overview_highlight.css({ left: left_px, width: width_px }); } - + // Draw data tracks. _.each(this.tracks_to_be_redrawn, function(track_options) { var track = track_options[0], @@ -1562,9 +1561,9 @@ extend( TracksterView.prototype, DrawableCollection.prototype, { } this.overview_viewport.find(".track").remove(); } - + // Set new overview. - var + var overview_drawable = drawable.copy( { content_div: this.overview_viewport } ), view = this; overview_drawable.header_div.hide(); @@ -1642,7 +1641,7 @@ var TracksterTool = tools_mod.Tool.extend({ var html_div = $("
").addClass("param-input").html(param.get('html')).appendTo(param_div); // Set initial value. html_div.find(":input").val(param.get('value')); - + // Add to clear floating layout. $("
").appendTo(param_div); }, @@ -1689,7 +1688,7 @@ var TracksterToolView = Backbone.View.extend({ // Highlight value for inputs for easy replacement. parent_div.find("input").click(function() { $(this).select(); }); - + // Add buttons for running on dataset, region. var run_tool_row = $("
").addClass("param-row").appendTo(parent_div); var run_on_dataset_button = $("").attr("value", "Run on complete dataset").appendTo(run_tool_row); @@ -1701,7 +1700,7 @@ var TracksterToolView = Backbone.View.extend({ run_on_dataset_button.click( function() { self.run_on_dataset(); }); - + if (tool.is_visible()) { this.$el.show(); } @@ -1730,7 +1729,7 @@ var TracksterToolView = Backbone.View.extend({ var tool = this.model; this.run( // URL params. - { + { target_dataset_id: this.model.get('track').dataset.id, action: 'rerun', tool_id: tool.id @@ -1758,8 +1757,8 @@ var TracksterToolView = Backbone.View.extend({ start: track.view.low, end: track.view.high }), - url_params = - { + url_params = + { target_dataset_id: track.dataset.id, action: 'rerun', tool_id: tool.id, @@ -1772,16 +1771,16 @@ var TracksterToolView = Backbone.View.extend({ track_name = tool.get('name') + current_track.tool_region_and_parameters_str(region), container; - - // If track not in a group, create a group for it and add new track to group. If track + + // If track not in a group, create a group for it and add new track to group. If track // already in group, add track to group. if (current_track.container === view) { // Create new group. var group = new DrawableGroup(view, view, { name: track.config.get_value('name') }); - + // Replace track with group. var index = current_track.container.replace_drawable(current_track, group, false); - + // Update HTML. // FIXME: this is ugly way to replace a track with a group -- make this easier via // a Drawable or DrawableCollection function. @@ -1794,7 +1793,7 @@ var TracksterToolView = Backbone.View.extend({ // Use current group. container = current_track.container; } - + // Create and init new track. var new_track = new current_track.constructor(view, container, { name: track_name, @@ -1806,7 +1805,7 @@ var TracksterToolView = Backbone.View.extend({ new_track.update_icons(); container.add_drawable(new_track); new_track.tiles_div.text("Starting job."); - + // Run tool. this.run(url_params, new_track, // Success callback. @@ -1837,11 +1836,11 @@ var TracksterToolView = Backbone.View.extend({ return response !== "pending"; } }); - + // Start with this status message. //new_track.container_div.addClass("pending"); //new_track.content_div.html(DATA_PENDING); - + $.when(ss_deferred.go()).then(function(response) { if (response === "no converter") { // No converter available for input datasets, so cannot run tool. @@ -1856,7 +1855,7 @@ var TracksterToolView = Backbone.View.extend({ else { // Job submitted and running. success_callback(response); - } + } }); } @@ -1875,7 +1874,7 @@ FilterScaler.prototype.gen_val = function(feature_data) { if (this.filter.high === Number.MAX_VALUE || this.filter.low === -Number.MAX_VALUE || this.filter.low === this.filter.high) { return this.default_val; } - + // Scaling value is ratio of (filter's value compared to low) to (complete filter range). return ( ( parseFloat(feature_data[this.filter.index]) - this.filter.low ) / ( this.filter.high - this.filter.low ) ); }; @@ -1906,7 +1905,7 @@ var LineTrackTile = function(track, region, w_scale, canvas, data) { }; LineTrackTile.prototype.predisplay_actions = function() {}; -var FeatureTrackTile = function(track, region, w_scale, canvas, data, mode, message, all_slotted, +var FeatureTrackTile = function(track, region, w_scale, canvas, data, mode, message, all_slotted, feature_mapper, incomplete_features, seq_data) { // Attribute init. Tile.call(this, track, region, w_scale, canvas, data); @@ -1918,21 +1917,21 @@ var FeatureTrackTile = function(track, region, w_scale, canvas, data, mode, mess // Features drawn based on data from other tiles. this.other_tiles_features_drawn = {}; this.seq_data = seq_data; - + // Add message + action icons to tile's html. /* - This does not work right now because a random set of reads is returned by the server. + This does not work right now because a random set of reads is returned by the server. When the server can respond with more data systematically, renable these icons. if (message) { this.has_icons = true; - - var + + var tile = this; canvas = this.html_elt.children()[0], message_div = $("
").addClass("tile-message") // -1 to account for border. .css({'height': ERROR_PADDING, 'width': canvas.width}).prependTo(this.html_elt); - + // Handle message; only message currently is that only the first N elements are displayed. var tile_region = new visualization.GenomeRegion({ chrom: track.view.chrom, @@ -1985,24 +1984,24 @@ FeatureTrackTile.prototype.predisplay_actions = function() { // var tile = this, popups = {}; - + // Only show popups in Pack mode. if (tile.mode !== "Pack") { return; } - + $(this.html_elt).hover( function() { - this.hovered = true; + this.hovered = true; $(this).mousemove(); }, function() { - this.hovered = false; - // Clear popup if it is still hanging around (this is probably not needed) + this.hovered = false; + // Clear popup if it is still hanging around (this is probably not needed) $(this).parents(".track-content").children(".overlay").children(".feature-popup").remove(); } ).mousemove(function (e) { // Use the hover plugin to get a delay before showing popup if ( !this.hovered ) { return; } // Get feature data for position. - var + var this_offset = $(this).offset(), offsetX = e.pageX - this_offset.left, offsetY = e.pageY - this_offset.top, @@ -2010,17 +2009,17 @@ FeatureTrackTile.prototype.predisplay_actions = function() { feature_uid = (feature_data ? feature_data[0] : null); // Hide visible popup if not over a feature or over a different feature. $(this).parents(".track-content").children(".overlay").children(".feature-popup").each(function() { - if ( !feature_uid || + if ( !feature_uid || $(this).attr("id") !== feature_uid.toString() ) { $(this).remove(); } }); - + if (feature_data) { // Get or create popup. var popup = popups[feature_uid]; if (!popup) { - // Create feature's popup element. + // Create feature's popup element. var feature_dict = { name: feature_data[3], start: feature_data[1], @@ -2029,13 +2028,13 @@ FeatureTrackTile.prototype.predisplay_actions = function() { }, filters = tile.track.filters_manager.filters, filter; - - // Add filter values to feature dict. + + // Add filter values to feature dict. for (var i = 0; i < filters.length; i++) { filter = filters[i]; feature_dict[filter.name] = feature_data[filter.index]; } - + // Build popup. popup = $("
").attr("id", feature_uid).addClass("feature-popup"); var table = $(""), @@ -2047,23 +2046,23 @@ FeatureTrackTile.prototype.predisplay_actions = function() { $("
").attr("align", "left").appendTo(row) .text(typeof(value) === 'number' ? round(value, 2) : value); } - popup.append( $("
").append( table ) ); + popup.append( $("
").append( table ) ); popups[feature_uid] = popup; } - + // Attach popup to track's overlay. popup.appendTo( $(this).parents(".track-content").children(".overlay") ); - + // Offsets are within canvas, but popup must be positioned relative to parent element. // parseInt strips "px" from left, top measurements. +7 so that mouse pointer does not // overlap popup. - var + var popupX = offsetX + parseInt( tile.html_elt.css("left"), 10 ) - popup.width() / 2, popupY = offsetY + parseInt( tile.html_elt.css("top"), 10 ) + 7; popup.css("left", popupX + "px").css("top", popupY + "px"); } else if (!e.isPropagationStopped()) { - // Propogate event to other tiles because overlapping tiles prevent mousemove from being + // Propogate event to other tiles because overlapping tiles prevent mousemove from being // called on tiles under this tile. e.stopPropagation(); $(this).siblings().each(function() { @@ -2078,11 +2077,11 @@ FeatureTrackTile.prototype.predisplay_actions = function() { }; /** - * Tracks are objects can be added to the View. - * + * Tracks are objects can be added to the View. + * * Track object hierarchy: * Track - * -> LabelTrack + * -> LabelTrack * -> TiledTrack * ----> LineTrack * ----> ReferenceTrack @@ -2096,7 +2095,7 @@ var Track = function(view, container, obj_dict) { drag_handle_class: "draghandle" }); Drawable.call(this, view, container, obj_dict); - + // // Attribute init. // @@ -2126,12 +2125,12 @@ var Track = function(view, container, obj_dict) { data_mode_compatible: this.data_and_mode_compatible, can_subset: this.can_subset })); - + // Height attributes: min height, max height, and visible height. this.min_height_px = 16; this.max_height_px = 800; this.visible_height_px = this.config.get_value('height'); - + // // Create content div, which is where track is displayed, and add to container if available. // @@ -2174,7 +2173,7 @@ extend(Track.prototype, Drawable.prototype, { on_click_fn: function(drawable) { // TODO: update Tooltip text. if (drawable.filters_manager.visible()) { - drawable.filters_manager.clear_filters(); + drawable.filters_manager.clear_filters(); } else { drawable.filters_manager.init_filters(); @@ -2247,7 +2246,7 @@ extend(Track.prototype, Drawable.prototype, { Galaxy.modal.hide(); // Go to visualization. - window.location.href = + window.location.href = galaxy_config.root + "visualization/sweepster" + "?" + $.param({ dataset_id: track.dataset.id, @@ -2262,7 +2261,7 @@ extend(Track.prototype, Drawable.prototype, { ok_fn(); } }; - + // show dialog Galaxy.modal.show({title: "Visualize tool parameter space and output from different parameter settings?", body: html, buttons : {'No' : cancel_fn, 'Yes' : ok_fn } }); } @@ -2279,7 +2278,7 @@ extend(Track.prototype, Drawable.prototype, { return $("
").addClass('track').attr("id", "track_" + this.id); }, - /** + /** * Set track's dataset. */ set_dataset: function(dataset) { @@ -2303,12 +2302,12 @@ extend(Track.prototype, Drawable.prototype, { var in_drag = false; var drag_control = $( "
" ); // Control shows on hover over track, stays while dragging - $(track.container_div).hover( function() { + $(track.container_div).hover( function() { if ( track.config.get_value('content_visible') ) { in_handle = true; - drag_control.show(); + drag_control.show(); } - }, function() { + }, function() { in_handle = false; if ( ! in_drag ) { drag_control.hide(); } }); @@ -2350,8 +2349,8 @@ extend(Track.prototype, Drawable.prototype, { this.request_draw(); }, - /** - * Returns track type. + /** + * Returns track type. */ get_type: function() { // Order is important: start with most-specific classes and go up the track hierarchy. @@ -2396,7 +2395,7 @@ extend(Track.prototype, Drawable.prototype, { var track = this; track.enabled = false; - track.tile_cache.clear(); + track.tile_cache.clear(); track.data_manager.clear(); /* if (!track.content_div.text()) { @@ -2416,12 +2415,12 @@ extend(Track.prototype, Drawable.prototype, { if (!track.dataset.id) { return; } - - // Get dataset state; if state is fine, enable and draw track. Otherwise, show message + + // Get dataset state; if state is fine, enable and draw track. Otherwise, show message // about track status. var init_deferred = $.Deferred(), - params = { - hda_ldda: track.dataset.get('hda_ldda'), + params = { + hda_ldda: track.dataset.get('hda_ldda'), data_type: this.dataset_check_type, chrom: track.view.chrom, retry: retry @@ -2445,21 +2444,21 @@ extend(Track.prototype, Drawable.prototype, { }) ); } - } + } else if (result === "no converter") { track.container_div.addClass("error"); track.show_message(DATA_NOCONVERTER); - } + } else if (result === "no data" || (result.data !== undefined && (result.data === null || result.data.length === 0))) { track.container_div.addClass("nodata"); track.show_message(DATA_NONE); - } + } else if (result === "pending") { track.container_div.addClass("pending"); track.show_message(DATA_PENDING); //$("").attr("src", image_path + "/yui/rel_interstitial_loading.gif").appendTo(track.tiles_div); setTimeout(function() { track.init(); }, track.data_query_wait); - } + } else if (result === "data" || result.status === "data") { if (result.valid_chroms) { track.valid_chroms = result.valid_chroms; @@ -2482,7 +2481,7 @@ extend(Track.prototype, Drawable.prototype, { } } }); - + this.update_icons(); return init_deferred; }, @@ -2492,11 +2491,11 @@ extend(Track.prototype, Drawable.prototype, { */ predraw_init: function() { var track = this; - return $.getJSON( track.dataset.url(), - { data_type: 'data', stats: true, chrom: track.view.chrom, low: 0, + return $.getJSON( track.dataset.url(), + { data_type: 'data', stats: true, chrom: track.view.chrom, low: 0, high: track.view.max_high, hda_ldda: track.dataset.get('hda_ldda') }, function(result) { var data = result.data; - + // Tracks may not have stat data either because there is no data or data is not yet ready. if (data !== undefined && data.min !== undefined && data.max !== undefined) { // Compute default minimum and maximum values @@ -2523,14 +2522,14 @@ extend(Track.prototype, Drawable.prototype, { } }); -var TiledTrack = function(view, container, obj_dict) { +var TiledTrack = function(view, container, obj_dict) { Track.call(this, view, container, obj_dict); var track = this; - + // Make track moveable. moveable(track.container_div, track.drag_handle_class, ".group", track); - + // Attribute init. this.filters_manager = new filters_mod.FiltersManager(this, ('filters' in obj_dict ? obj_dict.filters : null)); // HACK: set filters manager for data manager. @@ -2544,13 +2543,13 @@ var TiledTrack = function(view, container, obj_dict) { : null); this.tile_cache = new visualization.Cache(TILE_CACHE_SIZE); this.left_offset = 0; - + if (this.header_div) { // // Setup filters. // this.set_filters_manager(this.filters_manager); - + // // Create dynamic tool view. // @@ -2561,14 +2560,14 @@ var TiledTrack = function(view, container, obj_dict) { this.header_div.after(this.dynamic_tool_div); } } - + // Add tiles_div, overlay_div to content_div. this.tiles_div = $("
").addClass("tiles").appendTo(this.content_div); if (!this.config.get_value('content_visible')) { this.tiles_div.hide(); } this.overlay_div = $("
").addClass("overlay").appendTo(this.content_div); - + if (obj_dict.mode) { this.change_mode(obj_dict.mode); } @@ -2614,8 +2613,8 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { this.header_div.after(this.filters_manager.parent_div); }, - /** - * Returns representation of object in a dictionary for easy saving. + /** + * Returns representation of object in a dictionary for easy saving. * Use from_dict to recreate object. */ to_dict: function() { @@ -2638,9 +2637,9 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { set_min_max: function() { var track = this; - return $.getJSON( track.dataset.url(), - { data_type: 'data', stats: true, chrom: track.view.chrom, low: 0, - high: track.view.max_high, hda_ldda: track.dataset.get('hda_ldda') }, + return $.getJSON( track.dataset.url(), + { data_type: 'data', stats: true, chrom: track.view.chrom, low: 0, + high: track.view.max_high, hda_ldda: track.dataset.get('hda_ldda') }, function(result) { var data = result.data; if ( isNaN(parseFloat(track.config.get_value('min_value'))) || @@ -2681,12 +2680,12 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { */ update_icons: function() { var track = this; - + // // Show/hide filter icon. // track.action_icons.filters_icon.toggle(track.filters_available); - + // // Show/hide tool icons. // @@ -2747,22 +2746,22 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { w_scale = width / (view.max_high - view.max_low); resolution = 1 / w_scale; } - + this.before_draw(); // // Method for moving and/or removing tiles: // (a) mark all elements for removal using class 'remove' - // (b) during tile drawing/placement, remove class for elements that are moved; + // (b) during tile drawing/placement, remove class for elements that are moved; // this occurs in show_tile() - // (c) after drawing tiles, remove elements still marked for removal + // (c) after drawing tiles, remove elements still marked for removal // (i.e. that still have class 'remove'). // - + // Step (a) for (re)moving tiles. this.tiles_div.children().addClass("remove"); - var + var // Tile width in bases. tile_width = Math.floor(TILE_SIZE * resolution), // Index of first tile that overlaps visible region. @@ -2789,10 +2788,10 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { // Go to next tile. tile_index += 1; } - + // Step (c) for (re)moving tiles when clear_after is false. if (!clear_after) { this.tiles_div.children(".remove").removeClass("remove").remove(); } - + // When all tiles are drawn, call post-draw actions. var track = this; $.when.apply($, tile_promises).then(function() { @@ -2822,9 +2821,9 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { label = this.container_div.find(".yaxislabel." + css_class); // Default action for on_change is to redraw track. - on_change = on_change || function() { + on_change = on_change || function() { track.request_draw({ clear_tile_cache: true }); - }; + }; if (label.length !== 0) { // Label already exists, so update value. @@ -2846,7 +2845,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { }, /** - * Actions to be taken after draw has been completed. Draw is completed when all tiles have been + * Actions to be taken after draw has been completed. Draw is completed when all tiles have been * drawn/fetched and shown. */ postdraw_actions: function(tiles, width, w_scale, clear_after) { @@ -2882,7 +2881,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { // // If some tiles have icons, set padding of tiles without icons so features and rows align. // - var icons_present = _.find(tiles, function(tile) { + var icons_present = _.find(tiles, function(tile) { return tile.has_icons; }); @@ -2919,7 +2918,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { }, /** - * Retrieves from cache, draws, or sets up drawing for a single tile. Returns either a Tile object or a + * Retrieves from cache, draws, or sets up drawing for a single tile. Returns either a Tile object or a * jQuery.Deferred object that is fulfilled when tile can be drawn again. Options include: * -force: force a redraw rather than use cached tiles (default: false) * -data_fetch: fetch data if necessary (default: true) @@ -2937,7 +2936,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { drawables = this._get_drawables(), key = this._gen_tile_cache_key(w_scale, region), is_tile = function(o) { return (o && 'track' in o); }; - + // Check tile cache, if found show existing tile in correct position var tile = (force ? undefined : track.tile_cache.get_elt(key)); if (tile) { @@ -2968,7 +2967,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { return tile_data; }; - + // // When data is available, draw tile. // @@ -2979,9 +2978,9 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { tracks_data = tile_data, seq_data; - // Deferreds may show up here if trying to fetch a subset of data from a superset data chunk - // that cannot be subsetted. This may occur if the superset has a message. If there is a - // Deferred, try again from the top. NOTE: this condition could (should?) be handled by the + // Deferreds may show up here if trying to fetch a subset of data from a superset data chunk + // that cannot be subsetted. This may occur if the superset has a message. If there is a + // Deferred, try again from the top. NOTE: this condition could (should?) be handled by the // GenomeDataManager in visualization module. if (_.find(tile_data, function(d) { return util.is_deferred(d); })) { track.tile_cache.set_elt(key, undefined); @@ -2990,12 +2989,12 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { }); return; } - + // If sequence data is available, subset to get only data in region. if (view.reference_track) { seq_data = view.reference_track.data_manager.subset_entry(tile_data.pop(), region); } - + // Get drawing modes, heights for all tracks. var drawing_modes = [], drawing_heights = []; @@ -3018,7 +3017,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { width = Math.ceil( (tile_high - tile_low) * w_scale ) + track.left_offset, height = _.max(drawing_heights), tile; - + // // Draw all tracks on tile. // @@ -3062,7 +3061,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { var canvas = ctx.canvas, painter = new painters.LinePainter(result.data, region.get('start'), region.get('end'), this.config.to_key_value_dict(), mode); painter.draw(ctx, canvas.width, canvas.height, w_scale); - + return new LineTrackTile(this, region, w_scale, canvas, result.data); }, @@ -3084,11 +3083,11 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { show_tile: function(tile, w_scale) { var track = this, tile_element = tile.html_elt; - + // -- Show/move tile element. -- - + tile.predisplay_actions(); - + // Position tile element based on current viewport. var left = Math.round( ( tile.low - (this.is_overview? this.view.max_low : this.view.low) ) * w_scale ); if (this.left_offset) { @@ -3109,15 +3108,15 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { // -- Update track, tile heights based on new tile. -- tile_element.css('height', 'auto'); - + // Update max height based on current tile's height. - // BUG/HACK: tile_element.height() returns a height that is always 2 pixels too big, so + // BUG/HACK: tile_element.height() returns a height that is always 2 pixels too big, so // -2 to get the correct height. this.max_height_px = Math.max(this.max_height_px, tile_element.height() - 2); // Update height for all tiles based on max height. tile_element.parent().children().css("height", this.max_height_px + "px"); - + // Update track height based on max height and visible height. var track_height = this.max_height_px; if (this.visible_height_px !== 0) { @@ -3149,7 +3148,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { return data.dataset_type === "bigwig"; } // All other modes--Dense, Squish, Pack--require data + details. - else if (data.dataset_type === "bigwig" || + else if (data.dataset_type === "bigwig" || data.extra_info === "no_detail") { return false; } @@ -3173,7 +3172,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { return true; }, - + /** * Set up track to receive tool data. */ @@ -3182,7 +3181,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { this.data_manager.set('data_type', 'raw_data'); this.data_query_wait = 1000; this.dataset_check_type = 'state'; - + // FIXME: this is optional and is disabled for now because it creates // additional converter jobs without a clear benefit because indexing // such a small dataset provides little benefit. @@ -3193,12 +3192,12 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { this.normal_postdraw_actions = this.postdraw_actions; this.postdraw_actions = function(tiles, width, w_scale, clear_after) { var self = this; - + // Do normal postdraw init. self.normal_postdraw_actions(tiles, width, w_scale, clear_after); - + // Tool-execution specific post-draw init: - + // Reset dataset check, wait time. self.dataset_check_type = 'converted_datasets_state'; self.data_query_wait = DEFAULT_DATA_QUERY_WAIT; @@ -3215,7 +3214,7 @@ extend(TiledTrack.prototype, Drawable.prototype, Track.prototype, { // Dataset is indexed, so use converted data. self.data_manager.set('data_type', 'data'); }); - + // Reset post-draw actions function. self.postdraw_actions = self.normal_postdraw_actions; }; @@ -3233,7 +3232,7 @@ var LabelTrack = function (view, container) { extend(LabelTrack.prototype, Track.prototype, { init: function() { // Enable by default because there should always be data when drawing track. - this.enabled = true; + this.enabled = true; }, /** @@ -3265,13 +3264,13 @@ extend(LabelTrack.prototype, Track.prototype, { // are created for each type of composite track. /** - * A tiled track composed of multiple other tracks. Composite tracks only work with + * A tiled track composed of multiple other tracks. Composite tracks only work with * bigwig data for now. */ var CompositeTrack = function(view, container, obj_dict) { TiledTrack.call(this, view, container, obj_dict); - - // Init drawables; each drawable is a copy so that config/preferences + + // Init drawables; each drawable is a copy so that config/preferences // are independent of each other. Also init left offset. this.drawables = []; if ('drawables' in obj_dict) { @@ -3279,7 +3278,7 @@ var CompositeTrack = function(view, container, obj_dict) { for (var i = 0; i < obj_dict.drawables.length; i++) { drawable = obj_dict.drawables[i]; this.drawables[i] = object_from_template(drawable, view, null); - + // Track's left offset is the max of all tracks. if (drawable.left_offset > this.left_offset) { this.left_offset = drawable.left_offset; @@ -3294,9 +3293,9 @@ var CompositeTrack = function(view, container, obj_dict) { d.change_mode("Coverage"); } }); - + this.update_icons(); - + // HACK: needed for saving object for now. Need to generalize get_type() to all Drawables and use // that for object type. this.obj_type = "CompositeTrack"; @@ -3325,10 +3324,10 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { } } ].concat(TiledTrack.prototype.action_icons_def), - + // HACK: CompositeTrack should inherit from DrawableCollection as well. - /** - * Returns representation of object in a dictionary for easy saving. + /** + * Returns representation of object in a dictionary for easy saving. * Use from_dict to recreate object. */ to_dict: DrawableCollection.prototype.to_dict, @@ -3373,7 +3372,7 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { for (var i = 0; i < this.drawables.length; i++) { init_deferreds.push(this.drawables[i].init()); } - + // Draw composite when all tracks available. var track = this; $.when.apply($, init_deferreds).then(function() { @@ -3385,7 +3384,7 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { update_icons: function() { // For now, hide filters and tool. this.action_icons.filters_icon.hide(); - this.action_icons.tools_icon.hide(); + this.action_icons.tools_icon.hide(); this.action_icons.param_space_viz_icon.hide(); }, @@ -3411,7 +3410,7 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { track.container = group; group.content_div.append(track.container_div); } - + // Replace track with group. var index = this.container.replace_drawable(this, group, true); group.request_draw({ clear_tile_cache: true }); @@ -3427,14 +3426,14 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { // // Set min, max for tracks to be largest min, max. // - + // Get smallest min, biggest max. var min = _.min(_.map(this.drawables, function(d) { return d.config.get_value('min_value'); })), max = _.max(_.map(this.drawables, function(d) { return d.config.get_value('max_value'); })); - + this.config.set_value('min_value', min); this.config.set_value('max_value', max); - + // Set all tracks to smallest min, biggest max. _.each(this.drawables, function(d) { d.config.set_value('min_value', min); @@ -3457,7 +3456,7 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { }, /** - * Actions to be taken after draw has been completed. Draw is completed when all tiles have been + * Actions to be taken after draw has been completed. Draw is completed when all tiles have been * drawn/fetched and shown. */ postdraw_actions: function(tiles, width, w_scale, clear_after) { @@ -3469,7 +3468,7 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { max_height = height; } } - + for (i = 0; i < tiles.length; i++) { var tile = tiles[i]; if (tile.html_elt.find("canvas").height() !== max_height) { @@ -3479,7 +3478,7 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { } // Wrap function so that it can be called without object reference. - var track = this, + var track = this, t = function() { track.update_all_min_max(); }; // Add min, max labels. @@ -3489,11 +3488,11 @@ extend(CompositeTrack.prototype, TiledTrack.prototype, { }); /** - * Displays reference genome data. + * Displays reference genome data. */ var ReferenceTrack = function (view) { TiledTrack.call(this, view, { content_div: view.top_labeltrack }, { resize: false, header: false }); - + // Use offset to ensure that bases at tile edges are drawn. this.left_offset = view.canvas_manager.char_width_px; this.container_div.addClass("reference-track"); @@ -3541,7 +3540,7 @@ extend(ReferenceTrack.prototype, Drawable.prototype, TiledTrack.prototype, { } // NOTE: viewport resizing conceptually belongs in postdraw_actions(), but currently - // postdraw_actions is not called when reference track not shown due to no tiles. If + // postdraw_actions is not called when reference track not shown due to no tiles. If // it is moved to postdraw_actions, resize must be called each time because cannot // easily detect showing/hiding. @@ -3562,7 +3561,7 @@ extend(ReferenceTrack.prototype, Drawable.prototype, TiledTrack.prototype, { // Try to subset data. var subset = this.data_manager.subset_entry(data, region), seq_data = subset.data; - + // Draw sequence data. var canvas = ctx.canvas; ctx.font = ctx.canvas.manager.default_font; @@ -3592,12 +3591,12 @@ extend(LineTrack.prototype, Drawable.prototype, TiledTrack.prototype, { { key: 'mode', type: 'string', default_value: this.mode, hidden: true }, { key: 'height', type: 'int', default_value: 30, hidden: true } ] ), - + config_onchange: function() { this.set_name(this.config.get_value('name')); this.request_draw({ clear_tile_cache: true }); }, - + /** * Actions to be taken before drawing. */ @@ -3614,7 +3613,7 @@ extend(LineTrack.prototype, Drawable.prototype, TiledTrack.prototype, { /** * Subset data only if data is at single-base pair resolution. */ - can_subset: function(entry) { + can_subset: function(entry) { return (entry.data[1][0] - entry.data[0][0] === 1); }, @@ -3642,8 +3641,8 @@ extend(DiagonalHeatmapTrack.prototype, Drawable.prototype, TiledTrack.prototype, config_params: _.union( Drawable.prototype.config_params, [ { key: 'pos_color', label: 'Positive Color', type: 'color', default_value: "#FF8C00" }, { key: 'neg_color', label: 'Negative Color', type: 'color', default_value: "#4169E1" }, - { key: 'min_value', label: 'Min Value', type: 'float', default_value: -1 }, - { key: 'max_value', label: 'Max Value', type: 'float', default_value: 1 }, + { key: 'min_value', label: 'Min Value', type: 'int', default_value: undefined }, + { key: 'max_value', label: 'Max Value', type: 'int', default_value: undefined }, { key: 'mode', type: 'string', default_value: this.mode, hidden: true }, { key: 'height', type: 'int', default_value: 500, hidden: true } ] ), @@ -3653,6 +3652,18 @@ extend(DiagonalHeatmapTrack.prototype, Drawable.prototype, TiledTrack.prototype, this.request_draw({ clear_tile_cache: true }); }, + /** + * Additional initialization required before drawing track for the first time. + */ + predraw_init: function() { + var track = this; + return $.getJSON( track.dataset.url(), + { data_type: 'data', stats: true, chrom: track.view.chrom, low: 0, + high: track.view.max_high, hda_ldda: track.dataset.get('hda_ldda') }, function(result) { + var data = result.data; + }); + }, + /** * Draw tile. */ @@ -3661,7 +3672,7 @@ extend(DiagonalHeatmapTrack.prototype, Drawable.prototype, TiledTrack.prototype, var canvas = ctx.canvas, painter = new painters.DiagonalHeatmapPainter(result.data, region.get('start'), region.get('end'), this.config.to_key_value_dict(), mode); painter.draw(ctx, canvas.width, canvas.height, w_scale); - + return new Tile(this, region, w_scale, canvas, result.data); } }); @@ -3687,7 +3698,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { { key: 'block_color', label: 'Block color', type: 'color' }, { key: 'reverse_strand_color', label: 'Antisense strand color', type: 'color' }, { key: 'label_color', label: 'Label color', type: 'color', default_value: 'black' }, - { key: 'show_counts', label: 'Show summary counts', type: 'bool', default_value: true, + { key: 'show_counts', label: 'Show summary counts', type: 'bool', default_value: true, help: 'Show the number of items in each bin when drawing summary histogram' }, { key: 'min_value', label: 'Histogram minimum', type: 'float', default_value: null, help: 'clear value to set automatically' }, { key: 'max_value', label: 'Histogram maximum', type: 'float', default_value: null, help: 'clear value to set automatically' }, @@ -3712,12 +3723,12 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { }, /** - * Actions to be taken after draw has been completed. Draw is completed when all tiles have been + * Actions to be taken after draw has been completed. Draw is completed when all tiles have been * drawn/fetched and shown. */ postdraw_actions: function(tiles, width, w_scale, clear_after) { TiledTrack.prototype.postdraw_actions.call(this, tiles, width, w_scale, clear_after); - + var track = this, i, line_track_tiles = _.filter(tiles, function(t) { @@ -3741,7 +3752,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { var self = this; _.each(tiles, function(tile) { // Remove features already drawn on tile originally. - var tile_incomplete_features =_.omit(all_incomplete_features, + var tile_incomplete_features =_.omit(all_incomplete_features, _.map(tile.incomplete_features, function(f) { return f[0]; })); // Remove features already drawn on tile in past postdraw actions. @@ -3749,17 +3760,17 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { // Draw tile's incomplete features. if (_.size(tile_incomplete_features) !== 0) { - // To draw incomplete features, create new canvas, copy original canvas/tile onto new + // To draw incomplete features, create new canvas, copy original canvas/tile onto new // canvas, and then draw incomplete features on the new canvas. var features = { data: _.values( tile_incomplete_features ) }, new_canvas = self.view.canvas_manager.new_canvas(), new_canvas_ctx = new_canvas.getContext('2d'); - new_canvas.height = Math.max(tile.canvas.height, + new_canvas.height = Math.max(tile.canvas.height, self.get_canvas_height(features, tile.mode, tile.w_scale, 100)); new_canvas.width = tile.canvas.width; new_canvas_ctx.drawImage(tile.canvas, 0, 0); new_canvas_ctx.translate(track.left_offset, 0); - var new_tile = self.draw_tile(features, new_canvas_ctx, tile.mode, + var new_tile = self.draw_tile(features, new_canvas_ctx, tile.mode, tile.region, tile.w_scale, tile.seq_data); $(tile.canvas).replaceWith($(new_tile.canvas)); tile.canvas = new_canvas; @@ -3767,7 +3778,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { } }); } - + // If mode is Coverage and tiles do not share max, redraw tiles as necessary using new max. /* This code isn't used right now because Coverage mode uses predefined max in preferences. @@ -3780,7 +3791,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { global_max = cur_max; } } - + for (i = 0; i < tiles.length; i++) { var tile = tiles[i]; if (tile.max_val !== global_max) { @@ -3789,8 +3800,8 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { } } } - */ - + */ + // // Update filter attributes, UI. // @@ -3813,7 +3824,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { example_feature = tiles[i].data[0]; for (f = 0; f < filters.length; f++) { filter = filters[f]; - if ( filter.applies_to(example_feature) && + if ( filter.applies_to(example_feature) && filter.min !== filter.max ) { filters_available = true; break; @@ -3831,7 +3842,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { track.update_icons(); } } - + // // If not all features slotted, show icon for showing more rows (slots). // @@ -3868,10 +3879,10 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { * is a Slotter object. Returns the number of slots used to pack features. */ incremental_slots: function(level, features, mode) { - + // Get/create incremental slots for level. If display mode changed, // need to create new slots. - + var dummy_context = this.view.canvas_manager.dummy_context, slotter = this.slotters[level]; if (!slotter || (slotter.mode !== mode)) { @@ -3889,11 +3900,11 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { // HACK: use no_detail mode track is in overview to prevent overview from being too large. if (data.extra_info === "no_detail" || this.is_overview) { mode = "no_detail"; - } + } else { // Choose b/t Squish and Pack. - // Proxy measures for using Squish: - // (a) error message re: limiting number of features shown; + // Proxy measures for using Squish: + // (a) error message re: limiting number of features shown; // (b) X number of features shown; // (c) size of view shown. // TODO: cannot use (a) and (b) because it requires coordinating mode across tiles; @@ -3955,7 +3966,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { // Handle row-by-row tracks // Preprocessing: filter features and determine whether all unfiltered features have been slotted. - var + var filtered = [], slots = this.slotters[w_scale].slots; all_slotted = true; @@ -3982,12 +3993,12 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { } } } - } - + } + // Create painter. var filter_alpha_scaler = (this.filters_manager.alpha_filter ? new FilterScaler(this.filters_manager.alpha_filter) : null), filter_height_scaler = (this.filters_manager.height_filter ? new FilterScaler(this.filters_manager.height_filter) : null), - painter = new (this.painter)(filtered, tile_low, tile_high, this.config.to_key_value_dict(), mode, filter_alpha_scaler, filter_height_scaler, + painter = new (this.painter)(filtered, tile_low, tile_high, this.config.to_key_value_dict(), mode, filter_alpha_scaler, filter_height_scaler, // HACK: ref_seq only be defined for ReadTracks, and only the ReadPainter accepts that argument ref_seq, // Only the ReadPainer will use this function @@ -3997,7 +4008,7 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { ctx.fillStyle = this.config.get_value('block_color'); ctx.font = ctx.canvas.manager.default_font; ctx.textAlign = "right"; - + if (result.data) { // Draw features. var draw_results = painter.draw(ctx, canvas.width, canvas.height, w_scale, slots); @@ -4005,11 +4016,11 @@ extend(FeatureTrack.prototype, Drawable.prototype, TiledTrack.prototype, { incomplete_features = draw_results.incomplete_features; feature_mapper.translation = -left_offset; } - + // If not drawing on current tile, create new tile. if (!cur_tile) { - return new FeatureTrackTile(track, region, w_scale, canvas, result.data, mode, - result.message, all_slotted, feature_mapper, + return new FeatureTrackTile(track, region, w_scale, canvas, result.data, mode, + result.message, all_slotted, feature_mapper, incomplete_features, ref_seq); } } @@ -4023,7 +4034,7 @@ var VariantTrack = function(view, container, obj_dict) { this.painter = painters.VariantPainter; this.summary_draw_height = 30; - // Maximum resolution is ~45 pixels/base, so use this size left offset to ensure that full + // Maximum resolution is ~45 pixels/base, so use this size left offset to ensure that full // variant is drawn when variant is at start of tile. this.left_offset = 30; }; @@ -4039,7 +4050,7 @@ extend(VariantTrack.prototype, Drawable.prototype, TiledTrack.prototype, { { key: 'mode', type: 'string', default_value: this.mode, hidden: true }, { key: 'height', type: 'int', default_value: 0, hidden: true } ] ), - + config_onchange: function() { this.set_name(this.config.get_value('name')); this.request_draw({ clear_tile_cache: true }); @@ -4072,7 +4083,7 @@ extend(VariantTrack.prototype, Drawable.prototype, TiledTrack.prototype, { } else { // HACK: sample_names is not be defined when dataset definition is fetched before - // dataset is complete (as is done when running tools). In that case, fall back on + // dataset is complete (as is done when running tools). In that case, fall back on // # of samples in data. This can be fixed by re-requesting dataset definition // in init. var num_samples = ( this.dataset.get_metadata('sample_names') ? this.dataset.get_metadata('sample_names').length : 0); @@ -4086,7 +4097,7 @@ extend(VariantTrack.prototype, Drawable.prototype, TiledTrack.prototype, { num_samples = num_samples.length + 1; } } - + var dummy_painter = new (this.painter)(null, null, null, this.config.to_key_value_dict(), mode); return dummy_painter.get_required_height(num_samples); } @@ -4106,7 +4117,7 @@ extend(VariantTrack.prototype, Drawable.prototype, TiledTrack.prototype, { }, /** - * Actions to be taken after draw has been completed. Draw is completed when all tiles have been + * Actions to be taken after draw has been completed. Draw is completed when all tiles have been * drawn/fetched and shown. */ postdraw_actions: function(tiles, width, w_scale, clear_after) { @@ -4133,12 +4144,12 @@ extend(VariantTrack.prototype, Drawable.prototype, TiledTrack.prototype, { 'top': (this.config.get_value('summary_height') - font_size) / 2 + 'px' }) ); - + // Show sample labels. if (this.config.get_value('show_sample_data')) { var samples_div_html = sample_names.join('
'); - this.tiles_div.prepend( + this.tiles_div.prepend( $("
").html(samples_div_html).addClass('yaxislabel variant top sample').css({ 'top': this.config.get_value('summary_height') }) @@ -4168,7 +4179,7 @@ extend(VariantTrack.prototype, Drawable.prototype, TiledTrack.prototype, { * Track that displays mapped reads. Track expects position data in 1-based, closed format, i.e. SAM/BAM format. */ var ReadTrack = function (view, container, obj_dict) { - FeatureTrack.call(this, view, container, obj_dict); + FeatureTrack.call(this, view, container, obj_dict); this.painter = painters.ReadPainter; this.update_icons(); }; @@ -4210,7 +4221,7 @@ var addable_objects = { }; /** - * Create new object from a template. A template can be either an object dictionary or an + * Create new object from a template. A template can be either an object dictionary or an * object itself. */ var object_from_template = function(template, view, container) { diff --git a/static/maps/utils/config.js.map b/static/maps/utils/config.js.map index 9a4ad39b0d5..6b87ce63c09 100644 --- a/static/maps/utils/config.js.map +++ b/static/maps/utils/config.js.map @@ -1 +1 @@ -{"version":3,"file":"config.js","sources":["../../src/utils/config.js"],"names":["define","_","util_mod","ConfigSetting","Backbone","Model","extend","initialize","options","key","this","get","set","defaults","find","known_settings_defaults","s","undefined","set_value","get_random_color","value","type","parseFloat","parseInt","label","default_value","mode","hidden","ConfigSettingCollection","Collection","model","to_key_value_dict","rval","each","setting","get_value","set_default_value","from_models_and_saved_values","models","saved_values","map","m","ConfigSettingCollectionView","View","className","render","container","$el","collection","param","index","id","row","$","appendTo","append","attr","text","val","click","select","option","container_div","input","css","e","removeClass","tip","siblings","addClass","left","position","width","top","height","show","stopPropagation","document","bind","hide","unbind","new_color_icon","tooltip","tip_inner","farb_obj","farbtastic","callback","color","fixed_farb_obj","setColor","help","render_in_modal","title","self","cancel_fn","Galaxy","modal","window","ok_fn","update_from_form","check_enter_esc","keyCode","which","children","length","body","buttons","Cancel","OK","is"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"config.js","sources":["../../src/utils/config.js"],"names":["define","_","util_mod","ConfigSetting","Backbone","Model","extend","initialize","options","key","this","get","set","defaults","find","known_settings_defaults","s","undefined","set_value","get_random_color","value","type","parseFloat","parseInt","label","default_value","mode","hidden","ConfigSettingCollection","Collection","model","to_key_value_dict","rval","each","setting","get_value","set_default_value","from_models_and_saved_values","models","saved_values","map","m","ConfigSettingCollectionView","View","className","render","container","$el","collection","param","index","id","row","$","appendTo","append","attr","text","val","click","select","option","container_div","input","css","e","removeClass","tip","siblings","addClass","left","position","width","top","height","show","stopPropagation","document","bind","hide","unbind","new_color_icon","tooltip","tip_inner","farb_obj","farbtastic","callback","color","fixed_farb_obj","setColor","help","render_in_modal","title","self","cancel_fn","Galaxy","modal","window","ok_fn","update_from_form","check_enter_esc","keyCode","which","children","length","body","buttons","Cancel","OK","is"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/viz/trackster/painters.js.map b/static/maps/viz/trackster/painters.js.map index 0a2d6aa01bb..b361761e463 100644 --- a/static/maps/viz/trackster/painters.js.map +++ b/static/maps/viz/trackster/painters.js.map @@ -1 +1 @@ -{"version":3,"file":"painters.js","sources":["../../../src/viz/trackster/painters.js"],"names":["define","_","BEFORE","CONTAINS","OVERLAP_START","OVERLAP_END","CONTAINED_BY","AFTER","compute_overlap","first_region","second_region","overlap","first_start","first_end","second_start","second_end","is_overlap","dashedLine","ctx","x1","y1","x2","y2","dashLen","undefined","q","dX","dY","dashes","Math","floor","sqrt","dashX","dashY","fillRect","drawDownwardEquilateralTriangle","down_vertex_x","down_vertex_y","side_len","y","beginPath","moveTo","lineTo","strokeStyle","this","fillStyle","fill","stroke","closePath","Scaler","default_val","prototype","gen_val","DrawResults","options","incomplete_features","feature_mapper","Painter","data","view_start","view_end","prefs","mode","extend","default_prefs","draw","get_start_draw_pos","chrom_pos","w_scale","_chrom_pos_to_draw_pos","get_end_draw_pos","get_draw_pos","offset","max","LinePainter","call","min_value","min","map","d","max_value","color","overflow_color","width","height","in_path","vertical_range","height_px","save","y_zero","round","x_scaled","delta_x_px","length","ceil","painter_color","block_color","pref_color","parseInt","slice","pref_r","pref_g","pref_b","top_overflow","bot_overflow","i","len","saturation","new_r","new_g","new_b","overflow_x","restore","FeaturePositionMapper","slot_height","feature_positions","translation","y_translation","map_feature_data","feature_data","slot","x_start","x_end","push","get_feature_data","x","feature_dict","FeaturePainter","alpha_scaler","height_scaler","max_label_length","connector_color","get_required_height","rows_required","required_height","get_row_height","y_scale","get_top_padding","slots","textAlign","x_draw_coords","feature","feature_uid","feature_start","feature_end","draw_element","DENSE_TRACK_HEIGHT","NO_DETAIL_TRACK_HEIGHT","SQUISH_TRACK_HEIGHT","PACK_TRACK_HEIGHT","NO_DETAIL_FEATURE_HEIGHT","DENSE_FEATURE_HEIGHT","SQUISH_FEATURE_HEIGHT","PACK_FEATURE_HEIGHT","LABEL_SPACING","CONNECTOR_COLOR","LinkedFeaturePainter","draw_background_connector","draw_individual_connectors","tile_low","tile_high","y_start","feature_name","feature_strand","f_start","f_end","draw_start","draw_end","thick_start","thick_end","reverse_strand_color","label_color","globalAlpha","feature_ts","feature_te","feature_blocks","full_height","thin_height","thick_height","cur_y_start","cur_height","canvas","manager","get_pattern","k","k_len","last_block_start","last_block_end","block","block_start","block_end","block_thick_start","block_thick_end","draw_connector","hscale_factor","new_height","ws_height","measureText","fillText","ReadPainter","ref_seq","base_color_fn","show_insertions","_parse_cigar","cigar_str","cigar_ops","blocks","cur_block","base_pos","parsed_cigar","match","op","op_len","op_char","indexOf","cigar","draw_read","strand","read_seq","update_base_offset","cig_op","cig_len","update_seq_offset","get_draw_coord","sequence_coord","s_start","s_end","tile_region","base_offset","seq_offset","gap","char_width_px","detail_block_color","pack_mode","draw_height","rect_y","paint_utils","ReadPainterUtils","drawing_blocks","draw_last","t","cig_id","cig","seq_start","cur_seq","start_pos","c","show_differences","c_start","draw_deletion","insert_x_coord","seq","x_center","type","str_len","item","font","Array","connector","b1_end","b2_start","line_height","ArcLinkedFeaturePainter","longest_feature_length","calculate_longest_feature_length","view_range","block1_start","block1_end","block2_start","block2_end","radius","PI","arc","Color","rgb","a","isArray","substring","split","alpha","eval","toCSS","concat","join","toString","toHSL","h","s","r","g","b","l","toARGB","argb","mix","color2","weight","color1","p","w","w1","w2","LinearRamp","start_color","end_color","start_value","end_value","value_range","map_value","value","SplitRamp","middle_color","positive_ramp","negative_ramp","DiagonalHeatmapPainter","pos_color","neg_color","s1","e1","s2","e2","invsqrt2","ramp","scale","rotate","row_height","px_per_base","draw_details","delete_details_thickness","thickness","VariantPainter","divider_height","num_samples","summary_height","show_sample_data","locus_data","pos","ref","alt","sample_gts","allele_counts","variant","draw_x_start","draw_y_start","genotype","j","get_indel_info","ref_len","alt_len","start","base_px","feature_height","draw_summary","flatten","alt_info","indel_info","allele_frac","snp"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"painters.js","sources":["../../../src/viz/trackster/painters.js"],"names":["define","_","BEFORE","CONTAINS","OVERLAP_START","OVERLAP_END","CONTAINED_BY","AFTER","compute_overlap","first_region","second_region","overlap","first_start","first_end","second_start","second_end","is_overlap","dashedLine","ctx","x1","y1","x2","y2","dashLen","undefined","q","dX","dY","dashes","Math","floor","sqrt","dashX","dashY","fillRect","drawDownwardEquilateralTriangle","down_vertex_x","down_vertex_y","side_len","y","beginPath","moveTo","lineTo","strokeStyle","this","fillStyle","fill","stroke","closePath","Scaler","default_val","prototype","gen_val","DrawResults","options","incomplete_features","feature_mapper","Painter","data","view_start","view_end","prefs","mode","extend","default_prefs","draw","get_start_draw_pos","chrom_pos","w_scale","_chrom_pos_to_draw_pos","get_end_draw_pos","get_draw_pos","offset","max","LinePainter","call","min_value","min","map","d","max_value","color","overflow_color","width","height","in_path","vertical_range","height_px","save","y_zero","round","x_scaled","delta_x_px","length","ceil","painter_color","block_color","pref_color","parseInt","slice","pref_r","pref_g","pref_b","top_overflow","bot_overflow","i","len","saturation","new_r","new_g","new_b","overflow_x","restore","FeaturePositionMapper","slot_height","feature_positions","translation","y_translation","map_feature_data","feature_data","slot","x_start","x_end","push","get_feature_data","x","feature_dict","FeaturePainter","alpha_scaler","height_scaler","max_label_length","connector_color","get_required_height","rows_required","required_height","get_row_height","y_scale","get_top_padding","slots","textAlign","x_draw_coords","feature","feature_uid","feature_start","feature_end","draw_element","DENSE_TRACK_HEIGHT","NO_DETAIL_TRACK_HEIGHT","SQUISH_TRACK_HEIGHT","PACK_TRACK_HEIGHT","NO_DETAIL_FEATURE_HEIGHT","DENSE_FEATURE_HEIGHT","SQUISH_FEATURE_HEIGHT","PACK_FEATURE_HEIGHT","LABEL_SPACING","CONNECTOR_COLOR","LinkedFeaturePainter","draw_background_connector","draw_individual_connectors","tile_low","tile_high","y_start","feature_name","feature_strand","f_start","f_end","draw_start","draw_end","thick_start","thick_end","reverse_strand_color","label_color","globalAlpha","feature_ts","feature_te","feature_blocks","full_height","thin_height","thick_height","cur_y_start","cur_height","canvas","manager","get_pattern","k","k_len","last_block_start","last_block_end","block","block_start","block_end","block_thick_start","block_thick_end","draw_connector","hscale_factor","new_height","ws_height","measureText","fillText","ReadPainter","ref_seq","base_color_fn","show_insertions","_parse_cigar","cigar_str","cigar_ops","blocks","cur_block","base_pos","parsed_cigar","match","op","op_len","op_char","indexOf","cigar","draw_read","strand","read_seq","update_base_offset","cig_op","cig_len","update_seq_offset","get_draw_coord","sequence_coord","s_start","s_end","tile_region","base_offset","seq_offset","gap","char_width_px","detail_block_color","pack_mode","draw_height","rect_y","paint_utils","ReadPainterUtils","drawing_blocks","draw_last","t","cig_id","cig","seq_start","cur_seq","start_pos","c","show_differences","c_start","draw_deletion","insert_x_coord","seq","x_center","type","str_len","item","font","Array","connector","b1_end","b2_start","line_height","ArcLinkedFeaturePainter","longest_feature_length","calculate_longest_feature_length","view_range","block1_start","block1_end","block2_start","block2_end","radius","PI","arc","Color","rgb","a","isArray","substring","split","alpha","eval","toCSS","concat","join","toString","toHSL","h","s","r","g","b","l","toARGB","argb","mix","color2","weight","color1","p","w","w1","w2","LinearRamp","start_color","end_color","start_value","end_value","value_range","map_value","value","SplitRamp","middle_color","positive_ramp","negative_ramp","DiagonalHeatmapPainter","pos_color","neg_color","s1","e1","s2","e2","invsqrt2","ramp","scale","rotate","row_height","px_per_base","draw_details","delete_details_thickness","thickness","VariantPainter","divider_height","num_samples","summary_height","show_sample_data","locus_data","pos","ref","alt","sample_gts","allele_counts","variant","draw_x_start","draw_y_start","genotype","j","get_indel_info","ref_len","alt_len","start","base_px","feature_height","draw_summary","flatten","alt_info","indel_info","allele_frac","snp"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/viz/trackster/tracks.js.map b/static/maps/viz/trackster/tracks.js.map index cb677c4141f..deb518721cf 100644 --- a/static/maps/viz/trackster/tracks.js.map +++ b/static/maps/viz/trackster/tracks.js.map @@ -1 +1 @@ -{"version":3,"file":"tracks.js","sources":["../../../src/viz/trackster/tracks.js"],"names":["define","_","visualization","viz_views","util","slotting","painters","filters_mod","data","tools_mod","config_mod","extend","html_elt_js_obj_dict","is_container","element","obj","attr","moveable","handle_class","container_selector","element_js_obj","bind","handle","relative","e","d","child","container","top","bottom","i","parent","$","this","children","this_obj","parents","length","position","outerHeight","cur_container","offsetY","insertBefore","remove_drawable","add_drawable_before","insertAfter","add_drawable","get","is","find","prepend","append","hasClass","move_drawable","deltaY","addClass","removeClass","ERROR_PADDING","MAX_FEATURE_DEPTH","MIN_SQUISH_VIEW_WIDTH","TILE_SIZE","DEFAULT_DATA_QUERY_WAIT","MAX_CHROMS_SELECTABLE","DATA_ERROR","DATA_NOCONVERTER","DATA_NONE","DATA_PENDING","DATA_CANNOT_RUN_TOOL","DATA_OK","TILE_CACHE_SIZE","CONTINUOUS_DATA_MODES","Drawable","view","obj_dict","id_counter","id","drag_handle_class","is_overview","action_icons","config","ConfigSettingCollection","from_models_and_saved_values","config_params","prefs","get_value","set_value","name","config_onchange","on","container_div","build_container_div","header_div","header","header_view","TrackHeaderView","model","$el","icons_div","hover","show","hide","prototype","action_icons_def","title","css_class","on_click_fn","drawable","toggle_icon","hide_contents","show_contents","ConfigSettingCollectionView","collection","render_in_modal","remove","key","label","type","default_value","hidden","init","changed","can_draw","enabled","request_draw","_draw","to_dict","set_name","new_name","old_name","revert_name","update_intro_div","update_icons","get_drawables","DrawableCollection","call","obj_type","drawables","unpack_drawables","drawables_array","object_from_template","options","dictified_drawables","push","to_key_value_dict","other","index","indexOf","splice","replace_drawable","old_drawable","new_drawable","update_html","replaceWith","new_position","get_tracks","track_type","queue","slice","tracks","shift","concat","DrawableGroup","content_div","appendTo","filters_manager","FiltersManager","after","parent_div","saved_filters_managers","old_manager","filters","visible","setup_multitrack_filtering","group","show_composite_track","clear_filters","_restore_filter_managers","clear_tile_cache","toggle","tiles_div","num_drawables","composite_icon","filters_icon","CompositeTrack","j","same_type","a_type","get_type","num_feature_tracks","can_composite","FeatureTrack","LineTrack","filter","shared_filters","remove_all","new_filter","filter_name","NumberFilter","add_filter","init_filters","composite_track","each","TracksterView","Backbone","View","initialize","chrom","vis_id","dbkey","stand_alone","undefined","label_tracks","tracks_to_be_redrawn","max_low","max_high","zoom_factor","min_separation","has_changes","load_chroms_deferred","render","canvas_manager","CanvasManager","ownerDocument","reset","requested_redraw","parent_element","top_container","browser_content_div","bottom_container","top_labeltrack","viewport_container","intro_div","text","click","select_datasets","galaxy_config","root","f-dbkey","track","nav_container","prependTo","nav","overview","overview_viewport","overview_close","overview_highlight","overview_box_background","overview_box","default_overview_height","height","nav_controls","chrom_select","submit_nav","keyCode","which","go_to","val","location_span","stopPropagation","nav_input","tooltip","placement","low","high","css","select","focus","autocomplete","source","request","response","all_features","feature_search_deferreds","map","t","data_manager","search_features","term","success","dataset_features","when","apply","done","feature","value","minLength","hidden_input","zo_link","zoom_out","zi_link","zoom_in","load_chroms","change_chrom","trigger","pageX","current_x","offsetX","delta","delta_chrom","Math","round","width","move_delta","reset_overview","clientX","original_low","current_height","clientY","new_scroll","scrollTop","proxy","left","min","startX","offset","abs","max","span","update_location","old_low","request_redraw","add_label_track","LabelTrack","window","resize_timer","clearTimeout","setTimeout","resize_window","document","redraw","get_base_color","base","toLowerCase","trigger_navigate","new_chrom","new_low","new_high","delay","timer","self","commatize","url_parms","num","chrom_data","Deferred","ajax","url","dataType","result","chrom_info","reference","ref_track","ReferenceTrack","reference_track","chrom_options","len","prev_chroms","next_chroms","html","chrom_start_index","start_index","resolve","error","alert","then","found","grep","v","str","replace","chrom_pos","split","parseInt","move_fraction","fraction","current_chrom_span","data_fetch","redraw_on_move_fn","label_track","track_list","track_options","to","requestAnimationFrame","_redraw","floor","ceil","resolution_px_b","left_px","width_px","min_width_px","point","cur_center","new_half","resize_viewport","set_overview","overview_drawable","dataset","copy","postdraw_actions","TracksterTool","Tool","defaults","tool_state","set","remove_inputs","state_dict","get_inputs_dict","is_visible","ToolParameterView","events","change :input","param_div","param","html_div","update_value","update_event","target","TracksterToolView","set_visible","tool","keydown","param_view","run_tool_row","run_on_dataset_button","run_on_region_button","run_on_region","run_on_dataset","update_params","params","run","target_dataset_id","action","tool_id","Galaxy","modal","body","buttons","Close","region","GenomeRegion","start","end","url_params","regions","toJSON","current_track","track_name","tool_region_and_parameters_str","new_track","constructor","hda_ldda","init_for_tool_data","change_mode","mode","set_filters_manager","track_data","set_dataset","Dataset","success_callback","inputs","ss_deferred","ServerStateDeferred","ajax_settings","JSON","stringify","contentType","interval","success_fn","go","message","FilterScaler","default_val","Scaler","gen_val","feature_data","Number","MAX_VALUE","parseFloat","Tile","w_scale","canvas","html_elt","stale","predisplay_actions","LineTrackTile","FeatureTrackTile","all_slotted","feature_mapper","incomplete_features","seq_data","has_icons","other_tiles_features_drawn","Track","Model","dataset_check_type","data_url_extra_params","data_query_wait","GenomeDataManager","genome","Genome","chroms_info","data_mode_compatible","data_and_mode_compatible","can_subset","min_height_px","max_height_px","visible_height_px","resize","add_resize_handle","cancel_fn","unbind","ok_fn","regions_to_use","view_region","bookmarked_regions","elt","from_str","location","href","dataset_id","Collection","No","Yes","on_resize","in_handle","in_drag","drag_control","original_height","new_height","tile_cache","clear","ReadTrack","VariantTrack","show_message","msg_html","retry","init_deferred","data_type","getJSON","kind","status","valid_chroms","predraw_init","msg_elt","stats","min_value","max_value","mean","sd","set_default_value","TiledTrack","filters_available","Cache","left_offset","tool_view","dynamic_tool_div","overlay_div","slotters","max_rows","set_min_max","isNaN","new_mode","mode_icon","tools_icon","param_space_viz_icon","_gen_tile_cache_key","tile_region","before_draw","clear_after","resolution","tile_promise","tile_width","tile_index","tile_promises","tiles","draw_helper","tile","_add_yaxis_label","on_change","pref_name","make_text_editable","num_cols","on_finish","new_val","help_text","line_track_tiles","force","icons_present","get_mode","update_auto_mode","_get_drawables","is_tile","o","get_elt","show_tile","get_tile_data","data_mode","m","tile_data","get_data","tile_drawn","set_elt","tracks_data","is_deferred","subset_entry","pop","drawing_modes","drawing_heights","get_canvas_height","new_canvas","tile_low","tile_high","ctx","getContext","translate","globalAlpha","globalCompositeOperation","draw_tile","_draw_line_track_tile","painter","LinePainter","draw","tile_element","track_height","region_str","toString","param_str","values","join","dataset_type","extra_info","entry","range","tickDistance","pow","log","new_div","screenPosition","display_modes","union","show_group","visible_height","init_deferreds","update_all_min_max","max_height","char_width_px","data_url","GenomeReferenceDataManager","new_visible","cur_visible","subset","font","manager","default_font","textAlign","c","str_len","fillStyle","fillText","DiagonalHeatmapTrack","DiagonalHeatmapPainter","summary_draw_height","start_end_dct","set_painter_from_config","help","ArcLinkedFeaturePainter","LinkedFeaturePainter","all_incomplete_features","pluck","inc_features","tile_incomplete_features","omit","f","keys","size","features","new_canvas_ctx","drawImage","new_tile","update_ui_elt","example_feature","applies_to","show_more_rows_icon","incremental_slots","level","dummy_context","slotter","x","measureText","slot_features","canvas_width","rows_required","dummy_painter","get_required_height","ref_seq","cur_tile","filtered","slots","hide_feature","flen","update_attrs","keep","filter_alpha_scaler","alpha_filter","filter_height_scaler","height_filter","b","draw_results","translation","VariantPainter","num_samples","get_metadata","match","deferreds","fetch","sample_names","font_size","font-size","samples_div_html","line-height","ReadPainter","addable_objects","VcfTrack","template","drawable_type"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tracks.js","sources":["../../../src/viz/trackster/tracks.js"],"names":["define","_","visualization","viz_views","util","slotting","painters","filters_mod","data","tools_mod","config_mod","extend","html_elt_js_obj_dict","is_container","element","obj","attr","moveable","handle_class","container_selector","element_js_obj","bind","handle","relative","e","d","child","container","top","bottom","i","parent","$","this","children","this_obj","parents","length","position","outerHeight","cur_container","offsetY","insertBefore","remove_drawable","add_drawable_before","insertAfter","add_drawable","get","is","find","prepend","append","hasClass","move_drawable","deltaY","addClass","removeClass","ERROR_PADDING","MAX_FEATURE_DEPTH","MIN_SQUISH_VIEW_WIDTH","TILE_SIZE","DEFAULT_DATA_QUERY_WAIT","MAX_CHROMS_SELECTABLE","DATA_ERROR","DATA_NOCONVERTER","DATA_NONE","DATA_PENDING","DATA_CANNOT_RUN_TOOL","DATA_OK","TILE_CACHE_SIZE","CONTINUOUS_DATA_MODES","Drawable","view","obj_dict","id_counter","id","drag_handle_class","is_overview","action_icons","config","ConfigSettingCollection","from_models_and_saved_values","config_params","prefs","get_value","set_value","name","config_onchange","on","container_div","build_container_div","header_div","header","header_view","TrackHeaderView","model","$el","icons_div","hover","show","hide","prototype","action_icons_def","title","css_class","on_click_fn","drawable","toggle_icon","hide_contents","show_contents","ConfigSettingCollectionView","collection","render_in_modal","remove","key","label","type","default_value","hidden","init","changed","can_draw","enabled","request_draw","_draw","to_dict","set_name","new_name","old_name","revert_name","update_intro_div","update_icons","get_drawables","DrawableCollection","call","obj_type","drawables","unpack_drawables","drawables_array","object_from_template","options","dictified_drawables","push","to_key_value_dict","other","index","indexOf","splice","replace_drawable","old_drawable","new_drawable","update_html","replaceWith","new_position","get_tracks","track_type","queue","slice","tracks","shift","concat","DrawableGroup","content_div","appendTo","filters_manager","FiltersManager","after","parent_div","saved_filters_managers","old_manager","filters","visible","setup_multitrack_filtering","group","show_composite_track","clear_filters","_restore_filter_managers","clear_tile_cache","toggle","tiles_div","num_drawables","composite_icon","filters_icon","CompositeTrack","j","same_type","a_type","get_type","num_feature_tracks","can_composite","FeatureTrack","LineTrack","filter","shared_filters","remove_all","new_filter","filter_name","NumberFilter","add_filter","init_filters","composite_track","each","TracksterView","Backbone","View","initialize","chrom","vis_id","dbkey","stand_alone","undefined","label_tracks","tracks_to_be_redrawn","max_low","max_high","zoom_factor","min_separation","has_changes","load_chroms_deferred","render","canvas_manager","CanvasManager","ownerDocument","reset","requested_redraw","parent_element","top_container","browser_content_div","bottom_container","top_labeltrack","viewport_container","intro_div","text","click","select_datasets","galaxy_config","root","f-dbkey","track","nav_container","prependTo","nav","overview","overview_viewport","overview_close","overview_highlight","overview_box_background","overview_box","default_overview_height","height","nav_controls","chrom_select","submit_nav","keyCode","which","go_to","val","location_span","stopPropagation","nav_input","tooltip","placement","low","high","css","select","focus","autocomplete","source","request","response","all_features","feature_search_deferreds","map","t","data_manager","search_features","term","success","dataset_features","when","apply","done","feature","value","minLength","hidden_input","zo_link","zoom_out","zi_link","zoom_in","load_chroms","change_chrom","trigger","pageX","current_x","offsetX","delta","delta_chrom","Math","round","width","move_delta","reset_overview","clientX","original_low","current_height","clientY","new_scroll","scrollTop","proxy","left","min","startX","offset","abs","max","span","update_location","old_low","request_redraw","add_label_track","LabelTrack","window","resize_timer","clearTimeout","setTimeout","resize_window","document","redraw","get_base_color","base","toLowerCase","trigger_navigate","new_chrom","new_low","new_high","delay","timer","self","commatize","url_parms","num","chrom_data","Deferred","ajax","url","dataType","result","chrom_info","reference","ref_track","ReferenceTrack","reference_track","chrom_options","len","prev_chroms","next_chroms","html","chrom_start_index","start_index","resolve","error","alert","then","found","grep","v","str","replace","chrom_pos","split","parseInt","move_fraction","fraction","current_chrom_span","data_fetch","redraw_on_move_fn","label_track","track_list","track_options","to","requestAnimationFrame","_redraw","floor","ceil","resolution_px_b","left_px","width_px","min_width_px","point","cur_center","new_half","resize_viewport","set_overview","overview_drawable","dataset","copy","postdraw_actions","TracksterTool","Tool","defaults","tool_state","set","remove_inputs","state_dict","get_inputs_dict","is_visible","ToolParameterView","events","change :input","param_div","param","html_div","update_value","update_event","target","TracksterToolView","set_visible","tool","keydown","param_view","run_tool_row","run_on_dataset_button","run_on_region_button","run_on_region","run_on_dataset","update_params","params","run","target_dataset_id","action","tool_id","Galaxy","modal","body","buttons","Close","region","GenomeRegion","start","end","url_params","regions","toJSON","current_track","track_name","tool_region_and_parameters_str","new_track","constructor","hda_ldda","init_for_tool_data","change_mode","mode","set_filters_manager","track_data","set_dataset","Dataset","success_callback","inputs","ss_deferred","ServerStateDeferred","ajax_settings","JSON","stringify","contentType","interval","success_fn","go","message","FilterScaler","default_val","Scaler","gen_val","feature_data","Number","MAX_VALUE","parseFloat","Tile","w_scale","canvas","html_elt","stale","predisplay_actions","LineTrackTile","FeatureTrackTile","all_slotted","feature_mapper","incomplete_features","seq_data","has_icons","other_tiles_features_drawn","Track","Model","dataset_check_type","data_url_extra_params","data_query_wait","GenomeDataManager","genome","Genome","chroms_info","data_mode_compatible","data_and_mode_compatible","can_subset","min_height_px","max_height_px","visible_height_px","resize","add_resize_handle","cancel_fn","unbind","ok_fn","regions_to_use","view_region","bookmarked_regions","elt","from_str","location","href","dataset_id","Collection","No","Yes","on_resize","in_handle","in_drag","drag_control","original_height","new_height","tile_cache","clear","ReadTrack","VariantTrack","show_message","msg_html","retry","init_deferred","data_type","getJSON","kind","status","valid_chroms","predraw_init","msg_elt","stats","min_value","max_value","mean","sd","set_default_value","TiledTrack","filters_available","Cache","left_offset","tool_view","dynamic_tool_div","overlay_div","slotters","max_rows","set_min_max","isNaN","new_mode","mode_icon","tools_icon","param_space_viz_icon","_gen_tile_cache_key","tile_region","before_draw","clear_after","resolution","tile_promise","tile_width","tile_index","tile_promises","tiles","draw_helper","tile","_add_yaxis_label","on_change","pref_name","make_text_editable","num_cols","on_finish","new_val","help_text","line_track_tiles","force","icons_present","get_mode","update_auto_mode","_get_drawables","is_tile","o","get_elt","show_tile","get_tile_data","data_mode","m","tile_data","get_data","tile_drawn","set_elt","tracks_data","is_deferred","subset_entry","pop","drawing_modes","drawing_heights","get_canvas_height","new_canvas","tile_low","tile_high","ctx","getContext","translate","globalAlpha","globalCompositeOperation","draw_tile","_draw_line_track_tile","painter","LinePainter","draw","tile_element","track_height","region_str","toString","param_str","values","join","dataset_type","extra_info","entry","range","tickDistance","pow","log","new_div","screenPosition","display_modes","union","show_group","visible_height","init_deferreds","update_all_min_max","max_height","char_width_px","data_url","GenomeReferenceDataManager","new_visible","cur_visible","subset","font","manager","default_font","textAlign","c","str_len","fillStyle","fillText","DiagonalHeatmapTrack","DiagonalHeatmapPainter","summary_draw_height","start_end_dct","set_painter_from_config","help","ArcLinkedFeaturePainter","LinkedFeaturePainter","all_incomplete_features","pluck","inc_features","tile_incomplete_features","omit","f","keys","size","features","new_canvas_ctx","drawImage","new_tile","update_ui_elt","example_feature","applies_to","show_more_rows_icon","incremental_slots","level","dummy_context","slotter","x","measureText","slot_features","canvas_width","rows_required","dummy_painter","get_required_height","ref_seq","cur_tile","filtered","slots","hide_feature","flen","update_attrs","keep","filter_alpha_scaler","alpha_filter","filter_height_scaler","height_filter","b","draw_results","translation","VariantPainter","num_samples","get_metadata","match","deferreds","fetch","sample_names","font_size","font-size","samples_div_html","line-height","ReadPainter","addable_objects","VcfTrack","template","drawable_type"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/utils/config.js b/static/scripts/utils/config.js index a0e83215230..f678085c2f9 100644 --- a/static/scripts/utils/config.js +++ b/static/scripts/utils/config.js @@ -1,2 +1,2 @@ -define(["libs/underscore","viz/trackster/util","utils/config"],function(a,b){var c=Backbone.Model.extend({initialize:function(d){var e=this.get("key");this.set("id",e);var f=a.find(c.known_settings_defaults,function(a){return a.key===e});f&&this.set(a.extend({},f,d)),void 0===this.get("value")&&(this.set_value(this.get("default_value")),this.get("value")||"color"!==this.get("type")||this.set("value",b.get_random_color()))},set_value:function(a,b){var c=this.get("type");"float"===c?a=parseFloat(a):"int"===c&&(a=parseInt(a,10)),this.set({value:a},b)}},{known_settings_defaults:[{key:"name",label:"Name",type:"text",default_value:""},{key:"color",label:"Color",type:"color",default_value:null},{key:"min_value",label:"Min Value",type:"float",default_value:null},{key:"max_value",label:"Max Value",type:"float",default_value:null},{key:"mode",type:"string",default_value:this.mode,hidden:!0},{key:"height",type:"int",default_value:32,hidden:!0},{key:"pos_color",label:"Positive Color",type:"color",default_value:"#FF8C00"},{key:"neg_color",label:"Negative Color",type:"color",default_value:"#4169E1"},{key:"block_color",label:"Block color",type:"color",default_value:null},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:!1},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:!0},{key:"mode",type:"string",default_value:this.mode,hidden:!0},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:null},{key:"show_differences",label:"Show differences only",type:"bool",default_value:!0},{key:"mode",type:"string",default_value:this.mode,hidden:!0}]}),d=Backbone.Collection.extend({model:c,to_key_value_dict:function(){var a={};return this.each(function(b){a[b.get("key")]=b.get("value")}),a},get_value:function(a){var b=this.get(a);return b?b.get("value"):void 0},set_value:function(a,b,c){var d=this.get(a);return d?d.set_value(b,c):void 0},set_default_value:function(a,b){var c=this.get(a);return c?c.set("default_value",b):void 0}},{from_models_and_saved_values:function(b,c){return c&&(b=a.map(b,function(b){return a.extend({},b,{value:c[b.key]})})),new d(b)}}),e=Backbone.View.extend({className:"config-settings-view",render:function(){var c=this.$el;return this.collection.each(function(d,e){if(!d.get("hidden")){var f="param_"+e,g=d.get("type"),h=d.get("value"),i=$("
").appendTo(c);if(i.append($("