siafun
Version:
A collection of structure induction algorithms
44 lines (43 loc) • 2.57 kB
TypeScript
interface Pattern {
p: number;
l: number;
ts: number[];
r?: number;
}
interface PatternGraph {
[key: number]: number[];
}
interface Tree<T> {
[key: number]: Array<Tree<T> | T> | T;
}
/** assumes that all occurrences of segments are of the same length! */
export declare function inferHierarchyFromPatternOccurrences(occs: number[][][]): void;
export declare function inferHierarchyFromMatrix2(matrix: number[][]): Pattern[][];
export declare function inferHierarchyFromMatrix(matrix: number[][]): Pattern[][];
/** simply takes the first of possible patterns and builds a hierarchy */
export declare function quicklyInferHierarchyFromMatrix(matrix: number[][], simplify: boolean, labels?: number[]): Tree<number>;
export declare function keepNBestSegments(matrix: number[][], n: number): number[][];
export declare function getTransitiveMatrix(matrix: number[][], simplify: boolean): number[][];
export declare function getFirstPatterns(matrix: number[][]): Pattern[];
export declare function simplifyPatterns(patterns: Pattern[], minLength?: number): Pattern[];
export declare function subGraph(s: PatternGraph, t: PatternGraph): boolean;
export declare function toPatternGraph(s: Pattern): PatternGraph;
export declare function graphToPattern(s: PatternGraph): Pattern;
export declare function getEdges(matrix: number[][]): number[];
export declare function rateHierarchy<T>(tree: Tree<T>): number;
/** overlaps have to be removed before, and need to be sorted from longest to
shortest length */
export declare function addTransitivity(patterns: Pattern[]): Pattern[];
export declare function minDistFromParents(pattern: Pattern, parentCandidates: Pattern[]): number;
/** returns true if p1 is fully contained by p2 */
export declare function containedBy(p1: Pattern, p2: Pattern): boolean;
export declare function getDistance(p1: Pattern, p2: Pattern): number;
export declare function unpack(patterns: Pattern[]): Pattern[];
export declare function patternsToMatrix(patterns: Pattern[], size: [number, number]): number[][];
export declare function alignmentToPattern(a: number[][]): Pattern;
/** returns all possible partitions into patterns for the given alignment.
the partitions include full occurrences and initial and final residues */
export declare function alignmentToPatterns(a: number[][]): Pattern[][];
/** infers a hierarchy BOTTOM-UP from a sequence of numbers representing types */
export declare function inferHierarchyFromTypeSequence(typeSequence: number[], unequalPairsOnly: boolean, log?: boolean): any[];
export {};