UNPKG

higlass

Version:

HiGlass Hi-C / genomic / large data viewer

98 lines (97 loc) 4.04 kB
export default DenseDataExtrema2D; export type View2D = { get: (i: number, j: number) => number; set: (i: number, j: number, v: number) => void; }; /** * @typedef View2D * @property {(i: number, j: number) => number} get * @property {(i: number, j: number, v: number) => void} set */ declare class DenseDataExtrema2D { /** * This module efficiently computes extrema of subsets of a given data matrix. * The matrix is subdivided into 'numSubsets' subsets where extrema are precomputed. * These values are used to efficiently approximate extrema given arbitrary subsets. * Larger values of 'numSubsets' lead to more accurate approximations (more expensive). * * @param {ArrayLike<number>} data array of quadratic length */ constructor(data: ArrayLike<number>); /** @type {number} */ epsilon: number; /** @type {number} */ tileSize: number; /** @type {number} */ numSubsets: number; /** @type {number} */ subsetSize: number; /** @type {View2D} */ subsetMinimums: View2D; /** @type {View2D} */ subsetMaximums: View2D; /** @type {number} */ minNonZeroInTile: number; /** @type {number} */ maxNonZeroInTile: number; /** * Computes an approximation of the non-zero minimum in a subset * * @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds * @return {number} Non-zero minium of the subset */ getMinNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number; /** * Computes an approximation of the non-zero maximum in a subset * * @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds * @return {number} Non-zero maxium of the subset */ getMaxNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number; /** * Precomputes non-zero minimums of subsets of a given matrix * @param {View2D} dataMatrix * @return {View2D} Matrix containing minimums of the dataMatrix after subdivision using a regular grid */ computeSubsetNonZeroMinimums(dataMatrix: View2D): View2D; /** * Precomputes non-zero maximums of subsets of a given matrix * * @param {View2D} dataMatrix * @return {View2D} Matrix containing maximums of the dataMatrix after subdivision using a regular grid */ computeSubsetNonZeroMaximums(dataMatrix: View2D): View2D; /** * Computes the non-zero minimum of a subset of a matrix (ndarray) * @param {View2D} arr * @param {number} rowOffset - Starting row of the subset * @param {number} colOffset - Starting column of the subset * @param {number} width - Width (num columns) of the subset * @param {number} height - Height (num rows) of the subset * @return {number} Non-zeros - minimum of the subset */ getMinNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number; /** * Computes the non-zero maximum of a subset of a matrix (ndarray) * @param {View2D} arr * @param {number} rowOffset - Starting row of the subset * @param {number} colOffset - Starting column of the subset * @param {number} width - Width (num columns) of the subset * @param {number} height - Height (num rows) of the subset * @return {number} Non-zeros maximum of the subset */ getMaxNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number; mirrorPrecomputedExtrema(): void; /** * Computes the non-zero minimum in the entire data array using precomputed values * * @return {number} Non-zeros minimum of the data */ getMinNonZeroInTile(): number; /** * Computes the non-zero maximum in the entire data array using precomputed values * * @return {number} Non-zeros maximum of the data */ getMaxNonZeroInTile(): number; }