@jbrowse/plugin-alignments 2.4.1 → 2.4.2

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.
Files changed (74) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +4 -4
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +88 -126
  3. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  4. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.d.ts +6 -0
  5. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +44 -0
  6. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +1 -0
  7. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +6 -0
  8. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js +37 -0
  9. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +1 -0
  10. package/dist/AlignmentsFeatureDetail/index.d.ts +1 -1
  11. package/dist/AlignmentsFeatureDetail/util.d.ts +8 -0
  12. package/dist/AlignmentsFeatureDetail/util.js +27 -0
  13. package/dist/AlignmentsFeatureDetail/util.js.map +1 -0
  14. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +2 -2
  15. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  16. package/dist/LinearAlignmentsDisplay/models/model.d.ts +1 -1
  17. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
  18. package/dist/LinearPileupDisplay/model.d.ts +27 -26
  19. package/dist/LinearReadArcsDisplay/model.d.ts +11 -19
  20. package/dist/LinearReadCloudDisplay/model.d.ts +11 -19
  21. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +20 -22
  22. package/dist/MismatchParser/index.js +2 -2
  23. package/dist/MismatchParser/index.js.map +1 -1
  24. package/dist/PileupRenderer/PileupRenderer.d.ts +1 -1
  25. package/dist/PileupRenderer/PileupRenderer.js +1 -1
  26. package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
  27. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +1 -1
  28. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
  29. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +4 -4
  30. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +88 -126
  31. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  32. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.d.ts +6 -0
  33. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +38 -0
  34. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +1 -0
  35. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +6 -0
  36. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js +31 -0
  37. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +1 -0
  38. package/esm/AlignmentsFeatureDetail/index.d.ts +1 -1
  39. package/esm/AlignmentsFeatureDetail/util.d.ts +8 -0
  40. package/esm/AlignmentsFeatureDetail/util.js +22 -0
  41. package/esm/AlignmentsFeatureDetail/util.js.map +1 -0
  42. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +2 -2
  43. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  44. package/esm/LinearAlignmentsDisplay/models/model.d.ts +1 -1
  45. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
  46. package/esm/LinearPileupDisplay/model.d.ts +27 -26
  47. package/esm/LinearReadArcsDisplay/model.d.ts +11 -19
  48. package/esm/LinearReadCloudDisplay/model.d.ts +11 -19
  49. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +20 -22
  50. package/esm/MismatchParser/index.js +2 -2
  51. package/esm/MismatchParser/index.js.map +1 -1
  52. package/esm/PileupRenderer/PileupRenderer.d.ts +1 -1
  53. package/esm/PileupRenderer/PileupRenderer.js +1 -1
  54. package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
  55. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +1 -1
  56. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
  57. package/package.json +2 -2
  58. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +109 -183
  59. package/src/AlignmentsFeatureDetail/AlignmentsFeatureFlags.tsx +62 -0
  60. package/src/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.tsx +51 -0
  61. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.tsx.snap +3 -2
  62. package/src/AlignmentsFeatureDetail/util.ts +27 -0
  63. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +2 -2
  64. package/src/LinearAlignmentsDisplay/models/model.tsx +1 -1
  65. package/src/MismatchParser/index.ts +2 -2
  66. package/src/PileupRenderer/PileupRenderer.ts +0 -1
  67. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +1 -1
  68. package/dist/NestedFrequencyTable.d.ts +0 -14
  69. package/dist/NestedFrequencyTable.js +0 -94
  70. package/dist/NestedFrequencyTable.js.map +0 -1
  71. package/esm/NestedFrequencyTable.d.ts +0 -14
  72. package/esm/NestedFrequencyTable.js +0 -91
  73. package/esm/NestedFrequencyTable.js.map +0 -1
  74. package/src/NestedFrequencyTable.ts +0 -113
@@ -1 +1 @@
1
- {"version":3,"file":"SNPCoverageRenderer.js","sourceRoot":"","sources":["../../src/SNPCoverageRenderer/SNPCoverageRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SNPCoverageRenderer.js","sourceRoot":"","sources":["../../src/SNPCoverageRenderer/SNPCoverageRenderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-alignments",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "description": "JBrowse 2 alignments adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -65,5 +65,5 @@
65
65
  "distModule": "esm/index.js",
66
66
  "srcModule": "src/index.ts",
67
67
  "module": "esm/index.js",
68
- "gitHead": "747c50c4edc0184827efa4f8dfc576ca9a72caeb"
68
+ "gitHead": "36e382a70e7d220343b873e7e6aba5c83e5342c8"
69
69
  }
@@ -1,196 +1,121 @@
1
1
  import React, { useState } from 'react'
2
- import {
3
- Typography,
4
- Link,
5
- Paper,
6
- Checkbox,
7
- FormControlLabel,
8
- FormGroup,
9
- } from '@mui/material'
10
- import { makeStyles } from 'tss-react/mui'
2
+ import { Link, Paper } from '@mui/material'
11
3
  import { observer } from 'mobx-react'
12
- import { getSession } from '@jbrowse/core/util'
13
4
  import copy from 'copy-to-clipboard'
14
5
  import clone from 'clone'
15
- import {
16
- FeatureDetails,
17
- BaseCard,
18
- SimpleValue,
19
- } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
20
- import { parseCigar } from '../MismatchParser'
6
+ import { FeatureDetails } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
7
+ import { IAnyStateTreeNode } from 'mobx-state-tree'
21
8
 
22
- const useStyles = makeStyles()({
23
- compact: {
24
- paddingRight: 0,
25
- paddingTop: 0,
26
- paddingBottom: 0,
27
- },
28
- })
9
+ // locals
10
+ import { getTag, navToLoc } from './util'
11
+ import SupplementaryAlignments from './AlignmentsFeatureSuppAligns'
12
+ import AlignmentFlags from './AlignmentsFeatureFlags'
29
13
 
30
14
  const omit = ['clipPos', 'flags']
31
15
 
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
- function AlignmentFlags(props: { feature: any }) {
34
- const { classes } = useStyles()
35
- const { feature } = props
36
- const { flags } = feature
37
- const flagNames = [
38
- 'read paired',
39
- 'read mapped in proper pair',
40
- 'read unmapped',
41
- 'mate unmapped',
42
- 'read reverse strand',
43
- 'mate reverse strand',
44
- 'first in pair',
45
- 'second in pair',
46
- 'not primary alignment',
47
- 'read fails platform/vendor quality checks',
48
- 'read is PCR or optical duplicate',
49
- 'supplementary alignment',
50
- ]
51
- return (
52
- <BaseCard {...props} title="Flags">
53
- <SimpleValue name={'Flag'} value={flags} />
54
-
55
- <FormGroup>
56
- {flagNames.map((name, index) => {
57
- const val = flags & (1 << index)
58
- const key = `${name}_${val}`
59
- return (
60
- <FormControlLabel
61
- key={key}
62
- control={
63
- <Checkbox
64
- className={classes.compact}
65
- checked={Boolean(val)}
66
- name={name}
67
- readOnly
68
- />
69
- }
70
- label={name}
71
- />
72
- )
73
- })}
74
- </FormGroup>
75
- </BaseCard>
76
- )
16
+ const tags = {
17
+ AM: 'The smallest template-independent mapping quality in the template',
18
+ AS: 'Alignment score generated by aligner',
19
+ BC: 'Barcode sequence identifying the sample',
20
+ BQ: 'Offset to base alignment quality (BAQ)',
21
+ BZ: 'Phred quality of the unique molecular barcode bases in the {OX} tag',
22
+ CB: 'Cell identifier',
23
+ CC: 'Reference name of the next hit',
24
+ CM: 'Edit distance between the color sequence and the color reference (see also {NM})',
25
+ CO: 'Free-text comments',
26
+ CP: 'Leftmost coordinate of the next hit',
27
+ CQ: 'Color read base qualities',
28
+ CR: 'Cellular barcode sequence bases (uncorrected)',
29
+ CS: 'Color read sequence',
30
+ CT: 'Complete read annotation tag, used for consensus annotation dummy features',
31
+ CY: 'Phred quality of the cellular barcode sequence in the {CR} tag',
32
+ E2: 'The 2nd most likely base calls',
33
+ FI: 'The index of segment in the template',
34
+ FS: 'Segment suffix',
35
+ FZ: 'Flow signal intensities',
36
+ GC: 'Reserved for backwards compatibility reasons',
37
+ GQ: 'Reserved for backwards compatibility reasons',
38
+ GS: 'Reserved for backwards compatibility reasons',
39
+ H0: 'Number of perfect hits',
40
+ H1: 'Number of 1-difference hits (see also {NM})',
41
+ H2: 'Number of 2-difference hits',
42
+ HI: 'Query hit index',
43
+ IH: 'Query hit total count',
44
+ LB: 'Library',
45
+ MC: 'CIGAR string for mate/next segment',
46
+ MD: 'String encoding mismatched and deleted reference bases',
47
+ MF: 'Reserved for backwards compatibility reasons',
48
+ MI: 'Molecular identifier; a string that uniquely identifies the molecule from which the record was derived',
49
+ ML: 'Base modification probabilities',
50
+ MM: 'Base modifications / methylation ',
51
+ MQ: 'Mapping quality of the mate/next segment',
52
+ NH: 'Number of reported alignments that contain the query in the current record',
53
+ NM: 'Edit distance to the reference',
54
+ OA: 'Original alignment',
55
+ OC: 'Original CIGAR (deprecated; use {OA} instead)',
56
+ OP: 'Original mapping position (deprecated; use {OA} instead)',
57
+ OQ: 'Original base quality',
58
+ OX: 'Original unique molecular barcode bases',
59
+ PG: 'Program',
60
+ PQ: 'Phred likelihood of the template',
61
+ PT: 'Read annotations for parts of the padded read sequence',
62
+ PU: 'Platform unit',
63
+ Q2: 'Phred quality of the mate/next segment sequence in the {R2} tag',
64
+ QT: 'Phred quality of the sample barcode sequence in the {BC} tag',
65
+ QX: 'Quality score of the unique molecular identifier in the {RX} tag',
66
+ R2: 'Sequence of the mate/next segment in the template',
67
+ RG: 'Read group',
68
+ RT: 'Reserved for backwards compatibility reasons',
69
+ RX: 'Sequence bases of the (possibly corrected) unique molecular identifier',
70
+ S2: 'Reserved for backwards compatibility reasons',
71
+ SA: 'Other canonical alignments in a chimeric alignment',
72
+ SM: 'Template-independent mapping quality',
73
+ SQ: 'Reserved for backwards compatibility reasons',
74
+ TC: 'The number of segments in the template',
75
+ TS: 'Transcript strand',
76
+ U2: 'Phred probability of the 2nd call being wrong conditional on the best being wrong',
77
+ UQ: 'Phred likelihood of the segment, conditional on the mapping being correct',
77
78
  }
78
79
 
79
80
  function Formatter({ value }: { value: unknown }) {
80
81
  const [show, setShow] = useState(false)
81
82
  const [copied, setCopied] = useState(false)
82
83
  const display = String(value)
83
- if (display.length > 100) {
84
- return (
85
- <>
86
- <button
87
- type="button"
88
- onClick={() => {
89
- copy(display)
90
- setCopied(true)
91
- setTimeout(() => {
92
- setCopied(false)
93
- }, 700)
94
- }}
95
- >
96
- {copied ? 'Copied to clipboard' : 'Copy'}
97
- </button>
98
- <button type="button" onClick={() => setShow(val => !val)}>
99
- {show ? 'Show less' : 'Show more'}
100
- </button>
101
- <div>{show ? display : `${display.slice(0, 100)}...`}</div>
102
- </>
103
- )
104
- }
105
- return <div>{display}</div>
106
- }
107
-
108
- // utility function to get length of alignment from cigar
109
- function getLengthOnRef(cigar: string) {
110
- const cigarOps = parseCigar(cigar)
111
- let lengthOnRef = 0
112
- for (let i = 0; i < cigarOps.length; i += 2) {
113
- const len = +cigarOps[i]
114
- const op = cigarOps[i + 1]
115
- if (op !== 'H' && op !== 'S' && op !== 'I') {
116
- lengthOnRef += len
117
- }
118
- }
119
- return lengthOnRef
120
- }
121
-
122
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
123
- function SupplementaryAlignments(props: { tag: string; model: any }) {
124
- const { tag, model } = props
125
- const session = getSession(model)
126
- return (
127
- <BaseCard {...props} title="Supplementary alignments">
128
- <Typography>List of supplementary alignment locations</Typography>
129
- <ul>
130
- {tag
131
- .split(';')
132
- .filter(SA => !!SA)
133
- .map((SA, index) => {
134
- const [saRef, saStart, saStrand, saCigar] = SA.split(',')
135
- const saLength = getLengthOnRef(saCigar)
136
- const extra = Math.floor(saLength / 5)
137
- const start = +saStart
138
- const end = +saStart + saLength
139
- const locString = `${saRef}:${Math.max(1, start - extra)}-${
140
- end + extra
141
- }`
142
- const displayStart = start.toLocaleString('en-US')
143
- const displayEnd = end.toLocaleString('en-US')
144
- const displayString = `${saRef}:${displayStart}-${displayEnd} (${saStrand})`
145
- return (
146
- <li key={`${locString}-${index}`}>
147
- <Link
148
- onClick={async event => {
149
- event.preventDefault()
150
- const { view } = model
151
- try {
152
- if (view) {
153
- await view.navToLocString(locString)
154
- } else {
155
- throw new Error(
156
- 'No view associated with this view anymore',
157
- )
158
- }
159
- } catch (e) {
160
- console.error(e)
161
- session.notify(`${e}`)
162
- }
163
- }}
164
- href="#"
165
- >
166
- {displayString}
167
- </Link>
168
- </li>
169
- )
170
- })}
171
- </ul>
172
- </BaseCard>
84
+ return display.length > 100 ? (
85
+ <>
86
+ <button
87
+ type="button"
88
+ onClick={() => {
89
+ copy(display)
90
+ setCopied(true)
91
+ setTimeout(() => setCopied(false), 700)
92
+ }}
93
+ >
94
+ {copied ? 'Copied to clipboard' : 'Copy'}
95
+ </button>
96
+ <button type="button" onClick={() => setShow(val => !val)}>
97
+ {show ? 'Show less' : 'Show more'}
98
+ </button>
99
+ <div>{show ? display : `${display.slice(0, 100)}...`}</div>
100
+ </>
101
+ ) : (
102
+ <div>{display}</div>
173
103
  )
174
104
  }
175
105
 
176
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
- function PairLink({ locString, model }: { locString: string; model: any }) {
178
- const session = getSession(model)
106
+ function PairLink({
107
+ locString,
108
+ model,
109
+ }: {
110
+ locString: string
111
+ model: IAnyStateTreeNode
112
+ }) {
179
113
  return (
180
114
  <Link
181
- onClick={async () => {
182
- const { view } = model
183
- if (!view) {
184
- throw new Error(
185
- 'No view associated with this feature detail panel anymore',
186
- )
187
- }
188
- try {
189
- await view.navToLocString(locString)
190
- } catch (e) {
191
- console.error(e)
192
- session.notify(`${e}`)
193
- }
115
+ onClick={event => {
116
+ event.preventDefault()
117
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
118
+ navToLoc(locString, model)
194
119
  }}
195
120
  href="#"
196
121
  >
@@ -199,24 +124,27 @@ function PairLink({ locString, model }: { locString: string; model: any }) {
199
124
  )
200
125
  }
201
126
 
202
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
- function AlignmentFeatureDetails(props: { model: any }) {
127
+ export default observer(function AlignmentFeatureDetails(props: {
128
+ model: IAnyStateTreeNode
129
+ }) {
204
130
  const { model } = props
205
131
  const feat = clone(model.featureData)
206
- const SA = (feat.tags && feat.tags.SA) || feat.SA
132
+ const SA = getTag('SA', feat) as string
207
133
  return (
208
134
  <Paper data-testid="alignment-side-drawer">
209
135
  <FeatureDetails
210
136
  {...props}
211
137
  omit={omit}
138
+ // @ts-expect-error
139
+ descriptions={{ ...tags, tags }}
212
140
  feature={feat}
213
- formatter={(value, key) => {
214
- return key === 'next_segment_position' ? (
141
+ formatter={(value, key) =>
142
+ key === 'next_segment_position' ? (
215
143
  <PairLink model={model} locString={value as string} />
216
144
  ) : (
217
145
  <Formatter value={value} />
218
146
  )
219
- }}
147
+ }
220
148
  />
221
149
  {SA ? <SupplementaryAlignments model={model} tag={SA} /> : null}
222
150
  {feat.flags !== undefined ? (
@@ -224,6 +152,4 @@ function AlignmentFeatureDetails(props: { model: any }) {
224
152
  ) : null}
225
153
  </Paper>
226
154
  )
227
- }
228
-
229
- export default observer(AlignmentFeatureDetails)
155
+ })
@@ -0,0 +1,62 @@
1
+ import React from 'react'
2
+ import { Checkbox, FormControlLabel, FormGroup } from '@mui/material'
3
+ import { makeStyles } from 'tss-react/mui'
4
+ import {
5
+ BaseCard,
6
+ SimpleValue,
7
+ } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
8
+
9
+ const useStyles = makeStyles()({
10
+ compact: {
11
+ paddingRight: 0,
12
+ paddingTop: 0,
13
+ paddingBottom: 0,
14
+ },
15
+ })
16
+
17
+ const flagNames = [
18
+ 'read paired',
19
+ 'read mapped in proper pair',
20
+ 'read unmapped',
21
+ 'mate unmapped',
22
+ 'read reverse strand',
23
+ 'mate reverse strand',
24
+ 'first in pair',
25
+ 'second in pair',
26
+ 'not primary alignment',
27
+ 'read fails platform/vendor quality checks',
28
+ 'read is PCR or optical duplicate',
29
+ 'supplementary alignment',
30
+ ]
31
+
32
+ export default function AlignmentFlags(props: { feature: { flags: number } }) {
33
+ const { classes } = useStyles()
34
+ const { feature } = props
35
+ const { flags } = feature
36
+
37
+ return (
38
+ <BaseCard {...props} title="Flags">
39
+ <SimpleValue name="Flag" value={flags} />
40
+ <FormGroup>
41
+ {flagNames.map((name, idx) => {
42
+ const val = flags & (1 << idx)
43
+ const key = `${name}_${val}`
44
+ return (
45
+ <FormControlLabel
46
+ key={key}
47
+ control={
48
+ <Checkbox
49
+ className={classes.compact}
50
+ checked={Boolean(val)}
51
+ name={name}
52
+ readOnly
53
+ />
54
+ }
55
+ label={name}
56
+ />
57
+ )
58
+ })}
59
+ </FormGroup>
60
+ </BaseCard>
61
+ )
62
+ }
@@ -0,0 +1,51 @@
1
+ import React from 'react'
2
+ import { Typography, Link } from '@mui/material'
3
+ import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
4
+ import { getLengthOnRef } from '../MismatchParser'
5
+ import { IAnyStateTreeNode } from 'mobx-state-tree'
6
+ import { navToLoc } from './util'
7
+
8
+ export default function SupplementaryAlignments(props: {
9
+ tag: string
10
+ model: IAnyStateTreeNode
11
+ }) {
12
+ const { tag, model } = props
13
+ return (
14
+ <BaseCard {...props} title="Supplementary alignments">
15
+ <Typography>List of supplementary alignment locations</Typography>
16
+ <ul>
17
+ {tag
18
+ .split(';')
19
+ .filter(SA => !!SA)
20
+ .map((SA, index) => {
21
+ const [saRef, saStart, saStrand, saCigar] = SA.split(',')
22
+ const saLength = getLengthOnRef(saCigar)
23
+ const extra = Math.floor(saLength / 5)
24
+ const start = +saStart
25
+ const end = +saStart + saLength
26
+ const locString = `${saRef}:${Math.max(1, start - extra)}-${
27
+ end + extra
28
+ }`
29
+ const displayStart = start.toLocaleString('en-US')
30
+ const displayEnd = end.toLocaleString('en-US')
31
+ const displayString = `${saRef}:${displayStart}-${displayEnd} (${saStrand}) [${saLength}bp]`
32
+ return (
33
+ <li key={`${locString}-${index}`}>
34
+ <Link
35
+ onClick={async event => {
36
+ event.preventDefault()
37
+
38
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
39
+ navToLoc(locString, model)
40
+ }}
41
+ href="#"
42
+ >
43
+ {displayString}
44
+ </Link>
45
+ </li>
46
+ )
47
+ })}
48
+ </ul>
49
+ </BaseCard>
50
+ )
51
+ }
@@ -197,8 +197,9 @@ exports[`open up a widget 1`] = `
197
197
  class="css-1m8nxnb-field"
198
198
  >
199
199
  <div
200
- class="css-1q83rf3-fieldName"
201
- style="width: 96px;"
200
+ aria-label="Mapping quality of the mate/next segment"
201
+ class="css-18vnxxj-fieldDescription-fieldName"
202
+ data-mui-internal-clone-element="true"
202
203
  >
203
204
  MQ
204
205
  </div>
@@ -0,0 +1,27 @@
1
+ import { getSession } from '@jbrowse/core/util'
2
+ import { IAnyStateTreeNode } from 'mobx-state-tree'
3
+
4
+ export function getTag(
5
+ tag: string,
6
+ feat: {
7
+ tags?: { [key: string]: unknown }
8
+ [key: string]: unknown
9
+ },
10
+ ) {
11
+ return feat.tags?.[tag] || feat[tag]
12
+ }
13
+
14
+ export async function navToLoc(locString: string, model: IAnyStateTreeNode) {
15
+ const session = getSession(model)
16
+ const { view } = model
17
+ try {
18
+ if (view) {
19
+ await view.navToLocString(locString)
20
+ } else {
21
+ throw new Error('No view associated with this view anymore')
22
+ }
23
+ } catch (e) {
24
+ console.error(e)
25
+ session.notify(`${e}`)
26
+ }
27
+ }
@@ -9,7 +9,7 @@ import { AlignmentsDisplayModel } from '../models/model'
9
9
 
10
10
  const useStyles = makeStyles()({
11
11
  resizeHandle: {
12
- height: 2,
12
+ height: 5,
13
13
  position: 'absolute',
14
14
  zIndex: 2,
15
15
  },
@@ -33,7 +33,7 @@ function AlignmentsDisplay({ model }: { model: AlignmentsDisplayModel }) {
33
33
  return delta
34
34
  }}
35
35
  className={classes.resizeHandle}
36
- style={{ top }}
36
+ style={{ top: top - 4 }}
37
37
  />
38
38
 
39
39
  <div
@@ -234,7 +234,7 @@ function stateModelFactory(
234
234
  /**
235
235
  * #action
236
236
  */
237
- updateStatsLimit(stats: unknown) {
237
+ updateStatsLimit(stats?: unknown) {
238
238
  self.PileupDisplay.updateStatsLimit(stats)
239
239
  self.SNPCoverageDisplay.updateStatsLimit(stats)
240
240
  },
@@ -327,8 +327,8 @@ export function getModificationPositions(
327
327
  }
328
328
 
329
329
  export function getModificationTypes(mm: string) {
330
- const mods = mm.split(';')
331
- return mods
330
+ return mm
331
+ .split(';')
332
332
  .filter(mod => !!mod)
333
333
  .flatMap(mod => {
334
334
  const [basemod] = mod.split(',')
@@ -806,7 +806,6 @@ export default class PileupRenderer extends BoxRendererType {
806
806
  canvasWidth,
807
807
  drawSNPsMuted,
808
808
  drawIndels = true,
809
- theme,
810
809
  }: {
811
810
  ctx: CanvasRenderingContext2D
812
811
  feat: LayoutFeature
@@ -144,7 +144,7 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
144
144
 
145
145
  const score = feature.get('score') as number
146
146
  const snpinfo = feature.get('snpinfo') as SNPInfo
147
- const w = Math.max(rightPx - leftPx + fudgeFactor, 1)
147
+ const w = Math.max(rightPx - leftPx, 1)
148
148
  const totalScore = snpinfo.total
149
149
  const keys = Object.keys(snpinfo.cov).sort()
150
150
 
@@ -1,14 +0,0 @@
1
- export default class NestedFrequencyTable {
2
- categories: {
3
- [key: string]: any;
4
- };
5
- constructor(initialData?: {});
6
- total(): number;
7
- decrement(slotName: string, amount: number): any;
8
- increment(slotName: string, amount: number): any;
9
- get(slotName: string): any;
10
- getNested(path: string | string[]): any;
11
- toString(): string;
12
- valueOf(): number;
13
- forEach(func: Function, ctx: any): void;
14
- }