oncoprintjs
Version:
A data visualization for cancer genomic data.
169 lines (168 loc) • 8.08 kB
TypeScript
/// <reference types="jquery" />
/// <reference types="jstree" />
import './polyfill';
import OncoprintModel, { ColumnId, ColumnLabel, ColumnProp, CustomTrackOption, Datum, GAP_MODE_ENUM, SortConfig, TrackGroupHeader, TrackGroupIndex, TrackId, TrackSortDirection, TrackSortSpecification, TrackTooltipFn, UserTrackSpec } from './oncoprintmodel';
import OncoprintWebGLCellView from './oncoprintwebglcellview';
import OncoprintLabelView from './oncoprintlabelview';
import { RuleSetParams } from './oncoprintruleset';
import OncoprintTrackOptionsView from './oncoprinttrackoptionsview';
import OncoprintLegendView from './oncoprintlegendrenderer';
import OncoprintTrackInfoView from './oncoprinttrackinfoview';
import OncoprintMinimapView, { MinimapViewportSpec } from './oncoprintminimapview';
import OncoprintHeaderView from './oncoprintheaderview';
export declare type InitParams = {
init_cell_width?: number;
init_cell_padding?: number;
cell_padding_off_cell_width_threshold?: number;
init_horz_zoom?: number;
init_vert_zoom?: number;
init_track_group_padding?: number;
init_cell_padding_on?: boolean;
max_height?: number;
};
export declare type HorzZoomCallback = (zoom: number) => void;
export declare type MinimapCloseCallback = () => void;
export declare type CellMouseOverCallback = (uid: ColumnId | null, track_id?: TrackId) => void;
export declare type CellClickCallback = (uid: ColumnId | null, track_id?: TrackId) => void;
export declare type ClipboardChangeCallback = (ids: ColumnId[]) => void;
export default class Oncoprint {
private ctr_selector;
private width;
private lastSortId;
private incrementLastSortId;
destroyed: boolean;
webgl_unavailable: boolean;
private $ctr;
private $oncoprint_ctr;
private $cell_div;
private $header_div;
private $legend_div;
private $track_options_div;
private $track_info_div;
private $dummy_scroll_div;
private $minimap_div;
private $cell_canvas;
private $cell_overlay_canvas;
model: OncoprintModel;
header_view: OncoprintHeaderView;
cell_view: OncoprintWebGLCellView;
minimap_view: OncoprintMinimapView;
track_options_view: OncoprintTrackOptionsView;
track_info_view: OncoprintTrackInfoView;
label_view: OncoprintLabelView;
legend_view: OncoprintLegendView;
private keep_horz_zoomed_to_fit;
private keep_horz_zoomed_to_fit_ids;
private pending_resize_and_organize;
private horz_zoom_callbacks;
private minimap_close_callbacks;
private cell_mouse_over_callbacks;
private cell_click_callbacks;
private id_clipboard;
private clipboard_change_callbacks;
private target_dummy_scroll_left;
private target_dummy_scroll_top;
private getCellViewHeight;
constructor(ctr_selector: string, width: number, params?: InitParams);
private _SetLegendTop;
private setLegendTopAfterTimeout;
private setHeight;
private resizeAndOrganize;
private resizeAndOrganizeAfterTimeout;
private maxOncoprintScrollLeft;
private maxOncoprintScrollTop;
private maxDummyScrollDivScroll;
setMinimapVisible(visible: boolean): void;
scrollTo(left: number): void;
onHorzZoom(callback: HorzZoomCallback): void;
onMinimapClose(callback: MinimapCloseCallback): void;
moveTrack(target_track: TrackId, new_previous_track: TrackId): void;
setTrackGroupOrder(index: TrackGroupIndex, track_order: TrackId[], dont_sort?: boolean): void;
setTrackGroupLegendOrder(group_order: TrackGroupIndex[]): void;
keepSorted(keep_sorted?: boolean): void;
addTracks(params_list: UserTrackSpec<Datum>[]): number[];
removeTrack(track_id: TrackId): void;
removeTracks(track_ids: TrackId[]): void;
getTracks(): number[];
removeAllTracks(): void;
removeExpansionTracksFor(track_id: TrackId): void;
disableTrackExpansion(track_id: TrackId): void;
enableTrackExpansion(track_id: TrackId): void;
removeAllExpansionTracksInGroup(index: TrackGroupIndex): void;
setHorzZoomToFit(ids: ColumnId[]): void;
updateHorzZoomToFitIds(ids: ColumnId[]): void;
private updateHorzZoomToFit;
private getHorzZoomToFit;
private executeHorzZoomCallbacks;
private executeMinimapCloseCallbacks;
private doCellMouseOver;
private doCellClick;
getHorzZoom(): number;
setHorzZoomCentered(z: number): void;
setHorzZoom(z: number, still_keep_horz_zoomed_to_fit?: boolean): number;
getVertZoom(): number;
setVertZoom(z: number): number;
private doSetScroll;
private setDummyScrollDivScroll;
setScroll(scroll_left: number, scroll_top: number): void;
setZoom(zoom_x: number, zoom_y: number): void;
setHorzScroll(s: number): number;
setVertScroll(s: number): number;
setViewport(vp: MinimapViewportSpec): void;
getTrackData(track_id: TrackId): any[];
getTrackDataIdKey(track_id: TrackId): string;
/**
* Sets the data for an Oncoprint track.
*
* @param track_id - the ID that identifies the track
* @param {Object[]} data - the list of data for the cells
* @param {string} data_id_key - name of the property of the
* data objects to use as the (column) key
*/
setTrackData(track_id: TrackId, data: Datum[], data_id_key: string & keyof Datum): void;
setTrackImportantIds(track_id: TrackId, ids: ColumnId[] | undefined): void;
setTrackGroupSortPriority(priority: TrackGroupIndex[]): void;
resetSortableTracksSortDirection(): void;
setTrackSortDirection(track_id: TrackId, dir: TrackSortDirection): TrackSortDirection;
setTrackSortComparator(track_id: TrackId, sortCmpFn: TrackSortSpecification<Datum>): void;
getTrackSortDirection(track_id: TrackId): TrackSortDirection;
setTrackInfo(track_id: TrackId, msg: string): void;
setTrackTooltipFn(track_id: TrackId, tooltipFn: TrackTooltipFn<Datum>): void;
setShowTrackSublabels(show: boolean): void;
setTrackShowGaps(track_id: TrackId, gap_mode: GAP_MODE_ENUM): void;
sort(): void;
shareRuleSet(source_track_id: TrackId, target_track_id: TrackId): void;
setRuleSet(track_id: TrackId, rule_set_params: RuleSetParams): void;
setSortConfig(params: SortConfig): void;
setIdOrder(ids: ColumnId[]): void;
setTrackGroupHeader(index: TrackGroupIndex, header?: TrackGroupHeader): void;
disableInteraction(): void;
enableInteraction(): void;
suppressRendering(): void;
releaseRendering(onComplete?: () => void): void;
triggerPendingResizeAndOrganize(onComplete?: () => void): void;
hideIds(to_hide: ColumnId[], show_others?: boolean): void;
hideTrackLegends(track_ids: TrackId[]): void;
showTrackLegends(track_ids: TrackId[]): void;
setCellPaddingOn(cell_padding_on: boolean): void;
setTrackCustomOptions(track_id: TrackId, options: CustomTrackOption[] | undefined): void;
setTrackInfoTooltip(track_id: TrackId, $tooltip_elt: JQuery | undefined): void;
setTrackMovable(track_id: TrackId, movable: boolean): void;
setWidth(width: number): void;
setColumnLabels(labels: ColumnProp<ColumnLabel>): void;
setShowTrackLabels(s: boolean): void;
onCellMouseOver(callback: CellMouseOverCallback): void;
onCellClick(callback: CellClickCallback): void;
toSVG(with_background?: boolean): SVGSVGElement;
toCanvas(callback: (canvas: HTMLCanvasElement, truncated: boolean) => void, resolution?: number): HTMLImageElement;
toDataUrl(callback: (dataURL: string) => void): void;
highlightTrackLabelOnly(track_id: TrackId): void;
setHighlightedTracks(track_ids: TrackId[]): void;
setHighlightedIds(ids: ColumnId[]): void;
getIdOrder(all?: boolean): string[];
setIdClipboardContents(array: ColumnId[]): void;
getIdClipboardContents(): string[];
onClipboardChange(callback: ClipboardChangeCallback): void;
destroy(): void;
clearMouseOverEffects(): void;
}