@ggterm/core 0.2.17 → 0.3.0
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/dist/cli-plot.js +3128 -118
- package/dist/cli.js +2287 -23
- package/dist/geoms/biplot.d.ts +35 -0
- package/dist/geoms/biplot.d.ts.map +1 -0
- package/dist/geoms/bland-altman.d.ts +50 -0
- package/dist/geoms/bland-altman.d.ts.map +1 -0
- package/dist/geoms/control.d.ts +118 -0
- package/dist/geoms/control.d.ts.map +1 -0
- package/dist/geoms/dendrogram.d.ts +74 -0
- package/dist/geoms/dendrogram.d.ts.map +1 -0
- package/dist/geoms/ecdf.d.ts +66 -0
- package/dist/geoms/ecdf.d.ts.map +1 -0
- package/dist/geoms/forest.d.ts +45 -0
- package/dist/geoms/forest.d.ts.map +1 -0
- package/dist/geoms/funnel.d.ts +78 -0
- package/dist/geoms/funnel.d.ts.map +1 -0
- package/dist/geoms/heatmap.d.ts +34 -0
- package/dist/geoms/heatmap.d.ts.map +1 -0
- package/dist/geoms/index.d.ts +15 -1
- package/dist/geoms/index.d.ts.map +1 -1
- package/dist/geoms/kaplan-meier.d.ts +39 -0
- package/dist/geoms/kaplan-meier.d.ts.map +1 -0
- package/dist/geoms/ma.d.ts +77 -0
- package/dist/geoms/ma.d.ts.map +1 -0
- package/dist/geoms/manhattan.d.ts +29 -0
- package/dist/geoms/manhattan.d.ts.map +1 -0
- package/dist/geoms/qq.d.ts +51 -59
- package/dist/geoms/qq.d.ts.map +1 -1
- package/dist/geoms/roc.d.ts +44 -0
- package/dist/geoms/roc.d.ts.map +1 -0
- package/dist/geoms/scree.d.ts +97 -0
- package/dist/geoms/scree.d.ts.map +1 -0
- package/dist/geoms/upset.d.ts +63 -0
- package/dist/geoms/upset.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2315 -25
- package/dist/pipeline/pipeline.d.ts.map +1 -1
- package/dist/pipeline/render-geoms.d.ts +4 -0
- package/dist/pipeline/render-geoms.d.ts.map +1 -1
- package/dist/serve.d.ts +8 -0
- package/dist/serve.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* geom_ma - MA plot for differential expression analysis
|
|
3
|
+
*
|
|
4
|
+
* Visualizes log fold change (M) vs average expression (A), commonly used
|
|
5
|
+
* alongside volcano plots in genomics. Shows intensity-dependent expression
|
|
6
|
+
* changes and helps identify biases in differential expression data.
|
|
7
|
+
*
|
|
8
|
+
* M = log2(fold change) = log2(condition1) - log2(condition2)
|
|
9
|
+
* A = average expression = (log2(condition1) + log2(condition2)) / 2
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Basic MA plot
|
|
14
|
+
* gg(deResults)
|
|
15
|
+
* .aes({ x: 'baseMean', y: 'log2FoldChange', label: 'gene' })
|
|
16
|
+
* .geom(geom_ma())
|
|
17
|
+
*
|
|
18
|
+
* // With custom thresholds and labels
|
|
19
|
+
* gg(deResults)
|
|
20
|
+
* .aes({ x: 'avgExpr', y: 'log2FC', label: 'symbol' })
|
|
21
|
+
* .geom(geom_ma({
|
|
22
|
+
* fc_threshold: 1.5,
|
|
23
|
+
* p_col: 'padj',
|
|
24
|
+
* p_threshold: 0.01,
|
|
25
|
+
* n_labels: 10,
|
|
26
|
+
* }))
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import type { Geom } from '../types';
|
|
30
|
+
export interface MAOptions {
|
|
31
|
+
/** Log2 fold change threshold for coloring (default: 1, meaning 2-fold) */
|
|
32
|
+
fc_threshold?: number;
|
|
33
|
+
/** P-value threshold for significance coloring (default: 0.05) */
|
|
34
|
+
p_threshold?: number;
|
|
35
|
+
/** Column name containing p-values for significance (default: uses fc_threshold only) */
|
|
36
|
+
p_col?: string;
|
|
37
|
+
/** Whether x-axis (A) is already log2 transformed (default: false, will transform) */
|
|
38
|
+
x_is_log2?: boolean;
|
|
39
|
+
/** Color for up-regulated points (default: '#e41a1c' - red) */
|
|
40
|
+
up_color?: string;
|
|
41
|
+
/** Color for down-regulated points (default: '#377eb8' - blue) */
|
|
42
|
+
down_color?: string;
|
|
43
|
+
/** Color for non-significant points (default: '#999999' - gray) */
|
|
44
|
+
ns_color?: string;
|
|
45
|
+
/** Show M=0 baseline (default: true) */
|
|
46
|
+
show_baseline?: boolean;
|
|
47
|
+
/** Show fold change threshold lines (default: true) */
|
|
48
|
+
show_thresholds?: boolean;
|
|
49
|
+
/** Line type for reference lines (default: 'dashed') */
|
|
50
|
+
linetype?: 'solid' | 'dashed' | 'dotted';
|
|
51
|
+
/** Number of top significant points to label (default: 0, no labels) */
|
|
52
|
+
n_labels?: number;
|
|
53
|
+
/** Point size (default: 1) */
|
|
54
|
+
size?: number;
|
|
55
|
+
/** Point opacity (default: 0.6) */
|
|
56
|
+
alpha?: number;
|
|
57
|
+
/** Point character (default: '●') */
|
|
58
|
+
point_char?: string;
|
|
59
|
+
/** Show LOESS/lowess smoothing line (default: false) */
|
|
60
|
+
show_smooth?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create an MA plot for differential expression visualization
|
|
64
|
+
*
|
|
65
|
+
* Data should contain:
|
|
66
|
+
* - x column: average expression (A) - baseMean, avgExpr, or AveExpr
|
|
67
|
+
* - y column: log2 fold change (M) - log2FoldChange, log2FC, or logFC
|
|
68
|
+
* - label column (optional): gene names for labeling top hits
|
|
69
|
+
* - p-value column (optional): for significance-based coloring
|
|
70
|
+
*
|
|
71
|
+
* Points are classified as:
|
|
72
|
+
* - Up-regulated: M > fc_threshold (AND p < p_threshold if p_col specified)
|
|
73
|
+
* - Down-regulated: M < -fc_threshold (AND p < p_threshold if p_col specified)
|
|
74
|
+
* - Not significant: everything else
|
|
75
|
+
*/
|
|
76
|
+
export declare function geom_ma(options?: MAOptions): Geom;
|
|
77
|
+
//# sourceMappingURL=ma.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ma.d.ts","sourceRoot":"","sources":["../../src/geoms/ma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wCAAwC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,uDAAuD;IACvD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACxC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,SAAc,GAAG,IAAI,CAuBrD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manhattan Plot Geometry
|
|
3
|
+
*
|
|
4
|
+
* Visualizes GWAS (Genome-Wide Association Study) results with genomic position
|
|
5
|
+
* on the x-axis and -log10(p-value) on the y-axis. Points are colored by chromosome
|
|
6
|
+
* and significant associations are highlighted.
|
|
7
|
+
*/
|
|
8
|
+
import type { Geom } from '../types';
|
|
9
|
+
export interface ManhattanOptions {
|
|
10
|
+
suggestive_threshold?: number;
|
|
11
|
+
genome_wide_threshold?: number;
|
|
12
|
+
chr_col?: string;
|
|
13
|
+
pos_col?: string;
|
|
14
|
+
p_col?: string;
|
|
15
|
+
y_is_neglog10?: boolean;
|
|
16
|
+
chr_colors?: string[];
|
|
17
|
+
highlight_color?: string;
|
|
18
|
+
suggestive_color?: string;
|
|
19
|
+
show_thresholds?: boolean;
|
|
20
|
+
threshold_linetype?: string;
|
|
21
|
+
n_labels?: number;
|
|
22
|
+
label_col?: string;
|
|
23
|
+
size?: number;
|
|
24
|
+
alpha?: number;
|
|
25
|
+
point_char?: string;
|
|
26
|
+
chr_gap?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function geom_manhattan(options?: ManhattanOptions): Geom;
|
|
29
|
+
//# sourceMappingURL=manhattan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manhattan.d.ts","sourceRoot":"","sources":["../../src/geoms/manhattan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,gBAAgB;IAE/B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAG9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAGzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAGlB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAKD,wBAAgB,cAAc,CAAC,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAyBnE"}
|
package/dist/geoms/qq.d.ts
CHANGED
|
@@ -1,75 +1,67 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Q-Q Plot Geometry
|
|
3
3
|
*
|
|
4
|
-
* Creates
|
|
5
|
-
*
|
|
4
|
+
* Creates quantile-quantile plots for comparing data distributions
|
|
5
|
+
* against theoretical distributions or other samples.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
|
-
*
|
|
9
|
-
* // Basic Q-Q plot to check normality
|
|
8
|
+
* // Basic Q-Q plot against normal distribution
|
|
10
9
|
* gg(data)
|
|
11
|
-
* .aes({
|
|
10
|
+
* .aes({ sample: 'values' })
|
|
12
11
|
* .geom(geom_qq())
|
|
13
|
-
* .geom(geom_qq_line())
|
|
14
12
|
*
|
|
15
|
-
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Q-Q plot with reference line
|
|
16
15
|
* gg(data)
|
|
17
|
-
* .aes({
|
|
18
|
-
* .geom(geom_qq({
|
|
19
|
-
*
|
|
16
|
+
* .aes({ sample: 'values' })
|
|
17
|
+
* .geom(geom_qq({ show_line: true }))
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Q-Q plot with confidence band
|
|
21
|
+
* gg(data)
|
|
22
|
+
* .aes({ sample: 'values' })
|
|
23
|
+
* .geom(geom_qq({ show_ci: true, conf_level: 0.95 }))
|
|
20
24
|
*/
|
|
21
25
|
import type { Geom } from '../types';
|
|
22
26
|
export interface QQOptions {
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Distribution to compare against
|
|
29
|
+
* @default 'normal'
|
|
30
|
+
*/
|
|
31
|
+
distribution?: 'normal' | 'uniform' | 'exponential';
|
|
32
|
+
/**
|
|
33
|
+
* Show reference line (y = x for perfect fit)
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
show_line?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Show confidence band around reference line
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
show_ci?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Confidence level for CI band
|
|
44
|
+
* @default 0.95
|
|
45
|
+
*/
|
|
46
|
+
conf_level?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Line color for reference line
|
|
49
|
+
* @default '#ff0000'
|
|
50
|
+
*/
|
|
51
|
+
line_color?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Point character
|
|
54
|
+
* @default '●'
|
|
55
|
+
*/
|
|
56
|
+
point_char?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Use standardized residuals
|
|
59
|
+
* @default true
|
|
60
|
+
*/
|
|
61
|
+
standardize?: boolean;
|
|
55
62
|
}
|
|
56
63
|
/**
|
|
57
|
-
* Q-Q plot
|
|
58
|
-
*
|
|
59
|
-
* Plots sample quantiles against theoretical quantiles.
|
|
60
|
-
* If the points fall approximately on the diagonal reference line,
|
|
61
|
-
* the data follows the reference distribution.
|
|
62
|
-
*
|
|
63
|
-
* The x aesthetic should be the variable to test.
|
|
64
|
-
* Output uses x = theoretical quantile, y = sample quantile.
|
|
64
|
+
* Create a Q-Q plot geometry
|
|
65
65
|
*/
|
|
66
66
|
export declare function geom_qq(options?: QQOptions): Geom;
|
|
67
|
-
/**
|
|
68
|
-
* Q-Q plot reference line
|
|
69
|
-
*
|
|
70
|
-
* Draws a line through the first and third quartiles of the
|
|
71
|
-
* theoretical vs sample distribution. Points should fall on
|
|
72
|
-
* this line if the data follows the reference distribution.
|
|
73
|
-
*/
|
|
74
|
-
export declare function geom_qq_line(options?: QQLineOptions): Geom;
|
|
75
67
|
//# sourceMappingURL=qq.d.ts.map
|
package/dist/geoms/qq.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qq.d.ts","sourceRoot":"","sources":["../../src/geoms/qq.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"qq.d.ts","sourceRoot":"","sources":["../../src/geoms/qq.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IAEpD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,SAAc,GAAG,IAAI,CAerD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ROC Curve Geom
|
|
3
|
+
*
|
|
4
|
+
* Creates Receiver Operating Characteristic curves for classifier evaluation.
|
|
5
|
+
* Plots sensitivity (true positive rate) vs 1-specificity (false positive rate).
|
|
6
|
+
*
|
|
7
|
+
* Expected data format:
|
|
8
|
+
* - fpr: False positive rate (1 - specificity), or x values
|
|
9
|
+
* - tpr: True positive rate (sensitivity), or y values
|
|
10
|
+
* - threshold (optional): Classification thresholds
|
|
11
|
+
* - model (optional): Model identifier for comparing multiple classifiers
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* gg(rocData)
|
|
16
|
+
* .aes({ x: 'fpr', y: 'tpr', color: 'model' })
|
|
17
|
+
* .geom(geom_roc({ show_auc: true, show_diagonal: true }))
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import type { Geom } from '../types';
|
|
21
|
+
export interface RocOptions {
|
|
22
|
+
/** Show diagonal reference line (random classifier) (default: true) */
|
|
23
|
+
show_diagonal?: boolean;
|
|
24
|
+
/** Color for diagonal line (default: '#888888') */
|
|
25
|
+
diagonal_color?: string;
|
|
26
|
+
/** Line style for diagonal (default: 'dashed') */
|
|
27
|
+
diagonal_type?: 'solid' | 'dashed' | 'dotted';
|
|
28
|
+
/** Show AUC value in legend/annotation (default: true) */
|
|
29
|
+
show_auc?: boolean;
|
|
30
|
+
/** Show optimal threshold point (Youden's J) (default: false) */
|
|
31
|
+
show_optimal?: boolean;
|
|
32
|
+
/** Character for optimal point (default: '●') */
|
|
33
|
+
optimal_char?: string;
|
|
34
|
+
/** Show confidence band (default: false) */
|
|
35
|
+
show_ci?: boolean;
|
|
36
|
+
/** Confidence level (default: 0.95) */
|
|
37
|
+
conf_level?: number;
|
|
38
|
+
/** Fill area under curve (default: false) */
|
|
39
|
+
fill_auc?: boolean;
|
|
40
|
+
/** Fill opacity (default: 0.3) */
|
|
41
|
+
fill_alpha?: number;
|
|
42
|
+
}
|
|
43
|
+
export declare function geom_roc(options?: RocOptions): Geom;
|
|
44
|
+
//# sourceMappingURL=roc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roc.d.ts","sourceRoot":"","sources":["../../src/geoms/roc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC7C,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,IAAI,CAkBvD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scree Plot Geometry
|
|
3
|
+
*
|
|
4
|
+
* Creates scree plots for PCA/factor analysis showing variance
|
|
5
|
+
* explained by each component.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* // Basic scree plot
|
|
9
|
+
* gg(data)
|
|
10
|
+
* .aes({ x: 'component', y: 'variance' })
|
|
11
|
+
* .geom(geom_scree())
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Scree plot with cumulative variance
|
|
15
|
+
* gg(data)
|
|
16
|
+
* .aes({ x: 'component', y: 'variance' })
|
|
17
|
+
* .geom(geom_scree({ show_cumulative: true }))
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Scree plot with Kaiser criterion line
|
|
21
|
+
* gg(data)
|
|
22
|
+
* .aes({ x: 'component', y: 'eigenvalue' })
|
|
23
|
+
* .geom(geom_scree({ show_kaiser: true }))
|
|
24
|
+
*/
|
|
25
|
+
import type { Geom } from '../types';
|
|
26
|
+
export interface ScreeOptions {
|
|
27
|
+
/**
|
|
28
|
+
* Show cumulative variance line
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
show_cumulative?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Show Kaiser criterion line (eigenvalue = 1)
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
show_kaiser?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Show elbow point
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
show_elbow?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Show broken stick model line
|
|
44
|
+
* @default false
|
|
45
|
+
*/
|
|
46
|
+
show_broken_stick?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Connect points with lines
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
connect_points?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Show bars instead of/in addition to points
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
show_bars?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Point character
|
|
59
|
+
* @default '●'
|
|
60
|
+
*/
|
|
61
|
+
point_char?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Color for main line/points
|
|
64
|
+
* @default undefined (uses default palette)
|
|
65
|
+
*/
|
|
66
|
+
color?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Color for cumulative line
|
|
69
|
+
* @default '#ff0000'
|
|
70
|
+
*/
|
|
71
|
+
cumulative_color?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Color for Kaiser line
|
|
74
|
+
* @default '#888888'
|
|
75
|
+
*/
|
|
76
|
+
kaiser_color?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Y-axis as percentage (0-100) or proportion (0-1)
|
|
79
|
+
* @default 'percentage'
|
|
80
|
+
*/
|
|
81
|
+
y_format?: 'percentage' | 'proportion' | 'eigenvalue';
|
|
82
|
+
/**
|
|
83
|
+
* Threshold line for variance explained (e.g., 0.8 for 80%)
|
|
84
|
+
* @default undefined
|
|
85
|
+
*/
|
|
86
|
+
threshold?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Color for threshold line
|
|
89
|
+
* @default '#00aa00'
|
|
90
|
+
*/
|
|
91
|
+
threshold_color?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Create a scree plot geometry
|
|
95
|
+
*/
|
|
96
|
+
export declare function geom_scree(options?: ScreeOptions): Geom;
|
|
97
|
+
//# sourceMappingURL=scree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scree.d.ts","sourceRoot":"","sources":["../../src/geoms/scree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;IAEtD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,YAAiB,GAAG,IAAI,CAqB3D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UpSet Plot Geom
|
|
3
|
+
*
|
|
4
|
+
* Modern set intersection visualization, superior to Venn diagrams for >3 sets.
|
|
5
|
+
* Shows:
|
|
6
|
+
* - Matrix of set memberships (dots connected by lines)
|
|
7
|
+
* - Bar chart of intersection sizes
|
|
8
|
+
* - Optional set size bars
|
|
9
|
+
*
|
|
10
|
+
* Data format options:
|
|
11
|
+
* 1. Binary matrix: columns are sets, rows are elements (1 = member, 0 = not)
|
|
12
|
+
* 2. List format: 'sets' column with comma-separated set names
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Binary matrix format
|
|
16
|
+
* const data = [
|
|
17
|
+
* { A: 1, B: 1, C: 0 },
|
|
18
|
+
* { A: 1, B: 0, C: 0 },
|
|
19
|
+
* { A: 0, B: 1, C: 1 },
|
|
20
|
+
* ]
|
|
21
|
+
* gg(data).geom(geom_upset({ sets: ['A', 'B', 'C'] }))
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // List format
|
|
25
|
+
* const data = [
|
|
26
|
+
* { element: 'gene1', sets: 'A,B' },
|
|
27
|
+
* { element: 'gene2', sets: 'A' },
|
|
28
|
+
* { element: 'gene3', sets: 'B,C' },
|
|
29
|
+
* ]
|
|
30
|
+
* gg(data).aes({ x: 'sets' }).geom(geom_upset())
|
|
31
|
+
*/
|
|
32
|
+
import type { Geom } from '../types';
|
|
33
|
+
export interface UpsetOptions {
|
|
34
|
+
/** Set names for binary matrix format */
|
|
35
|
+
sets?: string[];
|
|
36
|
+
/** Minimum intersection size to display */
|
|
37
|
+
min_size?: number;
|
|
38
|
+
/** Maximum number of intersections to show */
|
|
39
|
+
max_intersections?: number;
|
|
40
|
+
/** Sort intersections by: 'size' (default), 'degree', 'sets' */
|
|
41
|
+
sort_by?: 'size' | 'degree' | 'sets';
|
|
42
|
+
/** Sort order */
|
|
43
|
+
sort_order?: 'desc' | 'asc';
|
|
44
|
+
/** Show set size bars on the left */
|
|
45
|
+
show_set_sizes?: boolean;
|
|
46
|
+
/** Character for filled dots in matrix */
|
|
47
|
+
dot_char?: string;
|
|
48
|
+
/** Character for empty positions in matrix */
|
|
49
|
+
empty_char?: string;
|
|
50
|
+
/** Character for connecting lines in matrix */
|
|
51
|
+
line_char?: string;
|
|
52
|
+
/** Bar character for intersection sizes */
|
|
53
|
+
bar_char?: string;
|
|
54
|
+
/** Color for dots and bars */
|
|
55
|
+
color?: string;
|
|
56
|
+
/** Show intersection degree (number of sets) */
|
|
57
|
+
show_degree?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create an UpSet plot geom for visualizing set intersections
|
|
61
|
+
*/
|
|
62
|
+
export declare function geom_upset(options?: UpsetOptions): Geom;
|
|
63
|
+
//# sourceMappingURL=upset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upset.d.ts","sourceRoot":"","sources":["../../src/geoms/upset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IACpC,iBAAiB;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC3B,qCAAqC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,YAAiB,GAAG,IAAI,CAoB3D"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ export type { AestheticMapping, Canvas, CanvasCell, ComputedPoint, Coord, DataRe
|
|
|
9
9
|
export { TerminalCanvas, createCanvas, DEFAULT_FG, DEFAULT_BG } from './canvas';
|
|
10
10
|
export { renderToCanvas, renderToString, calculateLayout, buildScaleContext, inferContinuousDomain, inferDiscreteDomain, } from './pipeline';
|
|
11
11
|
export type { PlotLayout, ResolvedScale, ScaleContext } from './pipeline';
|
|
12
|
-
export { geom_point, geom_line, geom_path, geom_hline, geom_vline, geom_bar, geom_col, geom_text, geom_label, geom_area, geom_ribbon, geom_histogram, geom_density, geom_boxplot, geom_segment, geom_curve, geom_smooth, geom_step, geom_rug, geom_violin, geom_tile, geom_raster, geom_bin2d, geom_contour, geom_contour_filled, geom_density_2d, geom_errorbar, geom_errorbarh, geom_crossbar, geom_linerange, geom_pointrange, geom_rect, geom_abline, geom_qq,
|
|
13
|
-
export type { PathOptions, RugOptions, SmoothOptions, StepOptions, ViolinOptions, TileOptions, Bin2dOptions, ContourOptions, ErrorbarOptions, RectOptions, AblineOptions, QQOptions,
|
|
12
|
+
export { geom_point, geom_line, geom_path, geom_hline, geom_vline, geom_bar, geom_col, geom_text, geom_label, geom_area, geom_ribbon, geom_histogram, geom_density, geom_boxplot, geom_segment, geom_curve, geom_smooth, geom_step, geom_rug, geom_violin, geom_tile, geom_raster, geom_bin2d, geom_contour, geom_contour_filled, geom_density_2d, geom_errorbar, geom_errorbarh, geom_crossbar, geom_linerange, geom_pointrange, geom_rect, geom_abline, geom_qq, geom_freqpoly, geom_ridgeline, geom_joy, geom_beeswarm, geom_quasirandom, geom_dumbbell, geom_lollipop, geom_waffle, geom_sparkline, geom_bullet, geom_braille, SPARK_BARS, SPARK_DOTS, BRAILLE_BASE, BRAILLE_DOTS, geom_calendar, geom_flame, geom_icicle, geom_corrmat, geom_sankey, geom_treemap, geom_volcano, geom_ma, geom_manhattan, geom_heatmap, geom_biplot, geom_kaplan_meier, geom_forest, geom_roc, geom_bland_altman, geom_ecdf, geom_funnel, geom_control, geom_scree, geom_upset, geom_dendrogram, } from './geoms';
|
|
13
|
+
export type { PathOptions, RugOptions, SmoothOptions, StepOptions, ViolinOptions, TileOptions, Bin2dOptions, ContourOptions, ErrorbarOptions, RectOptions, AblineOptions, QQOptions, FreqpolyOptions, DensityOptions, RidgelineOptions, BeeswarmOptions, DumbbellOptions, LollipopOptions, WaffleOptions, SparklineOptions, BulletOptions, BrailleOptions, CalendarOptions, FlameOptions, CorrmatOptions, SankeyOptions, TreemapOptions, VolcanoOptions, MAOptions, ManhattanOptions, HeatmapOptions, BiplotOptions, KaplanMeierOptions, ForestOptions, RocOptions, BlandAltmanOptions, ECDFOptions, FunnelOptions, ControlOptions, ScreeOptions, UpsetOptions, DendrogramOptions, } from './geoms';
|
|
14
14
|
export { position_identity, position_dodge, position_stack, position_fill, position_jitter, applyPositionAdjustment, isStackPosition, isDodgePosition, getPositionType, } from './positions';
|
|
15
15
|
export type { Position, AdjustedPoint, DodgeOptions, JitterOptions, StackOptions, FillOptions, } from './positions';
|
|
16
16
|
export { stat_bin, stat_bin2d, stat_boxplot, stat_density, stat_smooth, stat_summary, stat_qq, stat_qq_line, computeBins, computeBins2d, computeBoxplotStats, computeDensity, computeSmooth, computeSummary, computeQQ, computeQQLine, stat_beeswarm, computeBeeswarm, } from './stats';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGtC,YAAY,EACV,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,aAAa,EACb,KAAK,EACL,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,GACN,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG/E,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzE,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EAER,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,SAAS,EACT,WAAW,EAEX,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|