@jbrowse/plugin-alignments 1.7.11 → 2.1.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/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +192 -216
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
- package/dist/AlignmentsFeatureDetail/index.d.ts +3 -3
- package/dist/AlignmentsFeatureDetail/index.js +48 -44
- package/dist/AlignmentsFeatureDetail/index.js.map +1 -0
- package/dist/AlignmentsTrack/index.js +24 -32
- package/dist/AlignmentsTrack/index.js.map +1 -0
- package/dist/BamAdapter/BamAdapter.d.ts +6 -1
- package/dist/BamAdapter/BamAdapter.js +345 -585
- package/dist/BamAdapter/BamAdapter.js.map +1 -0
- package/dist/BamAdapter/BamSlightlyLazyFeature.js +143 -174
- package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
- package/dist/BamAdapter/MismatchParser.d.ts +1 -1
- package/dist/BamAdapter/MismatchParser.js +341 -417
- package/dist/BamAdapter/MismatchParser.js.map +1 -0
- package/dist/BamAdapter/configSchema.js +33 -46
- package/dist/BamAdapter/configSchema.js.map +1 -0
- package/dist/BamAdapter/index.js +36 -32
- package/dist/BamAdapter/index.js.map +1 -0
- package/dist/CramAdapter/CramAdapter.js +376 -644
- package/dist/CramAdapter/CramAdapter.js.map +1 -0
- package/dist/CramAdapter/CramSlightlyLazyFeature.js +374 -439
- package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
- package/dist/CramAdapter/CramTestAdapters.js +169 -227
- package/dist/CramAdapter/CramTestAdapters.js.map +1 -0
- package/dist/CramAdapter/configSchema.js +28 -38
- package/dist/CramAdapter/configSchema.js.map +1 -0
- package/dist/CramAdapter/index.js +37 -32
- package/dist/CramAdapter/index.js.map +1 -0
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +91 -93
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
- package/dist/HtsgetBamAdapter/configSchema.js +19 -29
- package/dist/HtsgetBamAdapter/configSchema.js.map +1 -0
- package/dist/HtsgetBamAdapter/index.js +44 -38
- package/dist/HtsgetBamAdapter/index.js.map +1 -0
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +36 -65
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
- package/dist/LinearAlignmentsDisplay/index.js +22 -28
- package/dist/LinearAlignmentsDisplay/index.js.map +1 -0
- package/dist/LinearAlignmentsDisplay/models/configSchema.js +12 -23
- package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +10 -10
- package/dist/LinearAlignmentsDisplay/models/model.js +257 -245
- package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -0
- package/dist/LinearPileupDisplay/components/ColorByModifications.js +98 -116
- package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
- package/dist/LinearPileupDisplay/components/ColorByTag.js +82 -91
- package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
- package/dist/LinearPileupDisplay/components/FilterByTag.js +156 -192
- package/dist/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +15 -29
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +79 -93
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js +78 -81
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
- package/dist/LinearPileupDisplay/components/SortByTag.js +80 -88
- package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -0
- package/dist/LinearPileupDisplay/configSchema.js +40 -42
- package/dist/LinearPileupDisplay/configSchema.js.map +1 -0
- package/dist/LinearPileupDisplay/index.js +21 -27
- package/dist/LinearPileupDisplay/index.js.map +1 -0
- package/dist/LinearPileupDisplay/model.d.ts +27 -17
- package/dist/LinearPileupDisplay/model.js +701 -797
- package/dist/LinearPileupDisplay/model.js.map +1 -0
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +5 -2
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +103 -77
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
- package/dist/LinearSNPCoverageDisplay/index.js +21 -27
- package/dist/LinearSNPCoverageDisplay/index.js.map +1 -0
- package/dist/LinearSNPCoverageDisplay/models/configSchema.js +45 -55
- package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +41 -17
- package/dist/LinearSNPCoverageDisplay/models/model.js +258 -230
- package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -0
- package/dist/NestedFrequencyTable.js +104 -139
- package/dist/NestedFrequencyTable.js.map +1 -0
- package/dist/PileupRPC/rpcMethods.js +199 -278
- package/dist/PileupRPC/rpcMethods.js.map +1 -0
- package/dist/PileupRenderer/PileupLayoutSession.js +56 -76
- package/dist/PileupRenderer/PileupLayoutSession.js.map +1 -0
- package/dist/PileupRenderer/PileupRenderer.d.ts +4 -8
- package/dist/PileupRenderer/PileupRenderer.js +938 -1205
- package/dist/PileupRenderer/PileupRenderer.js.map +1 -0
- package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
- package/dist/PileupRenderer/components/PileupRendering.js +173 -253
- package/dist/PileupRenderer/components/PileupRendering.js.map +1 -0
- package/dist/PileupRenderer/configSchema.js +65 -71
- package/dist/PileupRenderer/configSchema.js.map +1 -0
- package/dist/PileupRenderer/index.js +17 -22
- package/dist/PileupRenderer/index.js.map +1 -0
- package/dist/PileupRenderer/sortUtil.js +83 -107
- package/dist/PileupRenderer/sortUtil.js.map +1 -0
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +437 -589
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
- package/dist/SNPCoverageAdapter/configSchema.js +10 -20
- package/dist/SNPCoverageAdapter/configSchema.js.map +1 -0
- package/dist/SNPCoverageAdapter/index.js +46 -41
- package/dist/SNPCoverageAdapter/index.js.map +1 -0
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -2
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +265 -290
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
- package/dist/SNPCoverageRenderer/configSchema.js +30 -39
- package/dist/SNPCoverageRenderer/configSchema.js.map +1 -0
- package/dist/SNPCoverageRenderer/index.js +19 -30
- package/dist/SNPCoverageRenderer/index.js.map +1 -0
- package/dist/index.js +135 -152
- package/dist/index.js.map +1 -0
- package/dist/shared.js +84 -92
- package/dist/shared.js.map +1 -0
- package/dist/util.js +130 -121
- package/dist/util.js.map +1 -0
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +6 -0
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +145 -0
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
- package/esm/AlignmentsFeatureDetail/index.d.ts +38 -0
- package/esm/AlignmentsFeatureDetail/index.js +23 -0
- package/esm/AlignmentsFeatureDetail/index.js.map +1 -0
- package/esm/AlignmentsTrack/index.d.ts +2 -0
- package/esm/AlignmentsTrack/index.js +23 -0
- package/esm/AlignmentsTrack/index.js.map +1 -0
- package/esm/BamAdapter/BamAdapter.d.ts +45 -0
- package/esm/BamAdapter/BamAdapter.js +173 -0
- package/esm/BamAdapter/BamAdapter.js.map +1 -0
- package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +33 -0
- package/esm/BamAdapter/BamSlightlyLazyFeature.js +107 -0
- package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
- package/esm/BamAdapter/MismatchParser.d.ts +25 -0
- package/esm/BamAdapter/MismatchParser.js +294 -0
- package/esm/BamAdapter/MismatchParser.js.map +1 -0
- package/esm/BamAdapter/configSchema.d.ts +2 -0
- package/esm/BamAdapter/configSchema.js +31 -0
- package/esm/BamAdapter/configSchema.js.map +1 -0
- package/esm/BamAdapter/index.d.ts +3 -0
- package/esm/BamAdapter/index.js +10 -0
- package/esm/BamAdapter/index.js.map +1 -0
- package/esm/CramAdapter/CramAdapter.d.ts +53 -0
- package/esm/CramAdapter/CramAdapter.js +228 -0
- package/esm/CramAdapter/CramAdapter.js.map +1 -0
- package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +49 -0
- package/esm/CramAdapter/CramSlightlyLazyFeature.js +349 -0
- package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
- package/esm/CramAdapter/CramTestAdapters.d.ts +29 -0
- package/esm/CramAdapter/CramTestAdapters.js +70 -0
- package/esm/CramAdapter/CramTestAdapters.js.map +1 -0
- package/esm/CramAdapter/configSchema.d.ts +3 -0
- package/esm/CramAdapter/configSchema.js +26 -0
- package/esm/CramAdapter/configSchema.js.map +1 -0
- package/esm/CramAdapter/index.d.ts +3 -0
- package/esm/CramAdapter/index.js +11 -0
- package/esm/CramAdapter/index.js.map +1 -0
- package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +9 -0
- package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +27 -0
- package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
- package/esm/HtsgetBamAdapter/configSchema.d.ts +2 -0
- package/esm/HtsgetBamAdapter/configSchema.js +17 -0
- package/esm/HtsgetBamAdapter/configSchema.js.map +1 -0
- package/esm/HtsgetBamAdapter/index.d.ts +3 -0
- package/esm/HtsgetBamAdapter/index.js +16 -0
- package/esm/HtsgetBamAdapter/index.js.map +1 -0
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +7 -0
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +34 -0
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
- package/esm/LinearAlignmentsDisplay/index.d.ts +2 -0
- package/esm/LinearAlignmentsDisplay/index.js +19 -0
- package/esm/LinearAlignmentsDisplay/index.js.map +1 -0
- package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +4 -0
- package/esm/LinearAlignmentsDisplay/models/configSchema.js +12 -0
- package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
- package/esm/LinearAlignmentsDisplay/models/model.d.ts +105 -0
- package/esm/LinearAlignmentsDisplay/models/model.js +181 -0
- package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -0
- package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +14 -0
- package/esm/LinearPileupDisplay/components/ColorByModifications.js +71 -0
- package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
- package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +9 -0
- package/esm/LinearPileupDisplay/components/ColorByTag.js +45 -0
- package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
- package/esm/LinearPileupDisplay/components/FilterByTag.d.ts +18 -0
- package/esm/LinearPileupDisplay/components/FilterByTag.js +123 -0
- package/esm/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +13 -0
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +13 -0
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +16 -0
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +41 -0
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
- package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +10 -0
- package/esm/LinearPileupDisplay/components/SetMaxHeight.js +43 -0
- package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
- package/esm/LinearPileupDisplay/components/SortByTag.d.ts +9 -0
- package/esm/LinearPileupDisplay/components/SortByTag.js +43 -0
- package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -0
- package/esm/LinearPileupDisplay/configSchema.d.ts +6 -0
- package/esm/LinearPileupDisplay/configSchema.js +41 -0
- package/esm/LinearPileupDisplay/configSchema.js.map +1 -0
- package/esm/LinearPileupDisplay/index.d.ts +2 -0
- package/esm/LinearPileupDisplay/index.js +18 -0
- package/esm/LinearPileupDisplay/index.js.map +1 -0
- package/esm/LinearPileupDisplay/model.d.ts +332 -0
- package/esm/LinearPileupDisplay/model.js +575 -0
- package/esm/LinearPileupDisplay/model.js.map +1 -0
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +13 -0
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +56 -0
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
- package/esm/LinearSNPCoverageDisplay/index.d.ts +2 -0
- package/esm/LinearSNPCoverageDisplay/index.js +18 -0
- package/esm/LinearSNPCoverageDisplay/index.js.map +1 -0
- package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +2 -0
- package/esm/LinearSNPCoverageDisplay/models/configSchema.js +44 -0
- package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
- package/esm/LinearSNPCoverageDisplay/models/model.d.ts +370 -0
- package/esm/LinearSNPCoverageDisplay/models/model.js +186 -0
- package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -0
- package/esm/NestedFrequencyTable.d.ts +14 -0
- package/esm/NestedFrequencyTable.js +101 -0
- package/esm/NestedFrequencyTable.js.map +1 -0
- package/esm/PileupRPC/rpcMethods.d.ts +34 -0
- package/esm/PileupRPC/rpcMethods.js +70 -0
- package/esm/PileupRPC/rpcMethods.js.map +1 -0
- package/esm/PileupRenderer/PileupLayoutSession.d.ts +32 -0
- package/esm/PileupRenderer/PileupLayoutSession.js +32 -0
- package/esm/PileupRenderer/PileupLayoutSession.js.map +1 -0
- package/esm/PileupRenderer/PileupRenderer.d.ts +178 -0
- package/esm/PileupRenderer/PileupRenderer.js +830 -0
- package/esm/PileupRenderer/PileupRenderer.js.map +1 -0
- package/esm/PileupRenderer/components/PileupRendering.d.ts +23 -0
- package/esm/PileupRenderer/components/PileupRendering.js +138 -0
- package/esm/PileupRenderer/components/PileupRendering.js.map +1 -0
- package/esm/PileupRenderer/configSchema.d.ts +2 -0
- package/esm/PileupRenderer/configSchema.js +64 -0
- package/esm/PileupRenderer/configSchema.js.map +1 -0
- package/esm/PileupRenderer/index.d.ts +2 -0
- package/esm/PileupRenderer/index.js +12 -0
- package/esm/PileupRenderer/index.js.map +1 -0
- package/esm/PileupRenderer/sortUtil.d.ts +8 -0
- package/esm/PileupRenderer/sortUtil.js +80 -0
- package/esm/PileupRenderer/sortUtil.js.map +1 -0
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +67 -0
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +260 -0
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
- package/esm/SNPCoverageAdapter/configSchema.d.ts +3 -0
- package/esm/SNPCoverageAdapter/configSchema.js +6 -0
- package/esm/SNPCoverageAdapter/configSchema.js.map +1 -0
- package/esm/SNPCoverageAdapter/index.d.ts +3 -0
- package/esm/SNPCoverageAdapter/index.js +18 -0
- package/esm/SNPCoverageAdapter/index.js.map +1 -0
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +20 -0
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +185 -0
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
- package/esm/SNPCoverageRenderer/configSchema.d.ts +2 -0
- package/esm/SNPCoverageRenderer/configSchema.js +29 -0
- package/esm/SNPCoverageRenderer/configSchema.js.map +1 -0
- package/esm/SNPCoverageRenderer/index.d.ts +3 -0
- package/esm/SNPCoverageRenderer/index.js +14 -0
- package/esm/SNPCoverageRenderer/index.js.map +1 -0
- package/esm/index.d.ts +10 -0
- package/esm/index.js +91 -0
- package/esm/index.js.map +1 -0
- package/esm/shared.d.ts +25 -0
- package/esm/shared.js +28 -0
- package/esm/shared.js.map +1 -0
- package/esm/util.d.ts +19 -0
- package/esm/util.js +83 -0
- package/esm/util.js.map +1 -0
- package/package.json +23 -15
- package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +4 -4
- package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +321 -397
- package/src/BamAdapter/BamAdapter.ts +1 -1
- package/src/BamAdapter/MismatchParser.ts +2 -2
- package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +3 -3
- package/src/LinearPileupDisplay/components/ColorByModifications.tsx +7 -7
- package/src/LinearPileupDisplay/components/ColorByTag.tsx +5 -5
- package/src/LinearPileupDisplay/components/FilterByTag.tsx +5 -5
- package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +1 -1
- package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +9 -9
- package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +5 -5
- package/src/LinearPileupDisplay/components/SortByTag.tsx +5 -5
- package/src/LinearPileupDisplay/model.ts +18 -12
- package/src/LinearSNPCoverageDisplay/components/Tooltip.tsx +3 -4
- package/src/LinearSNPCoverageDisplay/models/model.ts +28 -26
- package/src/PileupRenderer/PileupRenderer.tsx +66 -56
- package/src/PileupRenderer/components/PileupRendering.tsx +11 -11
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +4 -3
- package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +8 -7
- package/dist/AlignmentsFeatureDetail/index.test.js +0 -60
- package/dist/BamAdapter/BamAdapter.test.js +0 -177
- package/dist/BamAdapter/MismatchParser.test.js +0 -251
- package/dist/CramAdapter/CramAdapter.test.js +0 -138
- package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +0 -83
- package/dist/LinearPileupDisplay/configSchema.test.js +0 -92
- package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +0 -62
- package/dist/PileupRenderer/components/PileupRendering.test.js +0 -36
- package/dist/declare.d.js +0 -1
- package/dist/index.test.js +0 -26
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Theme } from '@mui/material/styles'
|
|
2
2
|
import BoxRendererType, {
|
|
3
3
|
RenderArgs,
|
|
4
4
|
RenderArgsSerialized,
|
|
@@ -7,7 +7,6 @@ import BoxRendererType, {
|
|
|
7
7
|
ResultsSerialized,
|
|
8
8
|
ResultsDeserialized,
|
|
9
9
|
} from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType'
|
|
10
|
-
import { Theme } from '@material-ui/core'
|
|
11
10
|
import { createJBrowseTheme } from '@jbrowse/core/ui'
|
|
12
11
|
import {
|
|
13
12
|
bpSpanPx,
|
|
@@ -64,11 +63,13 @@ function fillRect(
|
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
function getColorBaseMap(theme: Theme) {
|
|
66
|
+
// @ts-ignore
|
|
67
|
+
const { bases } = theme.palette
|
|
67
68
|
return {
|
|
68
|
-
A:
|
|
69
|
-
C:
|
|
70
|
-
G:
|
|
71
|
-
T:
|
|
69
|
+
A: bases.A.main,
|
|
70
|
+
C: bases.C.main,
|
|
71
|
+
G: bases.G.main,
|
|
72
|
+
T: bases.T.main,
|
|
72
73
|
deletion: '#808080', // gray
|
|
73
74
|
}
|
|
74
75
|
}
|
|
@@ -137,8 +138,8 @@ interface LayoutFeature {
|
|
|
137
138
|
feature: Feature
|
|
138
139
|
}
|
|
139
140
|
|
|
140
|
-
function
|
|
141
|
-
return
|
|
141
|
+
function shouldDrawSNPsMuted(type?: string) {
|
|
142
|
+
return ['methylation', 'modifications'].includes(type || '')
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
function shouldDrawIndels(type?: string) {
|
|
@@ -152,7 +153,7 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
152
153
|
// letter M is approximately the height
|
|
153
154
|
getCharWidthHeight(ctx: CanvasRenderingContext2D) {
|
|
154
155
|
const charWidth = measureText('A')
|
|
155
|
-
const charHeight = measureText('M')
|
|
156
|
+
const charHeight = measureText('M') - 2
|
|
156
157
|
return { charWidth, charHeight }
|
|
157
158
|
}
|
|
158
159
|
|
|
@@ -244,7 +245,8 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
244
245
|
)
|
|
245
246
|
|
|
246
247
|
return {
|
|
247
|
-
|
|
248
|
+
// xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit
|
|
249
|
+
...(region as Omit<typeof region, symbol>),
|
|
248
250
|
start: Math.floor(Math.max(start - bpExpansion, 0)),
|
|
249
251
|
end: Math.ceil(end + bpExpansion),
|
|
250
252
|
}
|
|
@@ -453,7 +455,7 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
453
455
|
canvasWidth: number
|
|
454
456
|
}) {
|
|
455
457
|
const { feature, topPx, heightPx } = feat
|
|
456
|
-
const { modificationTagMap = {} } = renderArgs
|
|
458
|
+
const { Color, modificationTagMap = {} } = renderArgs
|
|
457
459
|
|
|
458
460
|
const mm = (getTagAlt(feature, 'MM', 'Mm') as string) || ''
|
|
459
461
|
|
|
@@ -481,6 +483,8 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
481
483
|
for (let i = 0; i < modifications.length; i++) {
|
|
482
484
|
const { type, positions } = modifications[i]
|
|
483
485
|
const col = modificationTagMap[type] || 'black'
|
|
486
|
+
|
|
487
|
+
// @ts-ignore
|
|
484
488
|
const base = Color(col)
|
|
485
489
|
for (const readPos of getNextRefPos(cigarOps, positions)) {
|
|
486
490
|
const r = start + readPos
|
|
@@ -826,7 +830,7 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
826
830
|
colorForBase,
|
|
827
831
|
contrastForBase,
|
|
828
832
|
canvasWidth,
|
|
829
|
-
|
|
833
|
+
drawSNPsMuted,
|
|
830
834
|
drawIndels = true,
|
|
831
835
|
}: {
|
|
832
836
|
ctx: CanvasRenderingContext2D
|
|
@@ -835,15 +839,15 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
835
839
|
colorForBase: { [key: string]: string }
|
|
836
840
|
contrastForBase: { [key: string]: string }
|
|
837
841
|
mismatchAlpha?: boolean
|
|
838
|
-
drawSNPs?: boolean
|
|
839
842
|
drawIndels?: boolean
|
|
843
|
+
drawSNPsMuted?: boolean
|
|
840
844
|
minSubfeatureWidth: number
|
|
841
845
|
largeInsertionIndicatorScale: number
|
|
842
846
|
charWidth: number
|
|
843
847
|
charHeight: number
|
|
844
848
|
canvasWidth: number
|
|
845
849
|
}) {
|
|
846
|
-
const { bpPerPx, regions } = renderArgs
|
|
850
|
+
const { Color, bpPerPx, regions } = renderArgs
|
|
847
851
|
const { heightPx, topPx, feature } = feat
|
|
848
852
|
const [region] = regions
|
|
849
853
|
const start = feature.get('start')
|
|
@@ -868,33 +872,39 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
868
872
|
const mbase = mismatch.base
|
|
869
873
|
const [leftPx, rightPx] = bpSpanPx(mstart, mstart + mlen, region, bpPerPx)
|
|
870
874
|
const widthPx = Math.max(minSubfeatureWidth, Math.abs(leftPx - rightPx))
|
|
871
|
-
if (mismatch.type === 'mismatch'
|
|
872
|
-
|
|
875
|
+
if (mismatch.type === 'mismatch') {
|
|
876
|
+
if (!drawSNPsMuted) {
|
|
877
|
+
const baseColor = colorForBase[mismatch.base] || '#888'
|
|
873
878
|
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
879
|
+
fillRect(
|
|
880
|
+
ctx,
|
|
881
|
+
leftPx,
|
|
882
|
+
topPx,
|
|
883
|
+
widthPx,
|
|
884
|
+
heightPx,
|
|
885
|
+
canvasWidth,
|
|
886
|
+
!mismatchAlpha
|
|
887
|
+
? baseColor
|
|
888
|
+
: mismatch.qual !== undefined
|
|
889
|
+
? // @ts-ignore
|
|
890
|
+
Color(baseColor)
|
|
891
|
+
.alpha(Math.min(1, mismatch.qual / 50))
|
|
892
|
+
.hsl()
|
|
893
|
+
.string()
|
|
894
|
+
: baseColor,
|
|
895
|
+
)
|
|
896
|
+
}
|
|
890
897
|
|
|
891
898
|
if (widthPx >= charWidth && heightPx >= heightLim) {
|
|
892
899
|
// normal SNP coloring
|
|
893
|
-
const contrastColor =
|
|
900
|
+
const contrastColor = drawSNPsMuted
|
|
901
|
+
? 'black'
|
|
902
|
+
: contrastForBase[mismatch.base] || 'black'
|
|
894
903
|
ctx.fillStyle = !mismatchAlpha
|
|
895
904
|
? contrastColor
|
|
896
905
|
: mismatch.qual !== undefined
|
|
897
|
-
?
|
|
906
|
+
? // @ts-ignore
|
|
907
|
+
Color(contrastColor)
|
|
898
908
|
.alpha(Math.min(1, mismatch.qual / 50))
|
|
899
909
|
.hsl()
|
|
900
910
|
.string()
|
|
@@ -1050,11 +1060,13 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
1050
1060
|
const mismatches: Mismatch[] = feature.get('mismatches')
|
|
1051
1061
|
const seq = feature.get('seq')
|
|
1052
1062
|
const { charWidth, charHeight } = this.getCharWidthHeight(ctx)
|
|
1063
|
+
// @ts-ignore
|
|
1064
|
+
const { bases } = theme.palette
|
|
1053
1065
|
const colorForBase: { [key: string]: string } = {
|
|
1054
|
-
A:
|
|
1055
|
-
C:
|
|
1056
|
-
G:
|
|
1057
|
-
T:
|
|
1066
|
+
A: bases.A.main,
|
|
1067
|
+
C: bases.C.main,
|
|
1068
|
+
G: bases.G.main,
|
|
1069
|
+
T: bases.T.main,
|
|
1058
1070
|
deletion: '#808080', // gray
|
|
1059
1071
|
}
|
|
1060
1072
|
|
|
@@ -1152,7 +1164,7 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
1152
1164
|
ctx.font = 'bold 10px Courier New,monospace'
|
|
1153
1165
|
|
|
1154
1166
|
const { charWidth, charHeight } = this.getCharWidthHeight(ctx)
|
|
1155
|
-
const
|
|
1167
|
+
const drawSNPsMuted = shouldDrawSNPsMuted(colorBy?.type)
|
|
1156
1168
|
const drawIndels = shouldDrawIndels(colorBy?.type)
|
|
1157
1169
|
for (let i = 0; i < layoutRecords.length; i++) {
|
|
1158
1170
|
const feat = layoutRecords[i]
|
|
@@ -1176,7 +1188,7 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
1176
1188
|
feat,
|
|
1177
1189
|
renderArgs,
|
|
1178
1190
|
mismatchAlpha,
|
|
1179
|
-
|
|
1191
|
+
drawSNPsMuted,
|
|
1180
1192
|
drawIndels,
|
|
1181
1193
|
largeInsertionIndicatorScale,
|
|
1182
1194
|
minSubfeatureWidth,
|
|
@@ -1279,22 +1291,20 @@ export default class PileupRenderer extends BoxRendererType {
|
|
|
1279
1291
|
|
|
1280
1292
|
const width = (end - start) / bpPerPx
|
|
1281
1293
|
const height = Math.max(layout.getTotalHeight(), 1)
|
|
1282
|
-
const
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
},
|
|
1297
|
-
}),
|
|
1294
|
+
const Color = await import('color').then(f => f.default)
|
|
1295
|
+
const res = await renderToAbstractCanvas(width, height, renderProps, ctx =>
|
|
1296
|
+
this.makeImageData({
|
|
1297
|
+
ctx,
|
|
1298
|
+
layoutRecords,
|
|
1299
|
+
canvasWidth: width,
|
|
1300
|
+
renderArgs: {
|
|
1301
|
+
...renderProps,
|
|
1302
|
+
layout,
|
|
1303
|
+
features,
|
|
1304
|
+
regionSequence,
|
|
1305
|
+
Color,
|
|
1306
|
+
},
|
|
1307
|
+
}),
|
|
1298
1308
|
)
|
|
1299
1309
|
|
|
1300
1310
|
const results = await super.render({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import React, { useRef, useState, useEffect } from 'react'
|
|
1
2
|
import { Region } from '@jbrowse/core/util/types'
|
|
2
3
|
import { PrerenderedCanvas } from '@jbrowse/core/ui'
|
|
3
4
|
import { bpSpanPx } from '@jbrowse/core/util'
|
|
4
5
|
import { observer } from 'mobx-react'
|
|
5
|
-
import React, { MouseEvent, useRef, useState, useEffect } from 'react'
|
|
6
6
|
import type { BaseLinearDisplayModel } from '@jbrowse/plugin-linear-genome-view'
|
|
7
7
|
|
|
8
8
|
// used so that user can click-away-from-feature below the laid out features
|
|
@@ -91,46 +91,46 @@ function PileupRendering(props: {
|
|
|
91
91
|
contextMenuFeature,
|
|
92
92
|
])
|
|
93
93
|
|
|
94
|
-
function onMouseDown(event: MouseEvent) {
|
|
94
|
+
function onMouseDown(event: React.MouseEvent) {
|
|
95
95
|
setMouseIsDown(true)
|
|
96
96
|
setMovedDuringLastMouseDown(false)
|
|
97
97
|
callMouseHandler('MouseDown', event)
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
function onMouseEnter(event: MouseEvent) {
|
|
100
|
+
function onMouseEnter(event: React.MouseEvent) {
|
|
101
101
|
callMouseHandler('MouseEnter', event)
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
function onMouseOut(event: MouseEvent) {
|
|
104
|
+
function onMouseOut(event: React.MouseEvent) {
|
|
105
105
|
callMouseHandler('MouseOut', event)
|
|
106
106
|
callMouseHandler('MouseLeave', event)
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
function onMouseOver(event: MouseEvent) {
|
|
109
|
+
function onMouseOver(event: React.MouseEvent) {
|
|
110
110
|
callMouseHandler('MouseOver', event)
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
function onMouseUp(event: MouseEvent) {
|
|
113
|
+
function onMouseUp(event: React.MouseEvent) {
|
|
114
114
|
setMouseIsDown(false)
|
|
115
115
|
callMouseHandler('MouseUp', event)
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
function onClick(event: MouseEvent) {
|
|
118
|
+
function onClick(event: React.MouseEvent) {
|
|
119
119
|
if (!movedDuringLastMouseDown) {
|
|
120
120
|
callMouseHandler('Click', event)
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
function onMouseLeave(event: MouseEvent) {
|
|
124
|
+
function onMouseLeave(event: React.MouseEvent) {
|
|
125
125
|
callMouseHandler('MouseOut', event)
|
|
126
126
|
callMouseHandler('MouseLeave', event)
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
function onContextMenu(event: MouseEvent) {
|
|
129
|
+
function onContextMenu(event: React.MouseEvent) {
|
|
130
130
|
callMouseHandler('ContextMenu', event)
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
function mouseMove(event: MouseEvent) {
|
|
133
|
+
function mouseMove(event: React.MouseEvent) {
|
|
134
134
|
if (mouseIsDown) {
|
|
135
135
|
setMovedDuringLastMouseDown(true)
|
|
136
136
|
}
|
|
@@ -158,7 +158,7 @@ function PileupRendering(props: {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
function callMouseHandler(handlerName: string, event: MouseEvent) {
|
|
161
|
+
function callMouseHandler(handlerName: string, event: React.MouseEvent) {
|
|
162
162
|
// @ts-ignore
|
|
163
163
|
// eslint-disable-next-line react/destructuring-assignment
|
|
164
164
|
const featureHandler = props[`onFeature${handlerName}`]
|
|
@@ -88,14 +88,15 @@ export default class SNPCoverageAdapter extends BaseFeatureDataAdapter {
|
|
|
88
88
|
)
|
|
89
89
|
|
|
90
90
|
bins.forEach((bin, index) => {
|
|
91
|
+
const start = region.start + index
|
|
91
92
|
observer.next(
|
|
92
93
|
new SimpleFeature({
|
|
93
|
-
id: `${this.id}-${
|
|
94
|
+
id: `${this.id}-${start}`,
|
|
94
95
|
data: {
|
|
95
96
|
score: bin.total,
|
|
96
97
|
snpinfo: bin,
|
|
97
|
-
start
|
|
98
|
-
end:
|
|
98
|
+
start,
|
|
99
|
+
end: start + 1,
|
|
99
100
|
refName: region.refName,
|
|
100
101
|
},
|
|
101
102
|
}),
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createJBrowseTheme } from '@jbrowse/core/ui'
|
|
2
|
-
import { featureSpanPx, bpSpanPx } from '@jbrowse/core/util'
|
|
3
|
-
import { Feature } from '@jbrowse/core/util/simpleFeature'
|
|
2
|
+
import { featureSpanPx, bpSpanPx, Feature } from '@jbrowse/core/util'
|
|
4
3
|
import { readConfObject } from '@jbrowse/core/configuration'
|
|
5
4
|
import { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType'
|
|
6
5
|
import {
|
|
@@ -39,7 +38,7 @@ interface SNPInfo {
|
|
|
39
38
|
export default class SNPCoverageRenderer extends WiggleBaseRenderer {
|
|
40
39
|
// note: the snps are drawn on linear scale even if the data is drawn in log
|
|
41
40
|
// scape hence the two different scales being used
|
|
42
|
-
draw(
|
|
41
|
+
async draw(
|
|
43
42
|
ctx: CanvasRenderingContext2D,
|
|
44
43
|
props: RenderArgsDeserializedWithFeatures,
|
|
45
44
|
) {
|
|
@@ -94,11 +93,13 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
|
|
|
94
93
|
const indicatorToHeight = (n: number) =>
|
|
95
94
|
indicatorToY(getOrigin('linear')) - indicatorToY(n)
|
|
96
95
|
|
|
96
|
+
// @ts-ignore
|
|
97
|
+
const { bases } = theme.palette
|
|
97
98
|
const colorForBase: { [key: string]: string } = {
|
|
98
|
-
A:
|
|
99
|
-
C:
|
|
100
|
-
G:
|
|
101
|
-
T:
|
|
99
|
+
A: bases.A.main,
|
|
100
|
+
C: bases.C.main,
|
|
101
|
+
G: bases.G.main,
|
|
102
|
+
T: bases.T.main,
|
|
102
103
|
total: 'lightgrey',
|
|
103
104
|
insertion: 'purple',
|
|
104
105
|
softclip: 'blue',
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _react = require("@testing-library/react");
|
|
6
|
-
|
|
7
|
-
var _mobxStateTree = require("mobx-state-tree");
|
|
8
|
-
|
|
9
|
-
var _react2 = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
|
-
var _PluginManager = _interopRequireDefault(require("@jbrowse/core/PluginManager"));
|
|
12
|
-
|
|
13
|
-
var _configuration = require("@jbrowse/core/configuration");
|
|
14
|
-
|
|
15
|
-
var _ = require(".");
|
|
16
|
-
|
|
17
|
-
var _AlignmentsFeatureDetail = _interopRequireDefault(require("./AlignmentsFeatureDetail"));
|
|
18
|
-
|
|
19
|
-
test('open up a widget', function () {
|
|
20
|
-
console.warn = jest.fn();
|
|
21
|
-
var pluginManager = new _PluginManager.default([]);
|
|
22
|
-
|
|
23
|
-
var Session = _mobxStateTree.types.model({
|
|
24
|
-
pluginManager: _mobxStateTree.types.optional(_mobxStateTree.types.frozen(), {}),
|
|
25
|
-
rpcManager: _mobxStateTree.types.optional(_mobxStateTree.types.frozen(), {}),
|
|
26
|
-
configuration: (0, _configuration.ConfigurationSchema)('test', {}),
|
|
27
|
-
widget: (0, _.stateModelFactory)(pluginManager)
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
var session = Session.create({
|
|
31
|
-
widget: {
|
|
32
|
-
type: 'AlignmentsFeatureWidget'
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
session.widget.setFeatureData({
|
|
36
|
-
seq: 'TTGTTGCGGAGTTGAACAACGGCATTAGGAACACTTCCGTCTCTCACTTTTATACGATTATGATTGGTTCTTTAGCCTTGGTTTAGATTGGTAGTAGTAG',
|
|
37
|
-
start: 2,
|
|
38
|
-
end: 102,
|
|
39
|
-
strand: 1,
|
|
40
|
-
score: 37,
|
|
41
|
-
qual: '17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17',
|
|
42
|
-
MQ: 37,
|
|
43
|
-
CIGAR: '100M',
|
|
44
|
-
length_on_ref: 100,
|
|
45
|
-
template_length: 0,
|
|
46
|
-
seq_length: 100,
|
|
47
|
-
name: 'ctgA_3_555_0:0:0_2:0:0_102d',
|
|
48
|
-
refName: 'ctgA',
|
|
49
|
-
type: 'match'
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
var _render = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_AlignmentsFeatureDetail.default, {
|
|
53
|
-
model: session.widget
|
|
54
|
-
})),
|
|
55
|
-
container = _render.container,
|
|
56
|
-
getByText = _render.getByText;
|
|
57
|
-
|
|
58
|
-
expect(container.firstChild).toMatchSnapshot();
|
|
59
|
-
expect(getByText('ctgA:3..102 (+)')).toBeTruthy();
|
|
60
|
-
});
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
-
|
|
7
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
-
|
|
9
|
-
var _operators = require("rxjs/operators");
|
|
10
|
-
|
|
11
|
-
var _BamAdapter = _interopRequireDefault(require("./BamAdapter"));
|
|
12
|
-
|
|
13
|
-
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
|
14
|
-
|
|
15
|
-
test('adapter can fetch features from volvox.bam', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
16
|
-
var adapter, features, featuresArray, featuresJsonArray, adapterCSI, featuresCSI, featuresArrayCSI, featuresJsonArrayCSI;
|
|
17
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
18
|
-
while (1) {
|
|
19
|
-
switch (_context.prev = _context.next) {
|
|
20
|
-
case 0:
|
|
21
|
-
adapter = new _BamAdapter.default(_configSchema.default.create({
|
|
22
|
-
bamLocation: {
|
|
23
|
-
localPath: require.resolve('../../test_data/volvox-sorted.bam'),
|
|
24
|
-
locationType: 'LocalPathLocation'
|
|
25
|
-
},
|
|
26
|
-
index: {
|
|
27
|
-
location: {
|
|
28
|
-
localPath: require.resolve('../../test_data/volvox-sorted.bam.bai'),
|
|
29
|
-
locationType: 'LocalPathLocation'
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}));
|
|
33
|
-
features = adapter.getFeatures({
|
|
34
|
-
assemblyName: 'volvox',
|
|
35
|
-
refName: 'ctgA',
|
|
36
|
-
start: 0,
|
|
37
|
-
end: 20000
|
|
38
|
-
});
|
|
39
|
-
_context.next = 4;
|
|
40
|
-
return features.pipe((0, _operators.toArray)()).toPromise();
|
|
41
|
-
|
|
42
|
-
case 4:
|
|
43
|
-
featuresArray = _context.sent;
|
|
44
|
-
expect(featuresArray[0].get('refName')).toBe('ctgA');
|
|
45
|
-
featuresJsonArray = featuresArray.map(function (f) {
|
|
46
|
-
return f.toJSON();
|
|
47
|
-
});
|
|
48
|
-
expect(featuresJsonArray.length).toEqual(3809);
|
|
49
|
-
expect(featuresJsonArray.slice(1000, 1010)).toMatchSnapshot();
|
|
50
|
-
expect(adapter.refIdToName(0)).toBe('ctgA');
|
|
51
|
-
expect(adapter.refIdToName(1)).toBe(undefined);
|
|
52
|
-
_context.t0 = expect;
|
|
53
|
-
_context.next = 14;
|
|
54
|
-
return adapter.hasDataForRefName('ctgA');
|
|
55
|
-
|
|
56
|
-
case 14:
|
|
57
|
-
_context.t1 = _context.sent;
|
|
58
|
-
(0, _context.t0)(_context.t1).toBe(true);
|
|
59
|
-
adapterCSI = new _BamAdapter.default(_configSchema.default.create({
|
|
60
|
-
bamLocation: {
|
|
61
|
-
localPath: require.resolve('../../test_data/volvox-sorted.bam'),
|
|
62
|
-
locationType: 'LocalPathLocation'
|
|
63
|
-
},
|
|
64
|
-
index: {
|
|
65
|
-
indexType: 'CSI',
|
|
66
|
-
location: {
|
|
67
|
-
localPath: require.resolve('../../test_data/volvox-sorted.bam.csi'),
|
|
68
|
-
locationType: 'LocalPathLocation'
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}));
|
|
72
|
-
featuresCSI = adapterCSI.getFeatures({
|
|
73
|
-
assemblyName: 'volvox',
|
|
74
|
-
refName: 'ctgA',
|
|
75
|
-
start: 0,
|
|
76
|
-
end: 20000
|
|
77
|
-
});
|
|
78
|
-
_context.next = 20;
|
|
79
|
-
return featuresCSI.pipe((0, _operators.toArray)()).toPromise();
|
|
80
|
-
|
|
81
|
-
case 20:
|
|
82
|
-
featuresArrayCSI = _context.sent;
|
|
83
|
-
featuresJsonArrayCSI = featuresArrayCSI.map(function (f) {
|
|
84
|
-
return f.toJSON();
|
|
85
|
-
});
|
|
86
|
-
expect(featuresJsonArrayCSI).toEqual(featuresJsonArray);
|
|
87
|
-
|
|
88
|
-
case 23:
|
|
89
|
-
case "end":
|
|
90
|
-
return _context.stop();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}, _callee);
|
|
94
|
-
})));
|
|
95
|
-
test('test usage of BamSlightlyLazyFeature toJSON (used in the widget)', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
96
|
-
var adapter, features, featuresArray, f;
|
|
97
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
98
|
-
while (1) {
|
|
99
|
-
switch (_context2.prev = _context2.next) {
|
|
100
|
-
case 0:
|
|
101
|
-
adapter = new _BamAdapter.default(_configSchema.default.create({
|
|
102
|
-
bamLocation: {
|
|
103
|
-
localPath: require.resolve('../../test_data/volvox-sorted.bam'),
|
|
104
|
-
locationType: 'LocalPathLocation'
|
|
105
|
-
},
|
|
106
|
-
index: {
|
|
107
|
-
location: {
|
|
108
|
-
localPath: require.resolve('../../test_data/volvox-sorted.bam.bai'),
|
|
109
|
-
locationType: 'LocalPathLocation'
|
|
110
|
-
},
|
|
111
|
-
indexType: 'BAI'
|
|
112
|
-
}
|
|
113
|
-
}));
|
|
114
|
-
features = adapter.getFeatures({
|
|
115
|
-
assemblyName: 'volvox',
|
|
116
|
-
refName: 'ctgA',
|
|
117
|
-
start: 0,
|
|
118
|
-
end: 100
|
|
119
|
-
});
|
|
120
|
-
_context2.next = 4;
|
|
121
|
-
return features.pipe((0, _operators.toArray)()).toPromise();
|
|
122
|
-
|
|
123
|
-
case 4:
|
|
124
|
-
featuresArray = _context2.sent;
|
|
125
|
-
f = featuresArray[0].toJSON();
|
|
126
|
-
expect(f.refName).toBe('ctgA');
|
|
127
|
-
expect(f.start).toBe(2);
|
|
128
|
-
expect(f.end).toBe(102);
|
|
129
|
-
expect(f.mismatches).not.toBeTruthy();
|
|
130
|
-
|
|
131
|
-
case 10:
|
|
132
|
-
case "end":
|
|
133
|
-
return _context2.stop();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}, _callee2);
|
|
137
|
-
})));
|
|
138
|
-
test('test usage of BamSlightlyLazyFeature for extended CIGAR', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
139
|
-
var adapter, features, featuresArray, f;
|
|
140
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
141
|
-
while (1) {
|
|
142
|
-
switch (_context3.prev = _context3.next) {
|
|
143
|
-
case 0:
|
|
144
|
-
adapter = new _BamAdapter.default(_configSchema.default.create({
|
|
145
|
-
bamLocation: {
|
|
146
|
-
localPath: require.resolve('../../test_data/extended_cigar.bam'),
|
|
147
|
-
locationType: 'LocalPathLocation'
|
|
148
|
-
},
|
|
149
|
-
index: {
|
|
150
|
-
location: {
|
|
151
|
-
localPath: require.resolve('../../test_data/extended_cigar.bam.bai'),
|
|
152
|
-
locationType: 'LocalPathLocation'
|
|
153
|
-
},
|
|
154
|
-
indexType: 'BAI'
|
|
155
|
-
}
|
|
156
|
-
}));
|
|
157
|
-
features = adapter.getFeatures({
|
|
158
|
-
assemblyName: 'hg19',
|
|
159
|
-
refName: '1',
|
|
160
|
-
start: 13260,
|
|
161
|
-
end: 13340
|
|
162
|
-
});
|
|
163
|
-
_context3.next = 4;
|
|
164
|
-
return features.pipe((0, _operators.toArray)()).toPromise();
|
|
165
|
-
|
|
166
|
-
case 4:
|
|
167
|
-
featuresArray = _context3.sent;
|
|
168
|
-
f = featuresArray[0];
|
|
169
|
-
expect(f.get('mismatches')).toMatchSnapshot();
|
|
170
|
-
|
|
171
|
-
case 7:
|
|
172
|
-
case "end":
|
|
173
|
-
return _context3.stop();
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}, _callee3);
|
|
177
|
-
})));
|