@jbrowse/bandage-core 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/index.js +1202 -694
- package/dist/types/colorSchemes.d.ts +1 -1
- package/dist/types/index.d.ts +8 -0
- package/dist/types/layout/tubeMapLayout.d.ts +3 -0
- package/dist/types/layout/walkRows.d.ts +3 -0
- package/dist/types/nodeWidths.d.ts +1 -1
- package/dist/types/pipeline.d.ts +6 -2
- package/dist/types/reference.d.ts +25 -0
- package/dist/types/renderer/GeometryBuilder.d.ts +1 -0
- package/dist/types/tubeMap/axis.d.ts +35 -0
- package/dist/types/tubeMap/coarsen.d.ts +16 -0
- package/dist/types/tubeMap/connectors.d.ts +23 -0
- package/dist/types/tubeMap/deviations.d.ts +13 -0
- package/dist/types/tubeMap/draw.d.ts +1 -0
- package/dist/types/tubeMap/frame.d.ts +1 -1
- package/dist/types/tubeMap/genes.d.ts +16 -0
- package/package.json +1 -1
|
@@ -29,5 +29,5 @@ export declare const COLOR_SCHEMES: readonly [{
|
|
|
29
29
|
}];
|
|
30
30
|
export type ColorScheme = (typeof COLOR_SCHEMES)[number]['value'];
|
|
31
31
|
export type ResolvedColorScheme = Exclude<ColorScheme, 'auto'>;
|
|
32
|
-
export declare const COLOR_SCHEME_VALUES: ("
|
|
32
|
+
export declare const COLOR_SCHEME_VALUES: ("depth" | "auto" | "uniform" | "random" | "rainbow" | "node-length" | "stable-rank" | "reference-position" | "grey")[];
|
|
33
33
|
export declare function resolveColorScheme(scheme: ColorScheme, graph: Graph | undefined): ResolvedColorScheme;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -21,6 +21,12 @@ export type { TubeMapFrame, TubeMapPicture } from './tubeMap/draw.js';
|
|
|
21
21
|
export { referenceKnots, warpX } from './tubeMap/warp.js';
|
|
22
22
|
export { tubeMapFrame, tubeMapNodeAt } from './tubeMap/frame.js';
|
|
23
23
|
export type { TubeMapTransform, TubeMapView } from './tubeMap/frame.js';
|
|
24
|
+
export { drawTubeMapRuler, referenceBoxes, rulerBoxes, tubeX, } from './tubeMap/axis.js';
|
|
25
|
+
export type { Box as TubeMapBox, ReferenceBoxes } from './tubeMap/axis.js';
|
|
26
|
+
export { drawTubeMapGenes, tubeMapGenes } from './tubeMap/genes.js';
|
|
27
|
+
export type { TubeMapGene } from './tubeMap/genes.js';
|
|
28
|
+
export { connectorAt, drawTubeMapConnectors, referenceNodes, tubeMapConnectors, } from './tubeMap/connectors.js';
|
|
29
|
+
export type { Connector, ReferenceNode } from './tubeMap/connectors.js';
|
|
24
30
|
export type { TubeMapColumn, TubeMapDrawing } from './layout/tubeMapLayout.js';
|
|
25
31
|
export { deletionEdges } from './deletionEdges.js';
|
|
26
32
|
export type { DeletionEdge } from './deletionEdges.js';
|
|
@@ -41,6 +47,8 @@ export type { BubbleGlyph, LabelLayout, LabelLayoutSource } from './labelLayout.
|
|
|
41
47
|
export { formatBp } from './graphLabels.js';
|
|
42
48
|
export { genePins } from './genes/genePins.js';
|
|
43
49
|
export type { GeneModel, GenePin } from './genes/genePins.js';
|
|
50
|
+
export { WELL_KNOWN_SAMPLES, assemblyWalk, backboneAssembly, featuresOnBackbone, graphBackbone, refNameBinding, wellKnownSample, } from './reference.js';
|
|
51
|
+
export type { AssemblyNames, Backbone, BackboneContig } from './reference.js';
|
|
44
52
|
export { LABEL_CHAR_PX, LABEL_PAD, LABEL_PX } from './overlayLabels.js';
|
|
45
53
|
export type { Graph, GraphEdge, GraphNode, LayoutResult, NodeSegment, } from './types.js';
|
|
46
54
|
export { cutWindowGFA, haplotypeWanted, referencePathQuery, referenceSamplesOf, resolveReferenceSample, } from './gbzWindow.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Coarsened } from '../tubeMap/coarsen.js';
|
|
1
2
|
import type { Graph, LayoutResult } from '../types.js';
|
|
2
3
|
import type { InputTrack, TubeMapLayout } from '@gmod/tubemap-core';
|
|
3
4
|
export interface TubeMapColumn {
|
|
@@ -11,7 +12,9 @@ export interface TubeMapDrawing {
|
|
|
11
12
|
layout: TubeMapLayout;
|
|
12
13
|
yOffset: number;
|
|
13
14
|
columns?: TubeMapColumn[];
|
|
15
|
+
coarse?: Coarsened;
|
|
14
16
|
}
|
|
17
|
+
export declare function visitStrands(graph: Graph): Map<string, ("+" | "-")[]>;
|
|
15
18
|
export declare function tubeMapTracks(graph: Graph): InputTrack[];
|
|
16
19
|
export declare function hasTubeMapPaths(graph: Graph): boolean;
|
|
17
20
|
export declare function tubeWidth(trackCount: number): number;
|
|
@@ -3,11 +3,14 @@ export interface WalkRun {
|
|
|
3
3
|
start: number;
|
|
4
4
|
bp: number;
|
|
5
5
|
onReference: boolean;
|
|
6
|
+
referenceStart?: number;
|
|
7
|
+
reversed?: true;
|
|
6
8
|
}
|
|
7
9
|
export interface WalkRow {
|
|
8
10
|
name: string;
|
|
9
11
|
label: string;
|
|
10
12
|
sample: string;
|
|
13
|
+
haplotype?: number;
|
|
11
14
|
bp: number;
|
|
12
15
|
offReferenceBp: number;
|
|
13
16
|
complete: boolean;
|
|
@@ -10,7 +10,7 @@ export declare const NODE_WIDTHS: readonly [{
|
|
|
10
10
|
readonly description: "Every node the same thickness.";
|
|
11
11
|
}];
|
|
12
12
|
export type NodeWidth = (typeof NODE_WIDTHS)[number]['value'];
|
|
13
|
-
export declare const NODE_WIDTH_VALUES: ("
|
|
13
|
+
export declare const NODE_WIDTH_VALUES: ("depth" | "uniform")[];
|
|
14
14
|
export declare function meanDepth(graph: Graph): number;
|
|
15
15
|
export declare function depthWidthFactor(node: GraphNode, mean: number): number;
|
|
16
16
|
export declare function nodeWidthPx(node: GraphNode, contigThickness: number, nodeWidth: NodeWidth, mean: number): number;
|
package/dist/types/pipeline.d.ts
CHANGED
|
@@ -54,13 +54,17 @@ export declare function clampZoom(zoom: number): number;
|
|
|
54
54
|
export declare function fittedTranslateY(bounds: {
|
|
55
55
|
minY: number;
|
|
56
56
|
h: number;
|
|
57
|
-
}, usableHeight: number, yScale: number): number;
|
|
57
|
+
}, usableHeight: number, yScale: number, padTop?: number): number;
|
|
58
58
|
export declare function fitTransform(bounds: {
|
|
59
59
|
minX: number;
|
|
60
60
|
minY: number;
|
|
61
61
|
w: number;
|
|
62
62
|
h: number;
|
|
63
|
-
}, paneWidth: number, paneHeight: number, pixelRows: boolean
|
|
63
|
+
}, paneWidth: number, paneHeight: number, pixelRows: boolean, { minScale, padLeft, padTop }?: {
|
|
64
|
+
minScale?: number | undefined;
|
|
65
|
+
padLeft?: number | undefined;
|
|
66
|
+
padTop?: number | undefined;
|
|
67
|
+
}): {
|
|
64
68
|
scale: number;
|
|
65
69
|
translateX: number;
|
|
66
70
|
translateY: number;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Graph, PathOrigin } from './types.js';
|
|
2
|
+
export interface BackboneContig {
|
|
3
|
+
refName: string;
|
|
4
|
+
contig: string;
|
|
5
|
+
start: number;
|
|
6
|
+
end: number;
|
|
7
|
+
}
|
|
8
|
+
export interface Backbone {
|
|
9
|
+
contigs: BackboneContig[];
|
|
10
|
+
prefixes: string[];
|
|
11
|
+
named: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface AssemblyNames {
|
|
14
|
+
name: string;
|
|
15
|
+
aliases?: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare const WELL_KNOWN_SAMPLES: ReadonlyMap<string, string>;
|
|
18
|
+
export declare function wellKnownSample(assemblyName: string): string | undefined;
|
|
19
|
+
export declare function graphBackbone(graph: Graph): Backbone | undefined;
|
|
20
|
+
export declare function backboneAssembly<T extends AssemblyNames>(backbone: Backbone | undefined, assemblies: T[]): T | undefined;
|
|
21
|
+
export declare function assemblyWalk(graph: Graph, assembly: AssemblyNames): PathOrigin | undefined;
|
|
22
|
+
export declare function refNameBinding(refNames: Iterable<string>): (name: string) => string | undefined;
|
|
23
|
+
export declare function featuresOnBackbone<T extends {
|
|
24
|
+
refName: string;
|
|
25
|
+
}>(features: readonly T[], backbone: Backbone): T[];
|
|
@@ -29,6 +29,7 @@ export interface BuildOptions {
|
|
|
29
29
|
}
|
|
30
30
|
export declare function hslToRgb(h: number, s: number, l: number): [number, number, number];
|
|
31
31
|
export declare const REFERENCE_RAMP_MAX_HUE = 300;
|
|
32
|
+
export declare const REFERENCE_RAMP_ALT_CSS: string;
|
|
32
33
|
export interface ReferenceRamp {
|
|
33
34
|
start: number;
|
|
34
35
|
span: number;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { TubeMapFrame } from './draw.js';
|
|
2
|
+
import type { Graph } from '../types.js';
|
|
3
|
+
import type { TubeMapLayout } from '@gmod/tubemap-core';
|
|
4
|
+
export interface Box {
|
|
5
|
+
bp0: number;
|
|
6
|
+
bp1: number;
|
|
7
|
+
x0: number;
|
|
8
|
+
x1: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function referenceBoxes(graph: Graph, layout: TubeMapLayout): Map<string, Box[]>;
|
|
11
|
+
export type ReferenceBoxes = ReturnType<typeof referenceBoxes>;
|
|
12
|
+
export declare function tubeX(boxes: readonly Box[], bp: number, isEnd?: boolean): number;
|
|
13
|
+
export declare function tubeSpan(boxes: readonly Box[], start: number, end: number): {
|
|
14
|
+
x0: number;
|
|
15
|
+
x1: number;
|
|
16
|
+
};
|
|
17
|
+
export declare function rulerBoxes(byRefName: ReferenceBoxes): Box[] | undefined;
|
|
18
|
+
export declare const ZIGZAG_PX = 4;
|
|
19
|
+
export declare const ZIGZAG_AMPLITUDE_PX = 2.5;
|
|
20
|
+
export declare function rulerInk(darkMode?: boolean): "#b0b0b8" | "#55555c";
|
|
21
|
+
export interface RulerMarks {
|
|
22
|
+
from: number;
|
|
23
|
+
to: number;
|
|
24
|
+
ticks: number[];
|
|
25
|
+
squeezed: {
|
|
26
|
+
x0: number;
|
|
27
|
+
x1: number;
|
|
28
|
+
}[];
|
|
29
|
+
labels: {
|
|
30
|
+
text: string;
|
|
31
|
+
at: number;
|
|
32
|
+
}[];
|
|
33
|
+
}
|
|
34
|
+
export declare function rulerMarks(boxes: readonly Box[], x: (tx: number) => number, width: number, measure: (text: string) => number): RulerMarks | undefined;
|
|
35
|
+
export declare function drawTubeMapRuler(ctx: CanvasRenderingContext2D, boxes: readonly Box[], frame: TubeMapFrame, top: number): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Graph } from '../types.js';
|
|
2
|
+
export interface Deviation {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
bp: number;
|
|
6
|
+
inverted?: true;
|
|
7
|
+
}
|
|
8
|
+
export type CutCause = 'variant' | 'backward' | 'inversion' | 'walk-end' | 'overlap' | 'reference-gap';
|
|
9
|
+
export interface Coarsened {
|
|
10
|
+
graph: Graph;
|
|
11
|
+
members: Map<string, string[]>;
|
|
12
|
+
coarseOf: Map<string, string>;
|
|
13
|
+
deviations: Map<string, Deviation[]>;
|
|
14
|
+
cuts: Map<number, CutCause>;
|
|
15
|
+
}
|
|
16
|
+
export declare function coarsenTubeMap(graph: Graph, sigma: number): Coarsened | undefined;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Graph } from '../types.js';
|
|
2
|
+
import type { TubeMapLayout } from '@gmod/tubemap-core';
|
|
3
|
+
export interface ReferenceNode {
|
|
4
|
+
node: string;
|
|
5
|
+
bp0: number;
|
|
6
|
+
bp1: number;
|
|
7
|
+
x0: number;
|
|
8
|
+
x1: number;
|
|
9
|
+
}
|
|
10
|
+
export interface Connector {
|
|
11
|
+
node: string;
|
|
12
|
+
top0: number;
|
|
13
|
+
top1: number;
|
|
14
|
+
bottom0: number;
|
|
15
|
+
bottom1: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function referenceNodes(graph: Graph, layout: TubeMapLayout): ReferenceNode[];
|
|
18
|
+
export declare function tubeMapConnectors(nodes: readonly ReferenceNode[], bpToScreen: (bp: number) => number, tubeToScreen: (tx: number) => number, width: number): Connector[];
|
|
19
|
+
export declare function connectorAt(connectors: readonly Connector[], zoneBottom: number, sx: number, sy: number): string | undefined;
|
|
20
|
+
export declare function drawTubeMapConnectors(ctx: CanvasRenderingContext2D, connectors: readonly Connector[], bottom: number, { highlightNode, darkMode, }: {
|
|
21
|
+
highlightNode?: string | null;
|
|
22
|
+
darkMode?: boolean;
|
|
23
|
+
}): void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Deviation } from './coarsen.js';
|
|
2
|
+
import type { TubeMapFrame } from './draw.js';
|
|
3
|
+
import type { Graph } from '../types.js';
|
|
4
|
+
import type { TubeMapLayout } from '@gmod/tubemap-core';
|
|
5
|
+
export interface DeviationMark {
|
|
6
|
+
x0: number;
|
|
7
|
+
x1: number;
|
|
8
|
+
y: number;
|
|
9
|
+
height: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function deviationMarks(graph: Graph, layout: TubeMapLayout, deviations: Map<string, Deviation[]>): DeviationMark[];
|
|
12
|
+
export declare function deviationInk(darkMode?: boolean): "rgba(255,255,255,0.9)" | "rgba(0,0,0,0.8)";
|
|
13
|
+
export declare function drawDeviationMarks(ctx: CanvasRenderingContext2D, marks: readonly DeviationMark[], { x, y, width, darkMode }: TubeMapFrame): void;
|
|
@@ -12,4 +12,4 @@ export interface TubeMapTransform {
|
|
|
12
12
|
yScale: number;
|
|
13
13
|
}
|
|
14
14
|
export declare function tubeMapFrame(drawing: TubeMapDrawing, view: TubeMapView): TubeMapTransform;
|
|
15
|
-
export declare function tubeMapNodeAt(drawing: TubeMapDrawing, { x, y }: TubeMapTransform, sx: number, sy: number): null;
|
|
15
|
+
export declare function tubeMapNodeAt(drawing: TubeMapDrawing, { x, y }: TubeMapTransform, sx: number, sy: number): string | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReferenceBoxes } from './axis.js';
|
|
2
|
+
import type { TubeMapFrame } from './draw.js';
|
|
3
|
+
import type { GeneModel } from '../genes/genePins.js';
|
|
4
|
+
export interface TubeMapGene {
|
|
5
|
+
gene: GeneModel;
|
|
6
|
+
x0: number;
|
|
7
|
+
x1: number;
|
|
8
|
+
exons: {
|
|
9
|
+
x0: number;
|
|
10
|
+
x1: number;
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
export declare function tubeMapGenes(byRefName: ReferenceBoxes, genes: readonly GeneModel[]): TubeMapGene[];
|
|
14
|
+
export declare const GENE_ROW_PX = 22;
|
|
15
|
+
export declare function tubeMapGeneRows(genes: readonly TubeMapGene[]): number;
|
|
16
|
+
export declare function drawTubeMapGenes(ctx: CanvasRenderingContext2D, genes: readonly TubeMapGene[], frame: TubeMapFrame, bottom: number, top?: number): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/bandage-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Pangenome graph layout and drawing with no host: GFA in, the Bandage force-directed engine and reference-anchored layouts, a Canvas2D renderer, hit testing and labels out",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"repository": {
|