higlass
Version:
HiGlass Hi-C / genomic / large data viewer
98 lines (97 loc) • 4.04 kB
TypeScript
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;
}