UNPKG

oncoprintjs

Version:

A data visualization for cancer genomic data.

185 lines (184 loc) 7.48 kB
/// <reference types="jquery" /> /// <reference types="jstree" /> import OncoprintModel, { ColumnId, TrackId, TrackProp } from './oncoprintmodel'; import OncoprintToolTip from './oncoprinttooltip'; import { CellClickCallback, CellMouseOverCallback } from './oncoprint'; declare type ColorBank = number[]; declare type OncoprintGap = { origin_x: number; origin_y: number; data: OncoprintGapConfig; }; export declare type OncoprintGapConfig = { labelFormatter: () => string; tooltipFormatter: () => string; }; export declare type OncoprintWebGLContext = WebGLRenderingContext & { viewportWidth: number; viewportHeight: number; }; export declare type OncoprintShaderProgram = WebGLProgram & { vertexPositionAttribute: any; vertexColorAttribute: any; vertexOncoprintColumnAttribute: any; gapSizeUniform: WebGLUniformLocation; columnsRightAfterGapsUniform: WebGLUniformLocation; samplerUniform: WebGLUniformLocation; pMatrixUniform: WebGLUniformLocation; mvMatrixUniform: WebGLUniformLocation; columnWidthUniform: WebGLUniformLocation; scrollXUniform: WebGLUniformLocation; scrollYUniform: WebGLUniformLocation; zoomXUniform: WebGLUniformLocation; zoomYUniform: WebGLUniformLocation; offsetYUniform: WebGLUniformLocation; supersamplingRatioUniform: WebGLUniformLocation; positionBitPackBaseUniform: WebGLUniformLocation; texSizeUniform: WebGLUniformLocation; }; export declare type OncoprintTrackBuffer = WebGLBuffer & { itemSize: number; numItems: number; }; export declare type OncoprintVertexTrackBuffer = OncoprintTrackBuffer & { specificShapesNumItems: number; universalShapesNumItems: number; }; export default class OncoprintWebGLCellView { private $container; private $canvas; private $overlay_canvas; private $gap_canvas; private $column_label_canvas; private $dummy_scroll_div_contents; private tooltip; private highlight_area_callback; readonly position_bit_pack_base = 128; private readonly supersampling_ratio; private readonly antialias_on_cell_width_thresh; private antialias; private dummy_scroll_div_client_size; visible_area_width: number; private mouseMoveHandler; private ctx; private gap_ctx; private ext; private overlay_ctx; private column_label_ctx; private mvMatrix; private pMatrix; private shader_program; private scroll_x; private scroll_y; private maximum_column_label_width; private maximum_column_label_height; private rendering_suppressed; private specific_shapes; private universal_shapes; vertex_data: TrackProp<{ pos_array: Float32Array; col_array: Float32Array; col_bank: ColorBank; universal_shapes_start_index: number; }>; vertex_column_array: TrackProp<Float32Array>; private vertex_position_buffer; private vertex_color_buffer; private vertex_column_buffer; private simple_count_buffer; private is_buffer_empty; private color_texture; private id_to_first_vertex_index; constructor($container: JQuery, $canvas: JQuery<HTMLCanvasElement>, $overlay_canvas: JQuery<HTMLCanvasElement>, $gap_canvas: JQuery<HTMLCanvasElement>, $column_label_canvas: JQuery<HTMLCanvasElement>, $dummy_scroll_div_contents: JQuery, model: OncoprintModel, tooltip: OncoprintToolTip, highlight_area_callback: undefined | ((left: number, right: number) => void), cell_over_callback: CellMouseOverCallback, cell_click_callback: CellClickCallback); private drawGapLabel; private getNewCanvas; private getGapContext; private getWebGLCanvasContext; private createShaderProgram; private createShader; private overlayStrokeRect; private overlayFillRect; clearOverlay(): void; private getOverlayContextAndClear; private getColumnLabelsContext; private getColumnLabelY; private overlayColumnLabelHighlight; private getWebGLContextAndSetUpMatrices; private getColumnIndexesAfterAGap; private setUpShaders; private resizeAndClear; gapTooltipTargets: OncoprintGap[]; hoveredGap: OncoprintGap; private renderAllTracks; private static getColumnLabelsFontSize; private prepareContextForColumnLabelText; private renderColumnLabels; private getColumnLabelAngleRadians; private getColumnLabelCircleSpec; private ensureSimpleCountBuffer; private clearTrackPositionAndColorBuffers; private clearTrackColumnBuffers; private deleteBuffers; private deleteSimpleCountBuffer; private getTrackBuffers; private computeVertexColumns; private computeVertexPositionsAndVertexColors; private getShapes; private refreshCanvas; private highlightCell; private highlightTrack; private highlightColumn; getViewportOncoprintSpace(model: OncoprintModel): { top: number; bottom: number; left: number; right: number; center_col_index: number; }; isUsable(): boolean; removeTrack(model: OncoprintModel, track_id: TrackId): void; moveTrack(model: OncoprintModel): void; setTrackGroupOrder(model: OncoprintModel): void; setTrackShowGaps(model: OncoprintModel): void; setColumnLabels(model: OncoprintModel): void; addTracks(model: OncoprintModel, track_ids: TrackId[]): void; setIdOrder(model: OncoprintModel, ids: ColumnId[]): void; setTrackGroupSortPriority(model: OncoprintModel): void; sort(model: OncoprintModel): void; suppressRendering(): void; releaseRendering(model: OncoprintModel): void; hideIds(model: OncoprintModel): void; setTrackImportantIds(model: OncoprintModel, track_id: TrackId): void; setTrackData(model: OncoprintModel, track_id: TrackId): void; setRuleSet(model: OncoprintModel, target_track_id: TrackId): void; shareRuleSet(model: OncoprintModel, target_track_id: TrackId): void; setSortConfig(model: OncoprintModel): void; setHorzScroll(model: OncoprintModel): void; setVertScroll(model: OncoprintModel): void; setScroll(model: OncoprintModel): void; private updateAntialiasSetting; setZoom(model: OncoprintModel): void; setHorzZoom(model: OncoprintModel): void; setVertZoom(model: OncoprintModel): void; setTrackGroupHeader(model: OncoprintModel): void; setViewport(model: OncoprintModel): void; getTotalWidth(model: OncoprintModel, base?: boolean): number; getVisibleAreaWidth(): number; setWidth(w: number, model: OncoprintModel): void; private getColumnLabelsHeight; getTotalHeight(model: OncoprintModel): number; getVisibleAreaHeight(model: OncoprintModel): number; setCellPaddingOn(model: OncoprintModel): void; setHighlightedIds(model: OncoprintModel): void; setHighlightedTracks(model: OncoprintModel): void; highlightHighlightedIds(model: OncoprintModel, opt_exclude_ids?: ColumnId[]): void; highlightHighlightedTracks(model: OncoprintModel): void; getDummyScrollDivClientSize(): { width: number; height: number; }; getGaps(model: OncoprintModel, track_id: number): OncoprintGapConfig[]; toSVGGroup(model: OncoprintModel, offset_x: number, offset_y: number): SVGGElement; destroy(): void; } export {};