@jbrowse/plugin-linear-genome-view 2.4.2 → 2.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/BaseLinearDisplay/components/LinearBlocks.d.ts +0 -1
- package/dist/BaseLinearDisplay/components/TooLargeMessage.d.ts +3 -4
- package/dist/BaseLinearDisplay/components/TooLargeMessage.js +7 -3
- package/dist/BaseLinearDisplay/components/TooLargeMessage.js.map +1 -1
- package/dist/BaseLinearDisplay/components/Tooltip.d.ts +0 -1
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +75 -14
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +38 -32
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -1
- package/dist/BaseLinearDisplay/models/configSchema.d.ts +35 -1
- package/dist/BaseLinearDisplay/models/configSchema.js +9 -0
- package/dist/BaseLinearDisplay/models/configSchema.js.map +1 -1
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +10 -6
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
- package/dist/BaseLinearDisplay/models/util.d.ts +6 -2
- package/dist/BaseLinearDisplay/models/util.js +4 -4
- package/dist/BaseLinearDisplay/models/util.js.map +1 -1
- package/dist/BasicTrack/configSchema.d.ts +73 -1
- package/dist/FeatureTrack/configSchema.d.ts +75 -1
- package/dist/LinearBareDisplay/configSchema.d.ts +28 -1
- package/dist/LinearBareDisplay/model.d.ts +62 -11
- package/dist/LinearBareDisplay/model.js +2 -2
- package/dist/LinearBareDisplay/model.js.map +1 -1
- package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +0 -1
- package/dist/LinearBasicDisplay/configSchema.d.ts +28 -1
- package/dist/LinearBasicDisplay/configSchema.js +0 -9
- package/dist/LinearBasicDisplay/configSchema.js.map +1 -1
- package/dist/LinearBasicDisplay/model.d.ts +71 -10
- package/dist/LinearGenomeView/components/CenterLine.d.ts +0 -1
- package/dist/LinearGenomeView/components/Cytobands.d.ts +22 -23
- package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +0 -1
- package/dist/LinearGenomeView/components/GetSequenceDialog.d.ts +0 -1
- package/dist/LinearGenomeView/components/GetSequenceDialog.js +14 -16
- package/dist/LinearGenomeView/components/GetSequenceDialog.js.map +1 -1
- package/dist/LinearGenomeView/components/Gridlines.d.ts +0 -1
- package/dist/LinearGenomeView/components/Header.d.ts +0 -1
- package/dist/LinearGenomeView/components/HelpDialog.d.ts +0 -1
- package/dist/LinearGenomeView/components/ImportForm.d.ts +0 -1
- package/dist/LinearGenomeView/components/ImportForm.js +4 -7
- package/dist/LinearGenomeView/components/ImportForm.js.map +1 -1
- package/dist/LinearGenomeView/components/LinearGenomeView.d.ts +0 -1
- package/dist/LinearGenomeView/components/LinearGenomeView.js +0 -4
- package/dist/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
- package/dist/LinearGenomeView/components/MiniControls.d.ts +0 -1
- package/dist/LinearGenomeView/components/OverviewScalebar.js +2 -1
- package/dist/LinearGenomeView/components/OverviewScalebar.js.map +1 -1
- package/dist/LinearGenomeView/components/RefNameAutocomplete.js +43 -36
- package/dist/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -1
- package/dist/LinearGenomeView/components/RubberbandSpan.d.ts +0 -1
- package/dist/LinearGenomeView/components/SearchBox.d.ts +0 -1
- package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +5 -3
- package/dist/LinearGenomeView/components/SearchResultsDialog.js +6 -82
- package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +1 -1
- package/dist/LinearGenomeView/components/SearchResultsTable.d.ts +8 -0
- package/dist/LinearGenomeView/components/SearchResultsTable.js +83 -0
- package/dist/LinearGenomeView/components/SearchResultsTable.js.map +1 -0
- package/dist/LinearGenomeView/components/SequenceSearchDialog.d.ts +0 -1
- package/dist/LinearGenomeView/components/TrackContainer.d.ts +0 -1
- package/dist/LinearGenomeView/components/TrackContainer.js +8 -2
- package/dist/LinearGenomeView/components/TrackContainer.js.map +1 -1
- package/dist/LinearGenomeView/components/TracksContainer.js +5 -7
- package/dist/LinearGenomeView/components/TracksContainer.js.map +1 -1
- package/dist/LinearGenomeView/components/VerticalGuide.d.ts +0 -1
- package/dist/LinearGenomeView/components/ZoomControls.d.ts +0 -1
- package/dist/LinearGenomeView/components/util.js +1 -1
- package/dist/LinearGenomeView/components/util.js.map +1 -1
- package/dist/LinearGenomeView/model.d.ts +49 -36
- package/dist/LinearGenomeView/model.js +121 -198
- package/dist/LinearGenomeView/model.js.map +1 -1
- package/dist/LinearGenomeView/svgcomponents/SVGBackground.d.ts +0 -1
- package/dist/LinearGenomeView/svgcomponents/SVGHeader.d.ts +0 -1
- package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +0 -1
- package/dist/LinearGenomeView/svgcomponents/SVGRuler.d.ts +0 -1
- package/dist/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +0 -1
- package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +0 -1
- package/dist/LinearGenomeView/svgcomponents/SVGTracks.d.ts +0 -1
- package/dist/LinearGenomeView/util.d.ts +29 -0
- package/dist/LinearGenomeView/util.js +79 -1
- package/dist/LinearGenomeView/util.js.map +1 -1
- package/dist/index.d.ts +189 -70
- package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +0 -1
- package/esm/BaseLinearDisplay/components/TooLargeMessage.d.ts +3 -4
- package/esm/BaseLinearDisplay/components/TooLargeMessage.js +7 -3
- package/esm/BaseLinearDisplay/components/TooLargeMessage.js.map +1 -1
- package/esm/BaseLinearDisplay/components/Tooltip.d.ts +0 -1
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +75 -14
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +40 -34
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -1
- package/esm/BaseLinearDisplay/models/configSchema.d.ts +35 -1
- package/esm/BaseLinearDisplay/models/configSchema.js +9 -0
- package/esm/BaseLinearDisplay/models/configSchema.js.map +1 -1
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +10 -6
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
- package/esm/BaseLinearDisplay/models/util.d.ts +6 -2
- package/esm/BaseLinearDisplay/models/util.js +2 -2
- package/esm/BaseLinearDisplay/models/util.js.map +1 -1
- package/esm/BasicTrack/configSchema.d.ts +73 -1
- package/esm/FeatureTrack/configSchema.d.ts +75 -1
- package/esm/LinearBareDisplay/configSchema.d.ts +28 -1
- package/esm/LinearBareDisplay/model.d.ts +62 -11
- package/esm/LinearBareDisplay/model.js +1 -1
- package/esm/LinearBareDisplay/model.js.map +1 -1
- package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +0 -1
- package/esm/LinearBasicDisplay/configSchema.d.ts +28 -1
- package/esm/LinearBasicDisplay/configSchema.js +0 -9
- package/esm/LinearBasicDisplay/configSchema.js.map +1 -1
- package/esm/LinearBasicDisplay/model.d.ts +71 -10
- package/esm/LinearGenomeView/components/CenterLine.d.ts +0 -1
- package/esm/LinearGenomeView/components/Cytobands.d.ts +22 -23
- package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +0 -1
- package/esm/LinearGenomeView/components/GetSequenceDialog.d.ts +0 -1
- package/esm/LinearGenomeView/components/GetSequenceDialog.js +15 -17
- package/esm/LinearGenomeView/components/GetSequenceDialog.js.map +1 -1
- package/esm/LinearGenomeView/components/Gridlines.d.ts +0 -1
- package/esm/LinearGenomeView/components/Header.d.ts +0 -1
- package/esm/LinearGenomeView/components/HelpDialog.d.ts +0 -1
- package/esm/LinearGenomeView/components/ImportForm.d.ts +0 -1
- package/esm/LinearGenomeView/components/ImportForm.js +5 -8
- package/esm/LinearGenomeView/components/ImportForm.js.map +1 -1
- package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +0 -1
- package/esm/LinearGenomeView/components/LinearGenomeView.js +0 -4
- package/esm/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
- package/esm/LinearGenomeView/components/MiniControls.d.ts +0 -1
- package/esm/LinearGenomeView/components/OverviewScalebar.js +2 -1
- package/esm/LinearGenomeView/components/OverviewScalebar.js.map +1 -1
- package/esm/LinearGenomeView/components/RefNameAutocomplete.js +43 -36
- package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -1
- package/esm/LinearGenomeView/components/RubberbandSpan.d.ts +0 -1
- package/esm/LinearGenomeView/components/SearchBox.d.ts +0 -1
- package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +5 -3
- package/esm/LinearGenomeView/components/SearchResultsDialog.js +7 -83
- package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +1 -1
- package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +8 -0
- package/esm/LinearGenomeView/components/SearchResultsTable.js +77 -0
- package/esm/LinearGenomeView/components/SearchResultsTable.js.map +1 -0
- package/esm/LinearGenomeView/components/SequenceSearchDialog.d.ts +0 -1
- package/esm/LinearGenomeView/components/TrackContainer.d.ts +0 -1
- package/esm/LinearGenomeView/components/TrackContainer.js +8 -2
- package/esm/LinearGenomeView/components/TrackContainer.js.map +1 -1
- package/esm/LinearGenomeView/components/TracksContainer.js +5 -7
- package/esm/LinearGenomeView/components/TracksContainer.js.map +1 -1
- package/esm/LinearGenomeView/components/VerticalGuide.d.ts +0 -1
- package/esm/LinearGenomeView/components/ZoomControls.d.ts +0 -1
- package/esm/LinearGenomeView/components/util.js +1 -1
- package/esm/LinearGenomeView/components/util.js.map +1 -1
- package/esm/LinearGenomeView/model.d.ts +49 -36
- package/esm/LinearGenomeView/model.js +122 -199
- package/esm/LinearGenomeView/model.js.map +1 -1
- package/esm/LinearGenomeView/svgcomponents/SVGBackground.d.ts +0 -1
- package/esm/LinearGenomeView/svgcomponents/SVGHeader.d.ts +0 -1
- package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +0 -1
- package/esm/LinearGenomeView/svgcomponents/SVGRuler.d.ts +0 -1
- package/esm/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +0 -1
- package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +0 -1
- package/esm/LinearGenomeView/svgcomponents/SVGTracks.d.ts +0 -1
- package/esm/LinearGenomeView/util.d.ts +29 -0
- package/esm/LinearGenomeView/util.js +76 -0
- package/esm/LinearGenomeView/util.js.map +1 -1
- package/esm/index.d.ts +189 -70
- package/package.json +3 -3
- package/src/BaseLinearDisplay/components/TooLargeMessage.tsx +10 -6
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +46 -36
- package/src/BaseLinearDisplay/models/configSchema.ts +10 -0
- package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +19 -13
- package/src/BaseLinearDisplay/models/util.ts +10 -4
- package/src/LinearBareDisplay/model.ts +1 -1
- package/src/LinearBasicDisplay/configSchema.ts +0 -10
- package/src/LinearGenomeView/components/GetSequenceDialog.tsx +15 -25
- package/src/LinearGenomeView/components/ImportForm.tsx +4 -14
- package/src/LinearGenomeView/components/LinearGenomeView.tsx +0 -14
- package/src/LinearGenomeView/components/OverviewScalebar.tsx +2 -1
- package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +107 -65
- package/src/LinearGenomeView/components/SearchResultsDialog.tsx +17 -112
- package/src/LinearGenomeView/components/SearchResultsTable.tsx +121 -0
- package/src/LinearGenomeView/components/TrackContainer.tsx +12 -3
- package/src/LinearGenomeView/components/TracksContainer.tsx +9 -6
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.tsx.snap +11 -11
- package/src/LinearGenomeView/components/util.ts +2 -1
- package/src/LinearGenomeView/index.test.ts +10 -12
- package/src/LinearGenomeView/model.ts +163 -236
- package/src/LinearGenomeView/util.ts +98 -0
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AssemblyManager,
|
|
3
|
+
ParsedLocString,
|
|
4
|
+
parseLocString,
|
|
5
|
+
} from '@jbrowse/core/util'
|
|
6
|
+
|
|
1
7
|
/**
|
|
2
8
|
* Given a scale ( bp/px ) and minimum distances (px) between major and minor
|
|
3
9
|
* gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving
|
|
@@ -82,3 +88,95 @@ export function makeTicks(
|
|
|
82
88
|
}
|
|
83
89
|
return ticks
|
|
84
90
|
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Generate location objects for a set of parsed locstrings, which includes
|
|
94
|
+
* translating the refNames to assembly-canonical refNames and adding the
|
|
95
|
+
* 'parentRegion'
|
|
96
|
+
*
|
|
97
|
+
* Used by navToLocations and navToLocString
|
|
98
|
+
*/
|
|
99
|
+
export async function generateLocations(
|
|
100
|
+
regions: ParsedLocString[] = [],
|
|
101
|
+
assemblyManager: AssemblyManager,
|
|
102
|
+
assemblyName?: string,
|
|
103
|
+
) {
|
|
104
|
+
return Promise.all(
|
|
105
|
+
regions.map(async region => {
|
|
106
|
+
const asmName = region.assemblyName || assemblyName
|
|
107
|
+
if (!asmName) {
|
|
108
|
+
throw new Error('no assembly provided')
|
|
109
|
+
}
|
|
110
|
+
const asm = await assemblyManager.waitForAssembly(asmName)
|
|
111
|
+
const { refName } = region
|
|
112
|
+
if (!asm) {
|
|
113
|
+
throw new Error(`assembly ${asmName} not found`)
|
|
114
|
+
}
|
|
115
|
+
const { regions } = asm
|
|
116
|
+
if (!regions) {
|
|
117
|
+
throw new Error(`regions not loaded yet for ${asmName}`)
|
|
118
|
+
}
|
|
119
|
+
const canonicalRefName = asm.getCanonicalRefName(region.refName)
|
|
120
|
+
if (!canonicalRefName) {
|
|
121
|
+
throw new Error(`Could not find refName ${refName} in ${asm.name}`)
|
|
122
|
+
}
|
|
123
|
+
const parentRegion = regions.find(r => r.refName === canonicalRefName)
|
|
124
|
+
if (!parentRegion) {
|
|
125
|
+
throw new Error(`Could not find refName ${refName} in ${asmName}`)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
...(region as Omit<typeof region, symbol>),
|
|
130
|
+
assemblyName: asmName,
|
|
131
|
+
parentRegion,
|
|
132
|
+
}
|
|
133
|
+
}),
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Parses locString or space separated set of locStrings into location objects
|
|
139
|
+
* Example inputs:
|
|
140
|
+
* "chr1"
|
|
141
|
+
* "chr1:1-100"
|
|
142
|
+
* "chr1:1..100"
|
|
143
|
+
* "chr1 chr2"
|
|
144
|
+
* "chr1:1-100 chr2:1-100"
|
|
145
|
+
* "chr1 100 200" equivalent to "chr1:1-100"
|
|
146
|
+
*
|
|
147
|
+
* Used by navToLocString
|
|
148
|
+
*/
|
|
149
|
+
export function parseLocStrings(
|
|
150
|
+
input: string,
|
|
151
|
+
assemblyName: string,
|
|
152
|
+
isValidRefName: (str: string, assemblyName: string) => boolean,
|
|
153
|
+
) {
|
|
154
|
+
const inputs = input
|
|
155
|
+
.split(/(\s+)/)
|
|
156
|
+
.map(f => f.trim())
|
|
157
|
+
.filter(f => !!f)
|
|
158
|
+
// first try interpreting as a whitespace-separated sequence of
|
|
159
|
+
// multiple locstrings
|
|
160
|
+
try {
|
|
161
|
+
return inputs.map(loc =>
|
|
162
|
+
parseLocString(loc, ref => isValidRefName(ref, assemblyName)),
|
|
163
|
+
)
|
|
164
|
+
} catch (e) {
|
|
165
|
+
// if this fails, try interpreting as a whitespace-separated refname,
|
|
166
|
+
// start, end if start and end are integer inputs
|
|
167
|
+
const [refName, start, end] = inputs
|
|
168
|
+
if (
|
|
169
|
+
`${e}`.match(/Unknown reference sequence/) &&
|
|
170
|
+
Number.isInteger(+start) &&
|
|
171
|
+
Number.isInteger(+end)
|
|
172
|
+
) {
|
|
173
|
+
return [
|
|
174
|
+
parseLocString(refName + ':' + start + '..' + end, ref =>
|
|
175
|
+
isValidRefName(ref, assemblyName),
|
|
176
|
+
),
|
|
177
|
+
]
|
|
178
|
+
} else {
|
|
179
|
+
throw e
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|