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 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
  ![](img/1.png)
8
8
  ![](img/2.png)
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
- ctx.fillStyle = configuration.readConfObject(config, "color", [feature]);
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 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,f=t.height,p=t.displayCrossHatches,y=t.ticks.values,d=g(t.regions,1)[0],b=f-10,h=s(s({},c),{},{range:[0,b]}),v=(d.end-d.start)/u,w=r(h),O=function(e){return b-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=g(o.featureSpanPx(j,d,u),1)[0],x=j.get("score");e.fillStyle=n.readConfObject(l,"color",[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"}},{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=b(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;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"}},{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}();
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
- ctx.fillStyle = readConfObject(config, "color", [feature]);
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
- ctx.fillStyle = configuration.readConfObject(config, "color", [feature]);
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 l(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 u(e,t,r){return t&&l(e.prototype,t),r&&l(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,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==l.return||l.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 u(a,[{key:"draw",value:function(e,t){var a,i=t.features,l=t.bpPerPx,u=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)/l,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,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}(i.values());try{for(O.s();!(a=O.n()).done;){var P=a.value,S=g(o.featureSpanPx(P,d,l),1)[0],x=P.get("score");e.fillStyle=n.readConfObject(u,"color",[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"}},{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 u(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;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"}},{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})}));
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jbrowse-plugin-gwas",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "JBrowse 2 GWAS API plugin",
5
5
  "repository": "github:cmdcolin/jbrowse-plugin-gwas",
6
6
  "jbrowse-plugin": {
@@ -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
- ctx.fillStyle = readConfObject(config, "color", [feature]);
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 },