jbrowse-plugin-gwas 1.0.4 → 1.0.6
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/CHANGELOG.md +9 -1
- package/README.md +70 -1
- package/dist/jbrowse-plugin-gwas.cjs.development.js +12 -4
- package/dist/jbrowse-plugin-gwas.cjs.development.js.map +1 -1
- package/dist/jbrowse-plugin-gwas.cjs.production.min.js +1 -1
- package/dist/jbrowse-plugin-gwas.cjs.production.min.js.map +1 -1
- package/dist/jbrowse-plugin-gwas.esm.js +12 -4
- package/dist/jbrowse-plugin-gwas.esm.js.map +1 -1
- package/dist/jbrowse-plugin-gwas.umd.development.js +12 -4
- package/dist/jbrowse-plugin-gwas.umd.development.js.map +1 -1
- package/dist/jbrowse-plugin-gwas.umd.production.min.js +1 -1
- package/dist/jbrowse-plugin-gwas.umd.production.min.js.map +1 -1
- package/package.json +1 -1
- package/src/LinearManhattanDisplay/configSchemaFactory.ts +6 -0
- package/src/LinearManhattanRenderer/LinearManhattanRenderer.ts +2 -1
- package/src/LinearManhattanRenderer/index.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
# v1.0.6
|
|
2
|
+
|
|
3
|
+
- Fix passing feature context variable to the color callback
|
|
4
|
+
|
|
5
|
+
# v1.0.5
|
|
6
|
+
|
|
7
|
+
- Fix ability to configure the renderer on the display, see sample config.json for custom coloring
|
|
8
|
+
|
|
1
9
|
# v1.0.4
|
|
2
10
|
|
|
3
|
-
Make the code always try to render (never produce the force load)
|
|
11
|
+
- Make the code always try to render (never produce the force load)
|
|
4
12
|
|
|
5
13
|
# v1.0.3
|
|
6
14
|
|
package/README.md
CHANGED
|
@@ -7,6 +7,76 @@ Plugin for displaying GWAS results such as manhattan plot renderings
|
|
|
7
7
|

|
|
8
8
|

|
|
9
9
|
|
|
10
|
+
## Data format
|
|
11
|
+
|
|
12
|
+
jbrowse-plugin-gwas will render any features with a "score". A common format is a BED-like file, perhaps with tabix added. Example with plain BED, where the score is in column 5
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
chr22 1000 5000 rs123 84.141
|
|
16
|
+
chr22 2000 6000 rs456 40.12312
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Sometimes, the file format is not a strict BED but something with just one coordinate instead of a start and end. Example with BED-like data (only one coordinate column)
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
#chrom pos rsid ref alt neg_log_pvalue beta stderr_beta alt_allele_freq
|
|
23
|
+
1 721290 rs12565286 G C 0.275233 . . .
|
|
24
|
+
1 752566 rs3094315 G A 0.0315638 . . .
|
|
25
|
+
1 775659 rs2905035 A G 0.183626 . . .
|
|
26
|
+
1 777122 rs2980319 A T 0.207258 . . .
|
|
27
|
+
1 779322 rs4040617 A G 0.0326393 . . .
|
|
28
|
+
1 780785 rs2977612 T A 0.0225965 . . .
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This file format can be indexed using tabix with something BED-like
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
tabix -0 -b 2 -s 1 -e 2 -f out.bed.gz
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The beginning (-b) and end (-e) coordinates of the features are set to the same
|
|
38
|
+
column (2), and the sequence column (-s) is 1. Also assumes zero-based
|
|
39
|
+
coordinates (-0)
|
|
40
|
+
|
|
41
|
+
Note that this is just one format that can be used for the plugin, any adapter
|
|
42
|
+
can be used that provides features with a score attribute, and it assumes the
|
|
43
|
+
score is already -log10(p) transformed (this means if your file has raw
|
|
44
|
+
p-values, you may need to modify them or add a -log10(p) to the file)
|
|
45
|
+
|
|
46
|
+
## Example config
|
|
47
|
+
|
|
48
|
+
The below config uses the "scoreColumn" attribute to set neg_log_pvalue (as
|
|
49
|
+
seen in above section) to be the score that is plotted
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"type": "FeatureTrack",
|
|
54
|
+
"trackId": "gwas_track",
|
|
55
|
+
"name": "GWAS",
|
|
56
|
+
"category": ["Annotation"],
|
|
57
|
+
"assemblyNames": ["hg19"],
|
|
58
|
+
"adapter": {
|
|
59
|
+
"type": "BedTabixAdapter",
|
|
60
|
+
"scoreColumn": "neg_log_pvalue",
|
|
61
|
+
"bedGzLocation": {
|
|
62
|
+
"uri": "https://s3.amazonaws.com/jbrowse.org/genomes/hg19/gwas/summary_stats.txt.gz"
|
|
63
|
+
},
|
|
64
|
+
"index": {
|
|
65
|
+
"location": {
|
|
66
|
+
"uri": "https://s3.amazonaws.com/jbrowse.org/genomes/hg19/gwas/summary_stats.txt.gz.tbi"
|
|
67
|
+
},
|
|
68
|
+
"indexType": "TBI"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"displays": [
|
|
72
|
+
{
|
|
73
|
+
"displayId": "gwas_display",
|
|
74
|
+
"type": "LinearManhattanDisplay"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
10
80
|
## Usage in jbrowse-web
|
|
11
81
|
|
|
12
82
|
Add to the "plugins" of your JBrowse Web config. The unpkg CDN should be stable, or you can download the js file to your server
|
|
@@ -28,7 +98,6 @@ This plugin is currently quite basic, and there is no mouseover interactivity or
|
|
|
28
98
|
|
|
29
99
|
https://jbrowse.org/code/jb2/main/index.html?config=https%3A%2F%2Funpkg.com%2Fjbrowse-plugin-gwas%2Fdist%2Fconfig.json&session=share-iehjT6AoHd&password=lZS7v
|
|
30
100
|
|
|
31
|
-
|
|
32
101
|
### For use in jbrowse/react-linear-genome-view
|
|
33
102
|
|
|
34
103
|
See [DEVELOPMENT](DEVELOPMENT.md)
|
|
@@ -329,8 +329,11 @@ function rendererFactory(pluginManager) {
|
|
|
329
329
|
_featureSpanPx2 = _slicedToArray(_featureSpanPx, 1),
|
|
330
330
|
leftPx = _featureSpanPx2[0];
|
|
331
331
|
|
|
332
|
-
var score = feature.get("score");
|
|
333
|
-
|
|
332
|
+
var score = feature.get("score"); // @ts-ignore
|
|
333
|
+
|
|
334
|
+
ctx.fillStyle = configuration.readConfObject(config, "color", {
|
|
335
|
+
feature: feature
|
|
336
|
+
});
|
|
334
337
|
ctx.beginPath();
|
|
335
338
|
ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);
|
|
336
339
|
ctx.fill();
|
|
@@ -362,7 +365,8 @@ var configSchema = /*#__PURE__*/configuration.ConfigurationSchema("LinearManhatt
|
|
|
362
365
|
color: {
|
|
363
366
|
type: "color",
|
|
364
367
|
description: "the color of the marks",
|
|
365
|
-
defaultValue: "darkblue"
|
|
368
|
+
defaultValue: "darkblue",
|
|
369
|
+
contextVariable: ["feature"]
|
|
366
370
|
}
|
|
367
371
|
}, {
|
|
368
372
|
explicitlyTyped: true
|
|
@@ -372,6 +376,7 @@ function configSchemaFactory(pluginManager) {
|
|
|
372
376
|
var LGVPlugin = pluginManager.getPlugin("LinearGenomeViewPlugin"); //@ts-ignore
|
|
373
377
|
|
|
374
378
|
var baseLinearDisplayConfigSchema = LGVPlugin.exports.baseLinearDisplayConfigSchema;
|
|
379
|
+
var LinearManhattanRendererConfigSchema = pluginManager.getRendererType("LinearManhattanRenderer").configSchema;
|
|
375
380
|
return configuration.ConfigurationSchema("LinearManhattanDisplay", {
|
|
376
381
|
autoscale: {
|
|
377
382
|
type: "stringEnum",
|
|
@@ -409,7 +414,10 @@ function configSchemaFactory(pluginManager) {
|
|
|
409
414
|
type: "stringEnum",
|
|
410
415
|
model: mobxStateTree.types.enumeration("Rendering", ["density", "xyplot", "line"]),
|
|
411
416
|
defaultValue: "xyplot"
|
|
412
|
-
}
|
|
417
|
+
},
|
|
418
|
+
renderers: configuration.ConfigurationSchema("RenderersConfiguration", {
|
|
419
|
+
LinearManhattanRenderer: LinearManhattanRendererConfigSchema
|
|
420
|
+
})
|
|
413
421
|
}, {
|
|
414
422
|
baseConfiguration: baseLinearDisplayConfigSchema,
|
|
415
423
|
explicitlyTyped: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jbrowse-plugin-gwas.cjs.development.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n ctx.fillStyle = readConfObject(config, \"color\", [feature]);\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","export { default } from \"./LinearManhattanRenderer\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n"],"names":["rendererFactory","pluginManager","WigglePlugin","getPlugin","exports","getScale","utils","WiggleBaseRenderer","ctx","props","features","regions","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","featureSpanPx","leftPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","configSchema","ConfigurationSchema","color","type","description","defaultValue","explicitlyTyped","configSchemaFactory","LGVPlugin","baseLinearDisplayConfigSchema","autoscale","model","types","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","baseConfiguration","stateModelFactory","lib","linearWiggleDisplayModelFactory","compose","literal","views","rendererTypeName","needsScalebar","regionTooLarge","AlignmentsPlugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","ManhattanRenderer","rendererConfigSchema","Plugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jbrowse-plugin-gwas.cjs.development.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n // @ts-ignore\n ctx.fillStyle = readConfObject(config, \"color\", { feature });\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","import { ConfigurationSchema } from \"@jbrowse/core/configuration\";\nexport { default } from \"./LinearManhattanRenderer\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n contextVariable: [\"feature\"],\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n const LinearManhattanRendererConfigSchema = pluginManager.getRendererType(\n \"LinearManhattanRenderer\",\n ).configSchema;\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n renderers: ConfigurationSchema(\"RenderersConfiguration\", {\n LinearManhattanRenderer: LinearManhattanRendererConfigSchema,\n }),\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n"],"names":["rendererFactory","pluginManager","WigglePlugin","getPlugin","exports","getScale","utils","WiggleBaseRenderer","ctx","props","features","regions","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","featureSpanPx","leftPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","configSchema","ConfigurationSchema","color","type","description","defaultValue","contextVariable","explicitlyTyped","configSchemaFactory","LGVPlugin","baseLinearDisplayConfigSchema","LinearManhattanRendererConfigSchema","getRendererType","autoscale","model","types","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","renderers","LinearManhattanRenderer","baseConfiguration","stateModelFactory","lib","linearWiggleDisplayModelFactory","compose","literal","views","rendererTypeName","needsScalebar","regionTooLarge","AlignmentsPlugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","ManhattanRenderer","rendererConfigSchema","Plugin"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@jbrowse/core/Plugin")),r=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),n=require("@jbrowse/core/configuration"),o=require("@jbrowse/core/util"),a=require("mobx-state-tree");function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,r){return t&&u(e.prototype,t),r&&u(e,r),e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@jbrowse/core/Plugin")),r=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),n=require("@jbrowse/core/configuration"),o=require("@jbrowse/core/util"),a=require("mobx-state-tree");function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,r){return t&&u(e.prototype,t),r&&u(e,r),e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=y(e);if(t){var o=y(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return d(this,r)}}function b(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}}(e,t)||m(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"==typeof e)return h(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function v(e){var t=e.getPlugin("WigglePlugin").exports,r=t.utils.getScale;return function(e){p(a,e);var t=g(a);function a(){return i(this,a),t.apply(this,arguments)}return l(a,[{key:"draw",value:function(e,t){var a,i=t.features,u=t.bpPerPx,l=t.config,c=t.scaleOpts,f=t.height,p=t.displayCrossHatches,y=t.ticks.values,d=b(t.regions,1)[0],g=f-10,h=s(s({},c),{},{range:[0,g]}),v=(d.end-d.start)/u,w=r(h),O=function(e){return g-w(e)+5},P=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=m(e))){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(u)throw a}}}}(i.values());try{for(P.s();!(a=P.n()).done;){var j=a.value,S=b(o.featureSpanPx(j,d,u),1)[0],x=j.get("score");e.fillStyle=n.readConfObject(l,"color",{feature:j}),e.beginPath(),e.arc(S,O(x),2,0,2*Math.PI),e.fill()}}catch(e){P.e(e)}finally{P.f()}p&&(e.lineWidth=1,e.strokeStyle="rgba(200,200,200,0.8)",y.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(O(t))),e.lineTo(v,Math.round(O(t))),e.stroke()})))}}]),a}(t.WiggleBaseRenderer)}var w=n.ConfigurationSchema("LinearManhattanRenderer",{color:{type:"color",description:"the color of the marks",defaultValue:"darkblue",contextVariable:["feature"]}},{explicitlyTyped:!0});function O(e,t){var r=e.lib["mobx-state-tree"].types,n=e.getPlugin("WigglePlugin");return r.compose("LinearManhattanDisplay",(0,n.exports.linearWiggleDisplayModelFactory)(e,t),r.model({type:r.literal("LinearManhattanDisplay")}).views((function(){return{get rendererTypeName(){return"LinearManhattanRenderer"},get needsScalebar(){return!0},get regionTooLarge(){return!1}}})))}exports.default=function(e){p(u,t);var o=g(u);function u(){var e;return i(this,u),(e=o.apply(this,arguments)).name="GWASPlugin",e}return l(u,[{key:"install",value:function(e){var t=e.getPlugin("WigglePlugin").exports,o=t.LinearWiggleDisplayReactComponent,i=t.XYPlotRendererReactComponent;e.addDisplayType((function(){var t=function(e){var t=e.getPlugin("LinearGenomeViewPlugin").exports.baseLinearDisplayConfigSchema,r=e.getRendererType("LinearManhattanRenderer").configSchema;return n.ConfigurationSchema("LinearManhattanDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:a.types.enumeration("Autoscale type",["global","local","globalsd","localsd","zscore"]),description:"global/local using their min/max values or w/ standard deviations (globalsd/localsd)"},minScore:{type:"number",defaultValue:Number.MIN_VALUE,description:"minimum value for the y-scale"},maxScore:{type:"number",description:"maximum value for the y-scale",defaultValue:Number.MAX_VALUE},numStdDev:{type:"number",description:"number of standard deviations to use for autoscale types globalsd or localsd",defaultValue:3},scaleType:{type:"stringEnum",model:a.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},defaultRendering:{type:"stringEnum",model:a.types.enumeration("Rendering",["density","xyplot","line"]),defaultValue:"xyplot"},renderers:n.ConfigurationSchema("RenderersConfiguration",{LinearManhattanRenderer:r})},{baseConfiguration:t,explicitlyTyped:!0})}(e);return new r({name:"LinearManhattanDisplay",configSchema:t,stateModel:O(e,t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:o})})),e.addRendererType((function(){return new new v(e)({name:"LinearManhattanRenderer",ReactComponent:i,configSchema:w,pluginManager:e})}))}}]),u}();
|
|
2
2
|
//# sourceMappingURL=jbrowse-plugin-gwas.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jbrowse-plugin-gwas.cjs.production.min.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n ctx.fillStyle = readConfObject(config, \"color\", [feature]);\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","export { default } from \"./LinearManhattanRenderer\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n"],"names":["rendererFactory","pluginManager","getPlugin","exports","getScale","utils","ctx","props","features","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","regions","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","leftPx","featureSpanPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","WiggleBaseRenderer","configSchema","ConfigurationSchema","color","type","description","defaultValue","explicitlyTyped","stateModelFactory","types","lib","WigglePlugin","compose","linearWiggleDisplayModelFactory","model","literal","views","Plugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","baseLinearDisplayConfigSchema","autoscale","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","baseConfiguration","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","rendererConfigSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jbrowse-plugin-gwas.cjs.production.min.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n // @ts-ignore\n ctx.fillStyle = readConfObject(config, \"color\", { feature });\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","import { ConfigurationSchema } from \"@jbrowse/core/configuration\";\nexport { default } from \"./LinearManhattanRenderer\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n contextVariable: [\"feature\"],\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n const LinearManhattanRendererConfigSchema = pluginManager.getRendererType(\n \"LinearManhattanRenderer\",\n ).configSchema;\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n renderers: ConfigurationSchema(\"RenderersConfiguration\", {\n LinearManhattanRenderer: LinearManhattanRendererConfigSchema,\n }),\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n"],"names":["rendererFactory","pluginManager","getPlugin","exports","getScale","utils","ctx","props","features","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","regions","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","leftPx","featureSpanPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","WiggleBaseRenderer","configSchema","ConfigurationSchema","color","type","description","defaultValue","contextVariable","explicitlyTyped","stateModelFactory","types","lib","WigglePlugin","compose","linearWiggleDisplayModelFactory","model","literal","views","Plugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","baseLinearDisplayConfigSchema","LinearManhattanRendererConfigSchema","getRendererType","autoscale","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","renderers","LinearManhattanRenderer","baseConfiguration","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","rendererConfigSchema"],"mappings":"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"}
|
|
@@ -323,8 +323,11 @@ function rendererFactory(pluginManager) {
|
|
|
323
323
|
_featureSpanPx2 = _slicedToArray(_featureSpanPx, 1),
|
|
324
324
|
leftPx = _featureSpanPx2[0];
|
|
325
325
|
|
|
326
|
-
var score = feature.get("score");
|
|
327
|
-
|
|
326
|
+
var score = feature.get("score"); // @ts-ignore
|
|
327
|
+
|
|
328
|
+
ctx.fillStyle = readConfObject(config, "color", {
|
|
329
|
+
feature: feature
|
|
330
|
+
});
|
|
328
331
|
ctx.beginPath();
|
|
329
332
|
ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);
|
|
330
333
|
ctx.fill();
|
|
@@ -356,7 +359,8 @@ var configSchema = /*#__PURE__*/ConfigurationSchema("LinearManhattanRenderer", {
|
|
|
356
359
|
color: {
|
|
357
360
|
type: "color",
|
|
358
361
|
description: "the color of the marks",
|
|
359
|
-
defaultValue: "darkblue"
|
|
362
|
+
defaultValue: "darkblue",
|
|
363
|
+
contextVariable: ["feature"]
|
|
360
364
|
}
|
|
361
365
|
}, {
|
|
362
366
|
explicitlyTyped: true
|
|
@@ -366,6 +370,7 @@ function configSchemaFactory(pluginManager) {
|
|
|
366
370
|
var LGVPlugin = pluginManager.getPlugin("LinearGenomeViewPlugin"); //@ts-ignore
|
|
367
371
|
|
|
368
372
|
var baseLinearDisplayConfigSchema = LGVPlugin.exports.baseLinearDisplayConfigSchema;
|
|
373
|
+
var LinearManhattanRendererConfigSchema = pluginManager.getRendererType("LinearManhattanRenderer").configSchema;
|
|
369
374
|
return ConfigurationSchema("LinearManhattanDisplay", {
|
|
370
375
|
autoscale: {
|
|
371
376
|
type: "stringEnum",
|
|
@@ -403,7 +408,10 @@ function configSchemaFactory(pluginManager) {
|
|
|
403
408
|
type: "stringEnum",
|
|
404
409
|
model: types.enumeration("Rendering", ["density", "xyplot", "line"]),
|
|
405
410
|
defaultValue: "xyplot"
|
|
406
|
-
}
|
|
411
|
+
},
|
|
412
|
+
renderers: ConfigurationSchema("RenderersConfiguration", {
|
|
413
|
+
LinearManhattanRenderer: LinearManhattanRendererConfigSchema
|
|
414
|
+
})
|
|
407
415
|
}, {
|
|
408
416
|
baseConfiguration: baseLinearDisplayConfigSchema,
|
|
409
417
|
explicitlyTyped: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jbrowse-plugin-gwas.esm.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n ctx.fillStyle = readConfObject(config, \"color\", [feature]);\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","export { default } from \"./LinearManhattanRenderer\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n"],"names":["rendererFactory","pluginManager","WigglePlugin","getPlugin","exports","getScale","utils","WiggleBaseRenderer","ctx","props","features","regions","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","featureSpanPx","leftPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","configSchema","ConfigurationSchema","color","type","description","defaultValue","explicitlyTyped","configSchemaFactory","LGVPlugin","baseLinearDisplayConfigSchema","autoscale","model","types","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","baseConfiguration","stateModelFactory","lib","linearWiggleDisplayModelFactory","compose","literal","views","rendererTypeName","needsScalebar","regionTooLarge","AlignmentsPlugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","ManhattanRenderer","rendererConfigSchema","Plugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jbrowse-plugin-gwas.esm.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n // @ts-ignore\n ctx.fillStyle = readConfObject(config, \"color\", { feature });\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","import { ConfigurationSchema } from \"@jbrowse/core/configuration\";\nexport { default } from \"./LinearManhattanRenderer\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n contextVariable: [\"feature\"],\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n const LinearManhattanRendererConfigSchema = pluginManager.getRendererType(\n \"LinearManhattanRenderer\",\n ).configSchema;\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n renderers: ConfigurationSchema(\"RenderersConfiguration\", {\n LinearManhattanRenderer: LinearManhattanRendererConfigSchema,\n }),\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n"],"names":["rendererFactory","pluginManager","WigglePlugin","getPlugin","exports","getScale","utils","WiggleBaseRenderer","ctx","props","features","regions","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","featureSpanPx","leftPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","configSchema","ConfigurationSchema","color","type","description","defaultValue","contextVariable","explicitlyTyped","configSchemaFactory","LGVPlugin","baseLinearDisplayConfigSchema","LinearManhattanRendererConfigSchema","getRendererType","autoscale","model","types","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","renderers","LinearManhattanRenderer","baseConfiguration","stateModelFactory","lib","linearWiggleDisplayModelFactory","compose","literal","views","rendererTypeName","needsScalebar","regionTooLarge","AlignmentsPlugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","ManhattanRenderer","rendererConfigSchema","Plugin"],"mappings":"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"}
|
|
@@ -326,8 +326,11 @@
|
|
|
326
326
|
_featureSpanPx2 = _slicedToArray(_featureSpanPx, 1),
|
|
327
327
|
leftPx = _featureSpanPx2[0];
|
|
328
328
|
|
|
329
|
-
var score = feature.get("score");
|
|
330
|
-
|
|
329
|
+
var score = feature.get("score"); // @ts-ignore
|
|
330
|
+
|
|
331
|
+
ctx.fillStyle = configuration.readConfObject(config, "color", {
|
|
332
|
+
feature: feature
|
|
333
|
+
});
|
|
331
334
|
ctx.beginPath();
|
|
332
335
|
ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);
|
|
333
336
|
ctx.fill();
|
|
@@ -359,7 +362,8 @@
|
|
|
359
362
|
color: {
|
|
360
363
|
type: "color",
|
|
361
364
|
description: "the color of the marks",
|
|
362
|
-
defaultValue: "darkblue"
|
|
365
|
+
defaultValue: "darkblue",
|
|
366
|
+
contextVariable: ["feature"]
|
|
363
367
|
}
|
|
364
368
|
}, {
|
|
365
369
|
explicitlyTyped: true
|
|
@@ -369,6 +373,7 @@
|
|
|
369
373
|
var LGVPlugin = pluginManager.getPlugin("LinearGenomeViewPlugin"); //@ts-ignore
|
|
370
374
|
|
|
371
375
|
var baseLinearDisplayConfigSchema = LGVPlugin.exports.baseLinearDisplayConfigSchema;
|
|
376
|
+
var LinearManhattanRendererConfigSchema = pluginManager.getRendererType("LinearManhattanRenderer").configSchema;
|
|
372
377
|
return configuration.ConfigurationSchema("LinearManhattanDisplay", {
|
|
373
378
|
autoscale: {
|
|
374
379
|
type: "stringEnum",
|
|
@@ -406,7 +411,10 @@
|
|
|
406
411
|
type: "stringEnum",
|
|
407
412
|
model: mobxStateTree.types.enumeration("Rendering", ["density", "xyplot", "line"]),
|
|
408
413
|
defaultValue: "xyplot"
|
|
409
|
-
}
|
|
414
|
+
},
|
|
415
|
+
renderers: configuration.ConfigurationSchema("RenderersConfiguration", {
|
|
416
|
+
LinearManhattanRenderer: LinearManhattanRendererConfigSchema
|
|
417
|
+
})
|
|
410
418
|
}, {
|
|
411
419
|
baseConfiguration: baseLinearDisplayConfigSchema,
|
|
412
420
|
explicitlyTyped: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jbrowse-plugin-gwas.umd.development.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n ctx.fillStyle = readConfObject(config, \"color\", [feature]);\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","export { default } from \"./LinearManhattanRenderer\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n"],"names":["rendererFactory","pluginManager","WigglePlugin","getPlugin","exports","getScale","utils","WiggleBaseRenderer","ctx","props","features","regions","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","featureSpanPx","leftPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","configSchema","ConfigurationSchema","color","type","description","defaultValue","explicitlyTyped","configSchemaFactory","LGVPlugin","baseLinearDisplayConfigSchema","autoscale","model","types","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","baseConfiguration","stateModelFactory","lib","linearWiggleDisplayModelFactory","compose","literal","views","rendererTypeName","needsScalebar","regionTooLarge","AlignmentsPlugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","ManhattanRenderer","rendererConfigSchema","Plugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jbrowse-plugin-gwas.umd.development.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n // @ts-ignore\n ctx.fillStyle = readConfObject(config, \"color\", { feature });\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","import { ConfigurationSchema } from \"@jbrowse/core/configuration\";\nexport { default } from \"./LinearManhattanRenderer\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n contextVariable: [\"feature\"],\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n const LinearManhattanRendererConfigSchema = pluginManager.getRendererType(\n \"LinearManhattanRenderer\",\n ).configSchema;\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n renderers: ConfigurationSchema(\"RenderersConfiguration\", {\n LinearManhattanRenderer: LinearManhattanRendererConfigSchema,\n }),\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n"],"names":["rendererFactory","pluginManager","WigglePlugin","getPlugin","exports","getScale","utils","WiggleBaseRenderer","ctx","props","features","regions","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","featureSpanPx","leftPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","configSchema","ConfigurationSchema","color","type","description","defaultValue","contextVariable","explicitlyTyped","configSchemaFactory","LGVPlugin","baseLinearDisplayConfigSchema","LinearManhattanRendererConfigSchema","getRendererType","autoscale","model","types","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","renderers","LinearManhattanRenderer","baseConfiguration","stateModelFactory","lib","linearWiggleDisplayModelFactory","compose","literal","views","rendererTypeName","needsScalebar","regionTooLarge","AlignmentsPlugin","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","ManhattanRenderer","rendererConfigSchema","Plugin"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jbrowse/core/Plugin"),require("@jbrowse/core/pluggableElementTypes/DisplayType"),require("@jbrowse/core/configuration"),require("@jbrowse/core/util"),require("mobx-state-tree")):"function"==typeof define&&define.amd?define(["exports","@jbrowse/core/Plugin","@jbrowse/core/pluggableElementTypes/DisplayType","@jbrowse/core/configuration","@jbrowse/core/util","mobx-state-tree"],t):t((e=e||self).JBrowsePluginGWAS={},e.JBrowseExports["@jbrowse/core/Plugin"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes/DisplayType"],e.JBrowseExports["@jbrowse/core/configuration"],e.JBrowseExports["@jbrowse/core/util"],e.JBrowseExports["mobx-state-tree"])}(this,(function(e,t,r,n,o,a){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jbrowse/core/Plugin"),require("@jbrowse/core/pluggableElementTypes/DisplayType"),require("@jbrowse/core/configuration"),require("@jbrowse/core/util"),require("mobx-state-tree")):"function"==typeof define&&define.amd?define(["exports","@jbrowse/core/Plugin","@jbrowse/core/pluggableElementTypes/DisplayType","@jbrowse/core/configuration","@jbrowse/core/util","mobx-state-tree"],t):t((e=e||self).JBrowsePluginGWAS={},e.JBrowseExports["@jbrowse/core/Plugin"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes/DisplayType"],e.JBrowseExports["@jbrowse/core/configuration"],e.JBrowseExports["@jbrowse/core/util"],e.JBrowseExports["mobx-state-tree"])}(this,(function(e,t,r,n,o,a){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,r){return t&&u(e.prototype,t),r&&u(e,r),e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=y(e);if(t){var o=y(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return d(this,r)}}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}}(e,t)||m(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"==typeof e)return h(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function v(e){var t=e.getPlugin("WigglePlugin").exports,r=t.utils.getScale;return function(e){p(a,e);var t=b(a);function a(){return i(this,a),t.apply(this,arguments)}return l(a,[{key:"draw",value:function(e,t){var a,i=t.features,u=t.bpPerPx,l=t.config,c=t.scaleOpts,s=t.height,p=t.displayCrossHatches,y=t.ticks.values,d=g(t.regions,1)[0],b=s-10,h=f(f({},c),{},{range:[0,b]}),v=(d.end-d.start)/u,w=r(h),j=function(e){return b-w(e)+5},O=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=m(e))){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(u)throw a}}}}(i.values());try{for(O.s();!(a=O.n()).done;){var P=a.value,S=g(o.featureSpanPx(P,d,u),1)[0],x=P.get("score");e.fillStyle=n.readConfObject(l,"color",{feature:P}),e.beginPath(),e.arc(S,j(x),2,0,2*Math.PI),e.fill()}}catch(e){O.e(e)}finally{O.f()}p&&(e.lineWidth=1,e.strokeStyle="rgba(200,200,200,0.8)",y.forEach((function(t){e.beginPath(),e.moveTo(0,Math.round(j(t))),e.lineTo(v,Math.round(j(t))),e.stroke()})))}}]),a}(t.WiggleBaseRenderer)}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;var w=n.ConfigurationSchema("LinearManhattanRenderer",{color:{type:"color",description:"the color of the marks",defaultValue:"darkblue",contextVariable:["feature"]}},{explicitlyTyped:!0});function j(e,t){var r=e.lib["mobx-state-tree"].types,n=e.getPlugin("WigglePlugin");return r.compose("LinearManhattanDisplay",(0,n.exports.linearWiggleDisplayModelFactory)(e,t),r.model({type:r.literal("LinearManhattanDisplay")}).views((function(){return{get rendererTypeName(){return"LinearManhattanRenderer"},get needsScalebar(){return!0},get regionTooLarge(){return!1}}})))}e.default=function(e){p(o,e);var t=b(o);function o(){var e;return i(this,o),(e=t.apply(this,arguments)).name="GWASPlugin",e}return l(o,[{key:"install",value:function(e){var t=e.getPlugin("WigglePlugin").exports,o=t.LinearWiggleDisplayReactComponent,i=t.XYPlotRendererReactComponent;e.addDisplayType((function(){var t=function(e){var t=e.getPlugin("LinearGenomeViewPlugin").exports.baseLinearDisplayConfigSchema,r=e.getRendererType("LinearManhattanRenderer").configSchema;return n.ConfigurationSchema("LinearManhattanDisplay",{autoscale:{type:"stringEnum",defaultValue:"local",model:a.types.enumeration("Autoscale type",["global","local","globalsd","localsd","zscore"]),description:"global/local using their min/max values or w/ standard deviations (globalsd/localsd)"},minScore:{type:"number",defaultValue:Number.MIN_VALUE,description:"minimum value for the y-scale"},maxScore:{type:"number",description:"maximum value for the y-scale",defaultValue:Number.MAX_VALUE},numStdDev:{type:"number",description:"number of standard deviations to use for autoscale types globalsd or localsd",defaultValue:3},scaleType:{type:"stringEnum",model:a.types.enumeration("Scale type",["linear","log"]),description:"The type of scale to use",defaultValue:"linear"},inverted:{type:"boolean",description:"draw upside down",defaultValue:!1},defaultRendering:{type:"stringEnum",model:a.types.enumeration("Rendering",["density","xyplot","line"]),defaultValue:"xyplot"},renderers:n.ConfigurationSchema("RenderersConfiguration",{LinearManhattanRenderer:r})},{baseConfiguration:t,explicitlyTyped:!0})}(e);return new r({name:"LinearManhattanDisplay",configSchema:t,stateModel:j(e,t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:o})})),e.addRendererType((function(){return new new v(e)({name:"LinearManhattanRenderer",ReactComponent:i,configSchema:w,pluginManager:e})}))}}]),o}(t),Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=jbrowse-plugin-gwas.umd.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jbrowse-plugin-gwas.umd.production.min.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n ctx.fillStyle = readConfObject(config, \"color\", [feature]);\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","export { default } from \"./LinearManhattanRenderer\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n"],"names":["rendererFactory","pluginManager","getPlugin","exports","getScale","utils","ctx","props","features","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","regions","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","leftPx","featureSpanPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","WiggleBaseRenderer","configSchema","ConfigurationSchema","color","type","description","defaultValue","explicitlyTyped","stateModelFactory","types","lib","WigglePlugin","compose","linearWiggleDisplayModelFactory","model","literal","views","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","baseLinearDisplayConfigSchema","autoscale","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","baseConfiguration","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","rendererConfigSchema","Plugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jbrowse-plugin-gwas.umd.production.min.js","sources":["../src/LinearManhattanRenderer/LinearManhattanRenderer.ts","../src/LinearManhattanRenderer/index.ts","../src/LinearManhattanDisplay/index.ts","../src/index.ts","../src/LinearManhattanDisplay/configSchemaFactory.ts"],"sourcesContent":["import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { readConfObject } from \"@jbrowse/core/configuration\";\nimport { featureSpanPx } from \"@jbrowse/core/util\";\n\nexport default function rendererFactory(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n const {\n utils: { getScale },\n WiggleBaseRenderer,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n return class ManhattanPlotRenderer extends WiggleBaseRenderer {\n draw(ctx: CanvasRenderingContext2D, props: any) {\n const {\n features,\n regions,\n bpPerPx,\n config,\n scaleOpts,\n height: unadjustedHeight,\n displayCrossHatches,\n ticks: { values },\n } = props;\n const [region] = regions;\n const YSCALEBAR_LABEL_OFFSET = 5;\n const height = unadjustedHeight - YSCALEBAR_LABEL_OFFSET * 2;\n const opts = { ...scaleOpts, range: [0, height] };\n const width = (region.end - region.start) / bpPerPx;\n\n const scale = getScale(opts);\n const toY = (n: number) => height - scale(n) + YSCALEBAR_LABEL_OFFSET;\n\n for (const feature of features.values()) {\n const [leftPx] = featureSpanPx(feature, region, bpPerPx);\n const score = feature.get(\"score\") as number;\n // @ts-ignore\n ctx.fillStyle = readConfObject(config, \"color\", { feature });\n ctx.beginPath();\n ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n\n if (displayCrossHatches) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(200,200,200,0.8)\";\n values.forEach((tick: number) => {\n ctx.beginPath();\n ctx.moveTo(0, Math.round(toY(tick)));\n ctx.lineTo(width, Math.round(toY(tick)));\n ctx.stroke();\n });\n }\n }\n };\n}\n","import { ConfigurationSchema } from \"@jbrowse/core/configuration\";\nexport { default } from \"./LinearManhattanRenderer\";\n\nexport const configSchema = ConfigurationSchema(\n \"LinearManhattanRenderer\",\n {\n color: {\n type: \"color\",\n description: \"the color of the marks\",\n defaultValue: \"darkblue\",\n contextVariable: [\"feature\"],\n },\n },\n { explicitlyTyped: true },\n);\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nexport { configSchemaFactory } from \"./configSchemaFactory\";\n\nexport function stateModelFactory(\n pluginManager: PluginManager,\n configSchema: any,\n) {\n const { types } = pluginManager.lib[\"mobx-state-tree\"];\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n //@ts-ignore\n const { linearWiggleDisplayModelFactory } = WigglePlugin.exports;\n return types.compose(\n \"LinearManhattanDisplay\",\n linearWiggleDisplayModelFactory(pluginManager, configSchema),\n types\n .model({\n type: types.literal(\"LinearManhattanDisplay\"),\n })\n .views(() => ({\n get rendererTypeName() {\n return \"LinearManhattanRenderer\";\n },\n get needsScalebar() {\n return true;\n },\n get regionTooLarge() {\n return false;\n },\n })),\n );\n}\n\nexport type LinearManhattanDisplayModel = ReturnType<typeof stateModelFactory>;\n","import Plugin from \"@jbrowse/core/Plugin\";\nimport PluginManager from \"@jbrowse/core/PluginManager\";\nimport DisplayType from \"@jbrowse/core/pluggableElementTypes/DisplayType\";\nimport rendererFactory, {\n configSchema as rendererConfigSchema,\n} from \"./LinearManhattanRenderer\";\nimport {\n configSchemaFactory as displayConfigSchemaFactory,\n stateModelFactory as displayModelFactory,\n} from \"./LinearManhattanDisplay\";\n\nexport default class AlignmentsPlugin extends Plugin {\n name = \"GWASPlugin\";\n\n install(pluginManager: PluginManager) {\n const WigglePlugin = pluginManager.getPlugin(\n \"WigglePlugin\",\n ) as import(\"@jbrowse/plugin-wiggle\").default;\n\n const {\n LinearWiggleDisplayReactComponent,\n XYPlotRendererReactComponent,\n //@ts-ignore\n } = WigglePlugin.exports;\n\n pluginManager.addDisplayType(() => {\n const configSchema = displayConfigSchemaFactory(pluginManager);\n return new DisplayType({\n name: \"LinearManhattanDisplay\",\n configSchema,\n stateModel: displayModelFactory(pluginManager, configSchema),\n trackType: \"FeatureTrack\",\n viewType: \"LinearGenomeView\",\n ReactComponent: LinearWiggleDisplayReactComponent,\n });\n });\n\n pluginManager.addRendererType(() => {\n //@ts-ignore\n const ManhattanRenderer = new rendererFactory(pluginManager);\n const configSchema = rendererConfigSchema;\n return new ManhattanRenderer({\n name: \"LinearManhattanRenderer\",\n ReactComponent: XYPlotRendererReactComponent,\n configSchema,\n pluginManager,\n });\n });\n }\n}\n","import PluginManager from \"@jbrowse/core/PluginManager\";\nimport { types } from \"mobx-state-tree\";\nimport { ConfigurationSchema } from \"@jbrowse/core/configuration\";\n\nexport function configSchemaFactory(pluginManager: PluginManager) {\n const LGVPlugin = pluginManager.getPlugin(\n \"LinearGenomeViewPlugin\",\n ) as import(\"@jbrowse/plugin-linear-genome-view\").default;\n //@ts-ignore\n const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;\n\n const LinearManhattanRendererConfigSchema = pluginManager.getRendererType(\n \"LinearManhattanRenderer\",\n ).configSchema;\n return ConfigurationSchema(\n \"LinearManhattanDisplay\",\n {\n autoscale: {\n type: \"stringEnum\",\n defaultValue: \"local\",\n model: types.enumeration(\"Autoscale type\", [\n \"global\",\n \"local\",\n \"globalsd\",\n \"localsd\",\n \"zscore\",\n ]),\n description:\n \"global/local using their min/max values or w/ standard deviations (globalsd/localsd)\",\n },\n minScore: {\n type: \"number\",\n defaultValue: Number.MIN_VALUE,\n description: \"minimum value for the y-scale\",\n },\n maxScore: {\n type: \"number\",\n description: \"maximum value for the y-scale\",\n defaultValue: Number.MAX_VALUE,\n },\n numStdDev: {\n type: \"number\",\n description:\n \"number of standard deviations to use for autoscale types globalsd or localsd\",\n defaultValue: 3,\n },\n scaleType: {\n type: \"stringEnum\",\n model: types.enumeration(\"Scale type\", [\"linear\", \"log\"]), // todo zscale\n description: \"The type of scale to use\",\n defaultValue: \"linear\",\n },\n inverted: {\n type: \"boolean\",\n description: \"draw upside down\",\n defaultValue: false,\n },\n\n defaultRendering: {\n type: \"stringEnum\",\n model: types.enumeration(\"Rendering\", [\"density\", \"xyplot\", \"line\"]),\n defaultValue: \"xyplot\",\n },\n renderers: ConfigurationSchema(\"RenderersConfiguration\", {\n LinearManhattanRenderer: LinearManhattanRendererConfigSchema,\n }),\n },\n { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },\n );\n}\n"],"names":["rendererFactory","pluginManager","getPlugin","exports","getScale","utils","ctx","props","features","bpPerPx","config","scaleOpts","unadjustedHeight","height","displayCrossHatches","values","ticks","region","regions","YSCALEBAR_LABEL_OFFSET","opts","range","width","end","start","scale","toY","n","feature","leftPx","featureSpanPx","score","get","fillStyle","readConfObject","beginPath","arc","Math","PI","fill","lineWidth","strokeStyle","forEach","tick","moveTo","round","lineTo","stroke","WiggleBaseRenderer","configSchema","ConfigurationSchema","color","type","description","defaultValue","contextVariable","explicitlyTyped","stateModelFactory","types","lib","WigglePlugin","compose","linearWiggleDisplayModelFactory","model","literal","views","LinearWiggleDisplayReactComponent","XYPlotRendererReactComponent","addDisplayType","baseLinearDisplayConfigSchema","LinearManhattanRendererConfigSchema","getRendererType","autoscale","enumeration","minScore","Number","MIN_VALUE","maxScore","MAX_VALUE","numStdDev","scaleType","inverted","defaultRendering","renderers","LinearManhattanRenderer","baseConfiguration","displayConfigSchemaFactory","DisplayType","name","stateModel","displayModelFactory","trackType","viewType","ReactComponent","addRendererType","rendererConfigSchema","Plugin"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,9 @@ export function configSchemaFactory(pluginManager: PluginManager) {
|
|
|
9
9
|
//@ts-ignore
|
|
10
10
|
const { baseLinearDisplayConfigSchema } = LGVPlugin.exports;
|
|
11
11
|
|
|
12
|
+
const LinearManhattanRendererConfigSchema = pluginManager.getRendererType(
|
|
13
|
+
"LinearManhattanRenderer",
|
|
14
|
+
).configSchema;
|
|
12
15
|
return ConfigurationSchema(
|
|
13
16
|
"LinearManhattanDisplay",
|
|
14
17
|
{
|
|
@@ -58,6 +61,9 @@ export function configSchemaFactory(pluginManager: PluginManager) {
|
|
|
58
61
|
model: types.enumeration("Rendering", ["density", "xyplot", "line"]),
|
|
59
62
|
defaultValue: "xyplot",
|
|
60
63
|
},
|
|
64
|
+
renderers: ConfigurationSchema("RenderersConfiguration", {
|
|
65
|
+
LinearManhattanRenderer: LinearManhattanRendererConfigSchema,
|
|
66
|
+
}),
|
|
61
67
|
},
|
|
62
68
|
{ baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },
|
|
63
69
|
);
|
|
@@ -36,7 +36,8 @@ export default function rendererFactory(pluginManager: PluginManager) {
|
|
|
36
36
|
for (const feature of features.values()) {
|
|
37
37
|
const [leftPx] = featureSpanPx(feature, region, bpPerPx);
|
|
38
38
|
const score = feature.get("score") as number;
|
|
39
|
-
|
|
39
|
+
// @ts-ignore
|
|
40
|
+
ctx.fillStyle = readConfObject(config, "color", { feature });
|
|
40
41
|
ctx.beginPath();
|
|
41
42
|
ctx.arc(leftPx, toY(score), 2, 0, 2 * Math.PI);
|
|
42
43
|
ctx.fill();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default } from "./LinearManhattanRenderer";
|
|
2
1
|
import { ConfigurationSchema } from "@jbrowse/core/configuration";
|
|
2
|
+
export { default } from "./LinearManhattanRenderer";
|
|
3
3
|
|
|
4
4
|
export const configSchema = ConfigurationSchema(
|
|
5
5
|
"LinearManhattanRenderer",
|
|
@@ -8,6 +8,7 @@ export const configSchema = ConfigurationSchema(
|
|
|
8
8
|
type: "color",
|
|
9
9
|
description: "the color of the marks",
|
|
10
10
|
defaultValue: "darkblue",
|
|
11
|
+
contextVariable: ["feature"],
|
|
11
12
|
},
|
|
12
13
|
},
|
|
13
14
|
{ explicitlyTyped: true },
|