jbrowse-plugin-graphgenomeviewer 7.4.4 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{GbzBaseSyntenyAdapter-A5MNPCKX.js → GbzBaseSyntenyAdapter-4KVWVUN6.js} +2 -2
- package/dist/chunks/{GbzBaseSyntenyAdapter-A5MNPCKX.js.map → GbzBaseSyntenyAdapter-4KVWVUN6.js.map} +1 -1
- package/dist/chunks/{GraphGenomeView-SEAPDRXS.js → GraphGenomeView-KI4FQ5A7.js} +2 -2
- package/dist/chunks/GraphTrackSettingsDialog-UQNMDXTE.js +4 -0
- package/dist/chunks/GraphTrackSettingsDialog-UQNMDXTE.js.map +7 -0
- package/dist/chunks/{HighlightColorDialog-QAYWLO5I.js → HighlightColorDialog-D4RCUCUF.js} +2 -2
- package/dist/chunks/LinearGraphDisplay-RPZUZSM2.js +2 -0
- package/dist/chunks/{LinearGraphDisplay-ZC4BQ27J.js.map → LinearGraphDisplay-RPZUZSM2.js.map} +2 -2
- package/dist/chunks/{MinigraphBubbleAdapter-3QM4XV47.js → MinigraphBubbleAdapter-TJYI7KEN.js} +2 -2
- package/dist/chunks/RgfaTabixAdapter-5ZMJLFZP.js +2 -0
- package/dist/chunks/RgfaTabixAdapter-5ZMJLFZP.js.map +7 -0
- package/dist/chunks/{WalkFormsAdapter-FT2SW4H6.js → WalkFormsAdapter-CAJOWOEX.js} +2 -2
- package/dist/chunks/WalkTabixSyntenyAdapter-VI3KA2GX.js +2 -0
- package/dist/chunks/{WalkTabixSyntenyAdapter-3WRVNDLB.js.map → WalkTabixSyntenyAdapter-VI3KA2GX.js.map} +2 -2
- package/dist/chunks/{chunk-6WUWQX2P.js → chunk-22ANI2KL.js} +2 -2
- package/dist/chunks/{chunk-6WUWQX2P.js.map → chunk-22ANI2KL.js.map} +1 -1
- package/dist/chunks/chunk-42KD4AVY.js +2 -0
- package/dist/chunks/{chunk-HCDKP3IP.js.map → chunk-42KD4AVY.js.map} +4 -4
- package/dist/chunks/chunk-4NIWMRKH.js +2 -0
- package/dist/chunks/{chunk-S333HOG5.js.map → chunk-4NIWMRKH.js.map} +4 -4
- package/dist/chunks/chunk-BCOXRUNQ.js +3 -0
- package/dist/chunks/chunk-BCOXRUNQ.js.map +7 -0
- package/dist/chunks/chunk-DAPI7M4M.js +4 -0
- package/dist/chunks/chunk-DAPI7M4M.js.map +7 -0
- package/dist/chunks/{chunk-G53BI7VK.js → chunk-DEWZOJSC.js} +2 -2
- package/dist/chunks/{chunk-G53BI7VK.js.map → chunk-DEWZOJSC.js.map} +1 -1
- package/dist/chunks/{chunk-6SWXMRAV.js → chunk-FCMXEFJA.js} +1 -1
- package/dist/chunks/{chunk-6SWXMRAV.js.map → chunk-FCMXEFJA.js.map} +1 -1
- package/dist/chunks/{chunk-P3FBI5ML.js → chunk-GYY6LF5L.js} +1 -1
- package/dist/chunks/{chunk-P3FBI5ML.js.map → chunk-GYY6LF5L.js.map} +1 -1
- package/dist/chunks/{chunk-HF4H6LQI.js → chunk-HHMJNAA3.js} +2 -2
- package/dist/chunks/{chunk-XXBE4IFZ.js → chunk-HTTONSO4.js} +2 -2
- package/dist/chunks/{chunk-XXBE4IFZ.js.map → chunk-HTTONSO4.js.map} +1 -1
- package/dist/chunks/{chunk-MUONTMYZ.js → chunk-K4JL57NR.js} +2 -2
- package/dist/chunks/chunk-KOC23YNN.js +4 -0
- package/dist/chunks/chunk-KOC23YNN.js.map +7 -0
- package/dist/chunks/{chunk-OJWBLPPH.js → chunk-LTNFVL2F.js} +2 -2
- package/dist/chunks/chunk-OZEKEYT3.js +2 -0
- package/dist/chunks/{chunk-6VNU7SD4.js.map → chunk-OZEKEYT3.js.map} +4 -4
- package/dist/chunks/{chunk-KIYRMZWP.js → chunk-POUV7OPY.js} +2 -2
- package/dist/chunks/{chunk-KIYRMZWP.js.map → chunk-POUV7OPY.js.map} +1 -1
- package/dist/chunks/{chunk-LE7FZM6Y.js → chunk-SPL3UO2D.js} +2 -2
- package/dist/chunks/{chunk-LE7FZM6Y.js.map → chunk-SPL3UO2D.js.map} +1 -1
- package/dist/chunks/chunk-UR2MJJUP.js +2 -0
- package/dist/chunks/chunk-VTMJQFN5.js +2 -0
- package/dist/chunks/chunk-VTMJQFN5.js.map +7 -0
- package/dist/chunks/{chunk-2KVE7YAS.js → chunk-XZGYJ3JC.js} +1 -1
- package/dist/chunks/{chunk-2KVE7YAS.js.map → chunk-XZGYJ3JC.js.map} +1 -1
- package/dist/chunks/{chunk-7RJMG6I2.js → chunk-Z3IKZAYC.js} +1 -1
- package/dist/chunks/{chunk-7RJMG6I2.js.map → chunk-Z3IKZAYC.js.map} +1 -1
- package/dist/chunks/{chunk-FTXDTU27.js → chunk-ZV5FNOHS.js} +3 -3
- package/dist/chunks/{chunk-FTXDTU27.js.map → chunk-ZV5FNOHS.js.map} +2 -2
- package/dist/chunks/{renderSvg-ZIUOPWJQ.js → renderSvg-3PPAEMBT.js} +2 -2
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +4 -3
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
- package/package.json +2 -2
- package/src/GraphComputeLayout.test.ts +24 -0
- package/src/GraphComputeLayout.ts +4 -2
- package/src/GraphGenomeView/components/GraphSettingsDialog.tsx +16 -0
- package/src/GraphGenomeView/components/WalkRowsOverlay.tsx +83 -0
- package/src/GraphGenomeView/components/usePaneGestures.test.tsx +82 -5
- package/src/GraphGenomeView/components/usePaneGestures.ts +10 -4
- package/src/GraphGenomeView/graphLayers.ts +14 -1
- package/src/GraphGenomeView/legendSections.ts +32 -0
- package/src/GraphGenomeView/model.test.ts +292 -4
- package/src/GraphGenomeView/model.ts +3 -10
- package/src/GraphGenomeView/nodeSize.test.ts +21 -5
- package/src/GraphGenomeView/nodeSize.ts +24 -8
- package/src/GraphGenomeView/pane/fitViews.ts +5 -1
- package/src/GraphGenomeView/pane/graphViews.ts +96 -16
- package/src/GraphGenomeView/pane/launchActions.ts +55 -11
- package/src/GraphGenomeView/pane/launchViews.ts +46 -0
- package/src/GraphGenomeView/pane/loadActions.ts +85 -25
- package/src/GraphGenomeView/pane/morph.test.ts +25 -1
- package/src/GraphGenomeView/pane/morph.ts +3 -1
- package/src/GraphGenomeView/pane/paneBase.ts +5 -0
- package/src/GraphGenomeView/pane/renderingActions.ts +61 -2
- package/src/GraphGenomeView/pane/settingActions.ts +62 -4
- package/src/GraphGenomeView/pane/walkRowViews.ts +17 -6
- package/src/GraphGenomeView/tubeMapPanels.ts +2 -1
- package/src/GraphGenomeView/viewModel.ts +4 -6
- package/src/GraphGenomeView/walkRowBlocks.ts +50 -0
- package/src/LinearGraphDisplay/LinearGraphDisplay.test.ts +35 -5
- package/src/LinearGraphDisplay/components/GraphStatusChrome.test.tsx +18 -0
- package/src/LinearGraphDisplay/components/GraphStatusChrome.tsx +4 -2
- package/src/LinearGraphDisplay/components/SubgraphHaplotypesField.test.tsx +41 -1
- package/src/LinearGraphDisplay/components/SubgraphHaplotypesField.tsx +33 -19
- package/src/LinearGraphDisplay/configSchema.ts +4 -3
- package/src/RgfaTabixAdapter/RgfaTabixAdapter.ts +2 -9
- package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.ts +3 -6
- package/src/hoverSync/graphViewHighlights.test.ts +53 -0
- package/src/hoverSync/graphViewHighlights.ts +25 -0
- package/src/hoverSync/lgvHover.test.ts +100 -1
- package/src/hoverSync/lgvHover.ts +77 -6
- package/src/launchFromGraph/contributors.test.ts +52 -0
- package/src/launchFromGraph/contributors.ts +105 -1
- package/src/launchFromGraph/launchFromGraph.ts +2 -2
- package/src/panSNTabix.test.ts +28 -0
- package/src/panSNTabix.ts +26 -8
- package/src/version.ts +1 -1
- package/dist/chunks/GraphTrackSettingsDialog-EVIIGC5G.js +0 -6
- package/dist/chunks/GraphTrackSettingsDialog-EVIIGC5G.js.map +0 -7
- package/dist/chunks/LinearGraphDisplay-ZC4BQ27J.js +0 -2
- package/dist/chunks/RgfaTabixAdapter-XSOIEWBK.js +0 -2
- package/dist/chunks/RgfaTabixAdapter-XSOIEWBK.js.map +0 -7
- package/dist/chunks/WalkTabixSyntenyAdapter-3WRVNDLB.js +0 -2
- package/dist/chunks/chunk-6VNU7SD4.js +0 -2
- package/dist/chunks/chunk-GRTN25B6.js +0 -3
- package/dist/chunks/chunk-GRTN25B6.js.map +0 -7
- package/dist/chunks/chunk-HCDKP3IP.js +0 -2
- package/dist/chunks/chunk-LE43I4PT.js +0 -4
- package/dist/chunks/chunk-LE43I4PT.js.map +0 -7
- package/dist/chunks/chunk-QV7SSOMJ.js +0 -2
- package/dist/chunks/chunk-S333HOG5.js +0 -2
- package/dist/chunks/chunk-VZQ6VOUP.js +0 -2
- package/dist/chunks/chunk-VZQ6VOUP.js.map +0 -7
- package/dist/chunks/chunk-WLRRI35A.js +0 -3
- package/dist/chunks/chunk-WLRRI35A.js.map +0 -7
- package/src/launchFromGraph/launchTracks.test.ts +0 -95
- package/src/launchFromGraph/launchTracks.ts +0 -49
- /package/dist/chunks/{GraphGenomeView-SEAPDRXS.js.map → GraphGenomeView-KI4FQ5A7.js.map} +0 -0
- /package/dist/chunks/{HighlightColorDialog-QAYWLO5I.js.map → HighlightColorDialog-D4RCUCUF.js.map} +0 -0
- /package/dist/chunks/{MinigraphBubbleAdapter-3QM4XV47.js.map → MinigraphBubbleAdapter-TJYI7KEN.js.map} +0 -0
- /package/dist/chunks/{WalkFormsAdapter-FT2SW4H6.js.map → WalkFormsAdapter-CAJOWOEX.js.map} +0 -0
- /package/dist/chunks/{chunk-HF4H6LQI.js.map → chunk-HHMJNAA3.js.map} +0 -0
- /package/dist/chunks/{chunk-MUONTMYZ.js.map → chunk-K4JL57NR.js.map} +0 -0
- /package/dist/chunks/{chunk-OJWBLPPH.js.map → chunk-LTNFVL2F.js.map} +0 -0
- /package/dist/chunks/{chunk-QV7SSOMJ.js.map → chunk-UR2MJJUP.js.map} +0 -0
- /package/dist/chunks/{renderSvg-ZIUOPWJQ.js.map → renderSvg-3PPAEMBT.js.map} +0 -0
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { expect, test } from 'vitest'
|
|
2
|
-
|
|
3
|
-
import { launchTracks } from './launchTracks'
|
|
4
|
-
|
|
5
|
-
// Plain objects rather than config models: readConfObject returns a non-MST
|
|
6
|
-
// object's own fields unchanged, so this exercises the same read path.
|
|
7
|
-
function track(props: Record<string, unknown>) {
|
|
8
|
-
return props as never
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const TRACKS = [
|
|
12
|
-
track({
|
|
13
|
-
type: 'FeatureTrack',
|
|
14
|
-
trackId: 'K12_genes',
|
|
15
|
-
assemblyNames: ['K12'],
|
|
16
|
-
}),
|
|
17
|
-
track({
|
|
18
|
-
type: 'FeatureTrack',
|
|
19
|
-
trackId: 'CFT073_genes',
|
|
20
|
-
assemblyNames: ['CFT073'],
|
|
21
|
-
}),
|
|
22
|
-
track({
|
|
23
|
-
type: 'FeatureTrack',
|
|
24
|
-
trackId: 'ecoli_minigraph_segments',
|
|
25
|
-
assemblyNames: ['K12'],
|
|
26
|
-
}),
|
|
27
|
-
track({
|
|
28
|
-
type: 'SyntenyTrack',
|
|
29
|
-
trackId: 'ecoli_pggb_ava',
|
|
30
|
-
assemblyNames: ['K12', 'CFT073'],
|
|
31
|
-
}),
|
|
32
|
-
track({
|
|
33
|
-
type: 'AlignmentsTrack',
|
|
34
|
-
trackId: 'K12_reads',
|
|
35
|
-
assemblyNames: ['K12'],
|
|
36
|
-
}),
|
|
37
|
-
]
|
|
38
|
-
|
|
39
|
-
const session = { tracks: TRACKS, assemblies: [] }
|
|
40
|
-
|
|
41
|
-
// The bug this exists for: the graph's own track is configured for the
|
|
42
|
-
// reference alone, so a per-strain launch carrying only that landed on
|
|
43
|
-
// `No tracks active`.
|
|
44
|
-
test("a non-reference launch gets that strain's own annotation", () => {
|
|
45
|
-
expect(launchTracks({ session, assemblyName: 'CFT073' })).toEqual([
|
|
46
|
-
'CFT073_genes',
|
|
47
|
-
])
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
test("the graph's own track leads a launch on the reference", () => {
|
|
51
|
-
expect(
|
|
52
|
-
launchTracks({
|
|
53
|
-
session,
|
|
54
|
-
assemblyName: 'K12',
|
|
55
|
-
first: 'ecoli_minigraph_segments',
|
|
56
|
-
}),
|
|
57
|
-
).toEqual(['ecoli_minigraph_segments', 'K12_genes'])
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
// A launch is a jump to a locus, not a session restore: an alignments track
|
|
61
|
-
// turned on behind the user fetches data nobody asked for, and a synteny track
|
|
62
|
-
// is what the launch beside this one opens as a view of its own.
|
|
63
|
-
test('only annotation tracks are carried', () => {
|
|
64
|
-
expect(launchTracks({ session, assemblyName: 'K12' })).toEqual([
|
|
65
|
-
'K12_genes',
|
|
66
|
-
'ecoli_minigraph_segments',
|
|
67
|
-
])
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
test('an assembly the session has no annotation for gets none', () => {
|
|
71
|
-
expect(launchTracks({ session, assemblyName: 'IAI39' })).toEqual([])
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
test('a track naming the assembly by an alias is carried', () => {
|
|
75
|
-
const aliased = {
|
|
76
|
-
tracks: [
|
|
77
|
-
track({
|
|
78
|
-
type: 'FeatureTrack',
|
|
79
|
-
trackId: 'ncbi_genes',
|
|
80
|
-
assemblyNames: ['GRCh38'],
|
|
81
|
-
}),
|
|
82
|
-
],
|
|
83
|
-
assemblies: [],
|
|
84
|
-
assemblyManager: {
|
|
85
|
-
has: (name: string) => name === 'GRCh38' || name === 'hg38',
|
|
86
|
-
get: () => ({ name: 'hg38' }),
|
|
87
|
-
},
|
|
88
|
-
}
|
|
89
|
-
expect(launchTracks({ session: aliased, assemblyName: 'hg38' })).toEqual([
|
|
90
|
-
'ncbi_genes',
|
|
91
|
-
])
|
|
92
|
-
expect(launchTracks({ session: aliased, assemblyName: 'GRCh38' })).toEqual([
|
|
93
|
-
'ncbi_genes',
|
|
94
|
-
])
|
|
95
|
-
})
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { readConfObject } from '@jbrowse/core/configuration'
|
|
2
|
-
|
|
3
|
-
import { canonicalAssemblyName, trackAssemblies } from './launchFromGraph'
|
|
4
|
-
|
|
5
|
-
import type { TrackScanSession } from './launchFromGraph'
|
|
6
|
-
|
|
7
|
-
const ANNOTATION_TRACK_TYPE = 'FeatureTrack'
|
|
8
|
-
|
|
9
|
-
// What to turn on in a linear view the graph opens on `assemblyName`.
|
|
10
|
-
//
|
|
11
|
-
// A launch used to carry the graph's own track and nothing else, and that track
|
|
12
|
-
// is configured for the reference alone — so `Launch view` → `CFT073 chr:…`
|
|
13
|
-
// landed on `No tracks active`, which answers "where is this strain's sequence?"
|
|
14
|
-
// with an empty pane. What the session does hold for a contributing assembly is
|
|
15
|
-
// that assembly's own annotation, and on a pangenome config that is one track
|
|
16
|
-
// per strain (`CFT073_genes`), which is exactly what makes the landing readable.
|
|
17
|
-
//
|
|
18
|
-
// Annotation tracks only, not everything configured for the assembly. A launch
|
|
19
|
-
// is a jump to a locus, and an alignments or coverage track turned on behind the
|
|
20
|
-
// user's back fetches data nobody asked for; a FeatureTrack at a 50 kb window is
|
|
21
|
-
// a tabix range query.
|
|
22
|
-
//
|
|
23
|
-
// `first` is the graph's own track when the launch is on the reference, so the
|
|
24
|
-
// segments the graph drew sit at the top of the view rather than wherever config
|
|
25
|
-
// order puts them.
|
|
26
|
-
export function launchTracks({
|
|
27
|
-
session,
|
|
28
|
-
assemblyName,
|
|
29
|
-
first,
|
|
30
|
-
}: {
|
|
31
|
-
session: TrackScanSession
|
|
32
|
-
assemblyName: string
|
|
33
|
-
first?: string
|
|
34
|
-
}) {
|
|
35
|
-
const wanted = canonicalAssemblyName(session, assemblyName)
|
|
36
|
-
const found: string[] = []
|
|
37
|
-
for (const track of session.tracks) {
|
|
38
|
-
const trackId: unknown = readConfObject(track, 'trackId')
|
|
39
|
-
if (
|
|
40
|
-
readConfObject(track, 'type') === ANNOTATION_TRACK_TYPE &&
|
|
41
|
-
typeof trackId === 'string' &&
|
|
42
|
-
trackId !== first &&
|
|
43
|
-
trackAssemblies(session, track).includes(wanted)
|
|
44
|
-
) {
|
|
45
|
-
found.push(trackId)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return first ? [first, ...found] : found
|
|
49
|
-
}
|
|
File without changes
|
/package/dist/chunks/{HighlightColorDialog-QAYWLO5I.js.map → HighlightColorDialog-D4RCUCUF.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|