@jbrowse/plugin-arc 2.6.1
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/LICENSE +201 -0
- package/dist/ArcRenderer/ArcRenderer.d.ts +3 -0
- package/dist/ArcRenderer/ArcRenderer.js +10 -0
- package/dist/ArcRenderer/ArcRenderer.js.map +1 -0
- package/dist/ArcRenderer/ArcRendering.d.ts +4 -0
- package/dist/ArcRenderer/ArcRendering.js +62 -0
- package/dist/ArcRenderer/ArcRendering.js.map +1 -0
- package/dist/ArcRenderer/configSchema.d.ts +48 -0
- package/dist/ArcRenderer/configSchema.js +56 -0
- package/dist/ArcRenderer/configSchema.js.map +1 -0
- package/dist/ArcRenderer/index.d.ts +3 -0
- package/dist/ArcRenderer/index.js +17 -0
- package/dist/ArcRenderer/index.js.map +1 -0
- package/dist/LinearArcDisplay/configSchema.d.ts +32 -0
- package/dist/LinearArcDisplay/configSchema.js +25 -0
- package/dist/LinearArcDisplay/configSchema.js.map +1 -0
- package/dist/LinearArcDisplay/index.d.ts +3 -0
- package/dist/LinearArcDisplay/index.js +21 -0
- package/dist/LinearArcDisplay/index.js.map +1 -0
- package/dist/LinearArcDisplay/model.d.ts +303 -0
- package/dist/LinearArcDisplay/model.js +36 -0
- package/dist/LinearArcDisplay/model.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/esm/ArcRenderer/ArcRenderer.d.ts +3 -0
- package/esm/ArcRenderer/ArcRenderer.js +4 -0
- package/esm/ArcRenderer/ArcRenderer.js.map +1 -0
- package/esm/ArcRenderer/ArcRendering.d.ts +4 -0
- package/esm/ArcRenderer/ArcRendering.js +57 -0
- package/esm/ArcRenderer/ArcRendering.js.map +1 -0
- package/esm/ArcRenderer/configSchema.d.ts +48 -0
- package/esm/ArcRenderer/configSchema.js +54 -0
- package/esm/ArcRenderer/configSchema.js.map +1 -0
- package/esm/ArcRenderer/index.d.ts +3 -0
- package/esm/ArcRenderer/index.js +12 -0
- package/esm/ArcRenderer/index.js.map +1 -0
- package/esm/LinearArcDisplay/configSchema.d.ts +32 -0
- package/esm/LinearArcDisplay/configSchema.js +21 -0
- package/esm/LinearArcDisplay/configSchema.js.map +1 -0
- package/esm/LinearArcDisplay/index.d.ts +3 -0
- package/esm/LinearArcDisplay/index.js +19 -0
- package/esm/LinearArcDisplay/index.js.map +1 -0
- package/esm/LinearArcDisplay/model.d.ts +303 -0
- package/esm/LinearArcDisplay/model.js +32 -0
- package/esm/LinearArcDisplay/model.js.map +1 -0
- package/esm/index.d.ts +6 -0
- package/esm/index.js +17 -0
- package/esm/index.js.map +1 -0
- package/package.json +61 -0
- package/src/ArcRenderer/ArcRenderer.ts +3 -0
- package/src/ArcRenderer/ArcRendering.test.tsx +45 -0
- package/src/ArcRenderer/ArcRendering.tsx +131 -0
- package/src/ArcRenderer/__snapshots__/ArcRendering.test.tsx.snap +40 -0
- package/src/ArcRenderer/configSchema.ts +60 -0
- package/src/ArcRenderer/index.ts +17 -0
- package/src/LinearArcDisplay/configSchema.ts +29 -0
- package/src/LinearArcDisplay/index.ts +21 -0
- package/src/LinearArcDisplay/model.ts +40 -0
- package/src/declare.d.ts +1 -0
- package/src/index.ts +20 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`no features 1`] = `
|
|
4
|
+
<svg
|
|
5
|
+
class="ArcRendering"
|
|
6
|
+
height="500"
|
|
7
|
+
style="outline: none; position: relative;"
|
|
8
|
+
width="100"
|
|
9
|
+
/>
|
|
10
|
+
`;
|
|
11
|
+
|
|
12
|
+
exports[`one feature 1`] = `
|
|
13
|
+
<svg
|
|
14
|
+
class="ArcRendering"
|
|
15
|
+
height="500"
|
|
16
|
+
style="outline: none; position: relative;"
|
|
17
|
+
width="333.3333333333333"
|
|
18
|
+
>
|
|
19
|
+
<g>
|
|
20
|
+
<path
|
|
21
|
+
d="M 0.3 0 C 0.3 100, 1 100, 1 0"
|
|
22
|
+
fill="transparent"
|
|
23
|
+
id="1-one"
|
|
24
|
+
pointer-events="stroke"
|
|
25
|
+
stroke-width="1"
|
|
26
|
+
/>
|
|
27
|
+
<g />
|
|
28
|
+
<text
|
|
29
|
+
style="stroke: white; stroke-width: 0.6em;"
|
|
30
|
+
x="0.6499999999999999"
|
|
31
|
+
y="78"
|
|
32
|
+
/>
|
|
33
|
+
<text
|
|
34
|
+
style="stroke: black;"
|
|
35
|
+
x="0.6499999999999999"
|
|
36
|
+
y="78"
|
|
37
|
+
/>
|
|
38
|
+
</g>
|
|
39
|
+
</svg>
|
|
40
|
+
`;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* #config ArcRenderer
|
|
5
|
+
*/
|
|
6
|
+
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
7
|
+
|
|
8
|
+
const ArcRenderer = ConfigurationSchema(
|
|
9
|
+
'ArcRenderer',
|
|
10
|
+
{
|
|
11
|
+
/**
|
|
12
|
+
* #slot
|
|
13
|
+
*/
|
|
14
|
+
color: {
|
|
15
|
+
type: 'color',
|
|
16
|
+
description: 'the color of the arcs',
|
|
17
|
+
defaultValue: 'darkblue',
|
|
18
|
+
contextVariable: ['feature'],
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* #slot
|
|
22
|
+
*/
|
|
23
|
+
thickness: {
|
|
24
|
+
type: 'number',
|
|
25
|
+
description: 'the thickness of the arcs',
|
|
26
|
+
defaultValue: `jexl:logThickness(feature,'score')`,
|
|
27
|
+
contextVariable: ['feature'],
|
|
28
|
+
},
|
|
29
|
+
/**
|
|
30
|
+
* #slot
|
|
31
|
+
*/
|
|
32
|
+
label: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'the label to appear at the apex of the arcs',
|
|
35
|
+
defaultValue: `jexl:get(feature,'score')`,
|
|
36
|
+
contextVariable: ['feature'],
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
* #slot
|
|
40
|
+
*/
|
|
41
|
+
height: {
|
|
42
|
+
type: 'number',
|
|
43
|
+
description: 'the height of the arcs',
|
|
44
|
+
defaultValue: `jexl:log10(get(feature,'end')-get(feature,'start'))*50`,
|
|
45
|
+
contextVariable: ['feature'],
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* #slot
|
|
49
|
+
*/
|
|
50
|
+
caption: {
|
|
51
|
+
type: 'string',
|
|
52
|
+
description:
|
|
53
|
+
'the caption to appear when hovering over any point on the arcs',
|
|
54
|
+
defaultValue: `jexl:get(feature,'name')`,
|
|
55
|
+
contextVariable: ['feature'],
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{ explicitlyTyped: true },
|
|
59
|
+
)
|
|
60
|
+
export default ArcRenderer
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
|
|
3
|
+
import ReactComponent from './ArcRendering'
|
|
4
|
+
import configSchema from './configSchema'
|
|
5
|
+
import ArcRenderer from './ArcRenderer'
|
|
6
|
+
|
|
7
|
+
export default (pluginManager: PluginManager) => {
|
|
8
|
+
pluginManager.addRendererType(
|
|
9
|
+
() =>
|
|
10
|
+
new ArcRenderer({
|
|
11
|
+
name: 'ArcRenderer',
|
|
12
|
+
ReactComponent,
|
|
13
|
+
configSchema,
|
|
14
|
+
pluginManager,
|
|
15
|
+
}),
|
|
16
|
+
)
|
|
17
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import { types } from 'mobx-state-tree'
|
|
3
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
4
|
+
import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-view'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* #config LinearArcDisplay
|
|
8
|
+
*/
|
|
9
|
+
export function configSchemaFactory(pluginManager: PluginManager) {
|
|
10
|
+
return ConfigurationSchema(
|
|
11
|
+
'LinearArcDisplay',
|
|
12
|
+
{
|
|
13
|
+
/**
|
|
14
|
+
* #slot
|
|
15
|
+
*/
|
|
16
|
+
renderer: types.optional(
|
|
17
|
+
pluginManager.pluggableConfigSchemaType('renderer'),
|
|
18
|
+
{ type: 'ArcRenderer' },
|
|
19
|
+
),
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
/**
|
|
23
|
+
* #baseConfiguration
|
|
24
|
+
*/
|
|
25
|
+
baseConfiguration: baseLinearDisplayConfigSchema,
|
|
26
|
+
explicitlyTyped: true,
|
|
27
|
+
},
|
|
28
|
+
)
|
|
29
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import { DisplayType } from '@jbrowse/core/pluggableElementTypes'
|
|
3
|
+
import { BaseLinearDisplayComponent } from '@jbrowse/plugin-linear-genome-view'
|
|
4
|
+
|
|
5
|
+
import { configSchemaFactory } from './configSchema'
|
|
6
|
+
import { stateModelFactory } from './model'
|
|
7
|
+
|
|
8
|
+
export default (pluginManager: PluginManager) => {
|
|
9
|
+
pluginManager.addDisplayType(() => {
|
|
10
|
+
const configSchema = configSchemaFactory(pluginManager)
|
|
11
|
+
return new DisplayType({
|
|
12
|
+
name: 'LinearArcDisplay',
|
|
13
|
+
displayName: 'Arc display',
|
|
14
|
+
configSchema,
|
|
15
|
+
stateModel: stateModelFactory(configSchema),
|
|
16
|
+
trackType: 'FeatureTrack',
|
|
17
|
+
viewType: 'LinearGenomeView',
|
|
18
|
+
ReactComponent: BaseLinearDisplayComponent,
|
|
19
|
+
})
|
|
20
|
+
})
|
|
21
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AnyConfigurationSchemaType,
|
|
3
|
+
ConfigurationReference,
|
|
4
|
+
} from '@jbrowse/core/configuration'
|
|
5
|
+
import { types } from 'mobx-state-tree'
|
|
6
|
+
import { BaseLinearDisplay } from '@jbrowse/plugin-linear-genome-view'
|
|
7
|
+
|
|
8
|
+
export function stateModelFactory(configSchema: AnyConfigurationSchemaType) {
|
|
9
|
+
return types
|
|
10
|
+
.compose(
|
|
11
|
+
'LinearArcDisplay',
|
|
12
|
+
BaseLinearDisplay,
|
|
13
|
+
types.model({
|
|
14
|
+
type: types.literal('LinearArcDisplay'),
|
|
15
|
+
configuration: ConfigurationReference(configSchema),
|
|
16
|
+
}),
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
.views(self => {
|
|
20
|
+
const { renderProps: superRenderProps } = self
|
|
21
|
+
return {
|
|
22
|
+
get blockType() {
|
|
23
|
+
return 'staticBlocks'
|
|
24
|
+
},
|
|
25
|
+
get renderDelay() {
|
|
26
|
+
return 500
|
|
27
|
+
},
|
|
28
|
+
renderProps() {
|
|
29
|
+
return {
|
|
30
|
+
...superRenderProps(),
|
|
31
|
+
rpcDriverName: self.rpcDriverName,
|
|
32
|
+
config: self.configuration.renderer,
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
get rendererTypeName() {
|
|
36
|
+
return self.configuration.renderer.type
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
}
|
package/src/declare.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module '*.json'
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Plugin from '@jbrowse/core/Plugin'
|
|
2
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
3
|
+
import LinearArcDisplayF from './LinearArcDisplay'
|
|
4
|
+
import ArcRendererF from './ArcRenderer'
|
|
5
|
+
import { Feature } from '@jbrowse/core/util'
|
|
6
|
+
|
|
7
|
+
export default class ArcPlugin extends Plugin {
|
|
8
|
+
name = 'ArcRenderer'
|
|
9
|
+
install(pluginManager: PluginManager) {
|
|
10
|
+
ArcRendererF(pluginManager)
|
|
11
|
+
LinearArcDisplayF(pluginManager)
|
|
12
|
+
|
|
13
|
+
pluginManager.jexl.addFunction(
|
|
14
|
+
'logThickness',
|
|
15
|
+
(feature: Feature, attributeName: string) => {
|
|
16
|
+
return Math.log(feature.get(attributeName) + 1)
|
|
17
|
+
},
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
}
|