@jbrowse/plugin-alignments 2.2.1 → 2.3.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 +1 -1
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
- package/dist/AlignmentsTrack/index.js +1 -0
- package/dist/AlignmentsTrack/index.js.map +1 -1
- package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
- package/dist/BamAdapter/BamSlightlyLazyFeature.js +11 -18
- package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
- package/dist/BamAdapter/index.js +1 -0
- package/dist/BamAdapter/index.js.map +1 -1
- package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
- package/dist/CramAdapter/CramSlightlyLazyFeature.js +6 -8
- package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
- package/dist/CramAdapter/CramTestAdapters.js +2 -1
- package/dist/CramAdapter/CramTestAdapters.js.map +1 -1
- package/dist/CramAdapter/index.js +1 -0
- package/dist/CramAdapter/index.js.map +1 -1
- package/dist/GuessAlignmentsTypes/index.d.ts +3 -0
- package/dist/GuessAlignmentsTypes/index.js +56 -0
- package/dist/GuessAlignmentsTypes/index.js.map +1 -0
- package/dist/HtsgetBamAdapter/index.js +11 -11
- package/dist/HtsgetBamAdapter/index.js.map +1 -1
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
- package/dist/LinearAlignmentsDisplay/index.js +1 -0
- package/dist/LinearAlignmentsDisplay/index.js.map +1 -1
- package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
- package/dist/LinearAlignmentsDisplay/models/configSchema.js +2 -3
- package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +22 -36
- package/dist/LinearAlignmentsDisplay/models/model.js +166 -151
- package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
- package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +3 -1
- package/dist/LinearPileupDisplay/components/ColorByModifications.js +7 -22
- package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
- package/dist/LinearPileupDisplay/components/ColorByTag.js +2 -22
- package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +3 -22
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js +2 -18
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
- package/dist/LinearPileupDisplay/components/SortByTag.js +2 -23
- package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -1
- package/dist/LinearPileupDisplay/configSchema.d.ts +0 -3
- package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
- package/dist/LinearPileupDisplay/index.js +2 -0
- package/dist/LinearPileupDisplay/index.js.map +1 -1
- package/dist/LinearPileupDisplay/model.d.ts +19 -16
- package/dist/LinearPileupDisplay/model.js +28 -13
- package/dist/LinearPileupDisplay/model.js.map +1 -1
- package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
- package/dist/LinearReadArcsDisplay/components/ReactComponent.js +49 -0
- package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
- package/dist/LinearReadArcsDisplay/configSchema.d.ts +6 -0
- package/dist/LinearReadArcsDisplay/configSchema.js +52 -0
- package/dist/LinearReadArcsDisplay/configSchema.js.map +1 -0
- package/dist/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
- package/dist/LinearReadArcsDisplay/drawFeats.js +162 -0
- package/dist/LinearReadArcsDisplay/drawFeats.js.map +1 -0
- package/dist/LinearReadArcsDisplay/index.d.ts +2 -0
- package/dist/LinearReadArcsDisplay/index.js +27 -0
- package/dist/LinearReadArcsDisplay/index.js.map +1 -0
- package/dist/LinearReadArcsDisplay/model.d.ts +342 -0
- package/dist/LinearReadArcsDisplay/model.js +327 -0
- package/dist/LinearReadArcsDisplay/model.js.map +1 -0
- package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
- package/dist/LinearReadCloudDisplay/components/ReactComponent.js +49 -0
- package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
- package/dist/LinearReadCloudDisplay/configSchema.d.ts +6 -0
- package/dist/LinearReadCloudDisplay/configSchema.js +51 -0
- package/dist/LinearReadCloudDisplay/configSchema.js.map +1 -0
- package/dist/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
- package/dist/LinearReadCloudDisplay/drawFeats.js +159 -0
- package/dist/LinearReadCloudDisplay/drawFeats.js.map +1 -0
- package/dist/LinearReadCloudDisplay/index.d.ts +2 -0
- package/dist/LinearReadCloudDisplay/index.js +27 -0
- package/dist/LinearReadCloudDisplay/index.js.map +1 -0
- package/dist/LinearReadCloudDisplay/model.d.ts +320 -0
- package/dist/LinearReadCloudDisplay/model.js +252 -0
- package/dist/LinearReadCloudDisplay/model.js.map +1 -0
- package/dist/LinearSNPCoverageDisplay/index.js +1 -0
- package/dist/LinearSNPCoverageDisplay/index.js.map +1 -1
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +22 -19
- package/dist/LinearSNPCoverageDisplay/models/model.js +9 -12
- package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
- package/dist/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
- package/dist/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +116 -3
- package/dist/MismatchParser/index.js.map +1 -0
- package/dist/PileupRPC/base.d.ts +8 -0
- package/dist/PileupRPC/base.js +22 -0
- package/dist/PileupRPC/base.js.map +1 -0
- package/dist/PileupRPC/index.d.ts +3 -0
- package/dist/PileupRPC/index.js +9 -0
- package/dist/PileupRPC/index.js.map +1 -0
- package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
- package/dist/PileupRPC/methods/GetGlobalValueForTag.js +29 -0
- package/dist/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
- package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
- package/dist/PileupRPC/methods/GetReducedFeatures.js +61 -0
- package/dist/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
- package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
- package/dist/PileupRPC/methods/GetVisibleModifications.js +32 -0
- package/dist/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
- package/dist/PileupRPC/rpcMethods.d.ts +4 -34
- package/dist/PileupRPC/rpcMethods.js +7 -77
- package/dist/PileupRPC/rpcMethods.js.map +1 -1
- package/dist/PileupRPC/util.d.ts +8 -0
- package/dist/PileupRPC/util.js +20 -0
- package/dist/PileupRPC/util.js.map +1 -0
- package/dist/PileupRenderer/PileupRenderer.d.ts +1 -1
- package/dist/PileupRenderer/PileupRenderer.js +5 -5
- package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
- package/dist/PileupRenderer/configSchema.js +1 -1
- package/dist/PileupRenderer/configSchema.js.map +1 -1
- package/dist/PileupRenderer/index.js +1 -0
- package/dist/PileupRenderer/index.js.map +1 -1
- package/dist/PileupRenderer/sortUtil.d.ts +1 -1
- package/dist/PileupRenderer/sortUtil.js +2 -2
- package/dist/PileupRenderer/sortUtil.js.map +1 -1
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +0 -51
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +3 -182
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
- package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +53 -0
- package/dist/SNPCoverageAdapter/generateCoverageBins.js +185 -0
- package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +1 -0
- package/dist/SNPCoverageAdapter/index.js +1 -3
- package/dist/SNPCoverageAdapter/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +12 -58
- package/dist/index.js.map +1 -1
- package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
- package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.js +5 -24
- package/dist/shared/FilterByTag.js.map +1 -0
- package/dist/shared/color.d.ts +17 -0
- package/dist/shared/color.js +43 -0
- package/dist/shared/color.js.map +1 -0
- package/dist/shared/fetchChains.d.ts +27 -0
- package/dist/shared/fetchChains.js +30 -0
- package/dist/shared/fetchChains.js.map +1 -0
- package/dist/shared/index.d.ts +36 -0
- package/dist/{shared.js → shared/index.js} +12 -2
- package/dist/shared/index.js.map +1 -0
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +1 -1
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
- package/esm/AlignmentsTrack/index.js +1 -0
- package/esm/AlignmentsTrack/index.js.map +1 -1
- package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
- package/esm/BamAdapter/BamSlightlyLazyFeature.js +11 -18
- package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
- package/esm/BamAdapter/index.js +1 -0
- package/esm/BamAdapter/index.js.map +1 -1
- package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
- package/esm/CramAdapter/CramSlightlyLazyFeature.js +6 -8
- package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
- package/esm/CramAdapter/CramTestAdapters.js +2 -1
- package/esm/CramAdapter/CramTestAdapters.js.map +1 -1
- package/esm/CramAdapter/index.js +1 -0
- package/esm/CramAdapter/index.js.map +1 -1
- package/esm/GuessAlignmentsTypes/index.d.ts +3 -0
- package/esm/GuessAlignmentsTypes/index.js +54 -0
- package/esm/GuessAlignmentsTypes/index.js.map +1 -0
- package/esm/HtsgetBamAdapter/index.js +11 -11
- package/esm/HtsgetBamAdapter/index.js.map +1 -1
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
- package/esm/LinearAlignmentsDisplay/index.js +1 -0
- package/esm/LinearAlignmentsDisplay/index.js.map +1 -1
- package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
- package/esm/LinearAlignmentsDisplay/models/configSchema.js +2 -4
- package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
- package/esm/LinearAlignmentsDisplay/models/model.d.ts +22 -36
- package/esm/LinearAlignmentsDisplay/models/model.js +167 -152
- package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
- package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +3 -1
- package/esm/LinearPileupDisplay/components/ColorByModifications.js +8 -23
- package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
- package/esm/LinearPileupDisplay/components/ColorByTag.js +3 -20
- package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +4 -20
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
- package/esm/LinearPileupDisplay/components/SetMaxHeight.js +3 -16
- package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
- package/esm/LinearPileupDisplay/components/SortByTag.js +3 -21
- package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -1
- package/esm/LinearPileupDisplay/configSchema.d.ts +0 -3
- package/esm/LinearPileupDisplay/configSchema.js.map +1 -1
- package/esm/LinearPileupDisplay/index.js +2 -0
- package/esm/LinearPileupDisplay/index.js.map +1 -1
- package/esm/LinearPileupDisplay/model.d.ts +19 -16
- package/esm/LinearPileupDisplay/model.js +29 -14
- package/esm/LinearPileupDisplay/model.js.map +1 -1
- package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
- package/esm/LinearReadArcsDisplay/components/ReactComponent.js +44 -0
- package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
- package/esm/LinearReadArcsDisplay/configSchema.d.ts +6 -0
- package/esm/LinearReadArcsDisplay/configSchema.js +50 -0
- package/esm/LinearReadArcsDisplay/configSchema.js.map +1 -0
- package/esm/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
- package/esm/LinearReadArcsDisplay/drawFeats.js +157 -0
- package/esm/LinearReadArcsDisplay/drawFeats.js.map +1 -0
- package/esm/LinearReadArcsDisplay/index.d.ts +2 -0
- package/esm/LinearReadArcsDisplay/index.js +21 -0
- package/esm/LinearReadArcsDisplay/index.js.map +1 -0
- package/esm/LinearReadArcsDisplay/model.d.ts +342 -0
- package/esm/LinearReadArcsDisplay/model.js +299 -0
- package/esm/LinearReadArcsDisplay/model.js.map +1 -0
- package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
- package/esm/LinearReadCloudDisplay/components/ReactComponent.js +44 -0
- package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
- package/esm/LinearReadCloudDisplay/configSchema.d.ts +6 -0
- package/esm/LinearReadCloudDisplay/configSchema.js +49 -0
- package/esm/LinearReadCloudDisplay/configSchema.js.map +1 -0
- package/esm/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
- package/esm/LinearReadCloudDisplay/drawFeats.js +156 -0
- package/esm/LinearReadCloudDisplay/drawFeats.js.map +1 -0
- package/esm/LinearReadCloudDisplay/index.d.ts +2 -0
- package/esm/LinearReadCloudDisplay/index.js +21 -0
- package/esm/LinearReadCloudDisplay/index.js.map +1 -0
- package/esm/LinearReadCloudDisplay/model.d.ts +320 -0
- package/esm/LinearReadCloudDisplay/model.js +224 -0
- package/esm/LinearReadCloudDisplay/model.js.map +1 -0
- package/esm/LinearSNPCoverageDisplay/index.js +1 -0
- package/esm/LinearSNPCoverageDisplay/index.js.map +1 -1
- package/esm/LinearSNPCoverageDisplay/models/model.d.ts +22 -19
- package/esm/LinearSNPCoverageDisplay/models/model.js +11 -14
- package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -1
- package/esm/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
- package/esm/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +107 -2
- package/esm/MismatchParser/index.js.map +1 -0
- package/esm/PileupRPC/base.d.ts +8 -0
- package/esm/PileupRPC/base.js +16 -0
- package/esm/PileupRPC/base.js.map +1 -0
- package/esm/PileupRPC/index.d.ts +3 -0
- package/esm/PileupRPC/index.js +7 -0
- package/esm/PileupRPC/index.js.map +1 -0
- package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
- package/esm/PileupRPC/methods/GetGlobalValueForTag.js +23 -0
- package/esm/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
- package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
- package/esm/PileupRPC/methods/GetReducedFeatures.js +55 -0
- package/esm/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
- package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
- package/esm/PileupRPC/methods/GetVisibleModifications.js +26 -0
- package/esm/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
- package/esm/PileupRPC/rpcMethods.d.ts +4 -34
- package/esm/PileupRPC/rpcMethods.js +4 -74
- package/esm/PileupRPC/rpcMethods.js.map +1 -1
- package/esm/PileupRPC/util.d.ts +8 -0
- package/esm/PileupRPC/util.js +15 -0
- package/esm/PileupRPC/util.js.map +1 -0
- package/esm/PileupRenderer/PileupRenderer.d.ts +1 -1
- package/esm/PileupRenderer/PileupRenderer.js +5 -5
- package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
- package/esm/PileupRenderer/configSchema.js +1 -1
- package/esm/PileupRenderer/configSchema.js.map +1 -1
- package/esm/PileupRenderer/index.js +1 -0
- package/esm/PileupRenderer/index.js.map +1 -1
- package/esm/PileupRenderer/sortUtil.d.ts +1 -1
- package/esm/PileupRenderer/sortUtil.js +1 -1
- package/esm/PileupRenderer/sortUtil.js.map +1 -1
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +0 -51
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +4 -183
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
- package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +53 -0
- package/esm/SNPCoverageAdapter/generateCoverageBins.js +182 -0
- package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +1 -0
- package/esm/SNPCoverageAdapter/index.js +1 -3
- package/esm/SNPCoverageAdapter/index.js.map +1 -1
- package/esm/index.d.ts +2 -2
- package/esm/index.js +10 -56
- package/esm/index.js.map +1 -1
- package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
- package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.js +6 -22
- package/esm/shared/FilterByTag.js.map +1 -0
- package/esm/shared/color.d.ts +17 -0
- package/esm/shared/color.js +37 -0
- package/esm/shared/color.js.map +1 -0
- package/esm/shared/fetchChains.d.ts +27 -0
- package/esm/shared/fetchChains.js +26 -0
- package/esm/shared/fetchChains.js.map +1 -0
- package/esm/shared/index.d.ts +36 -0
- package/esm/{shared.js → shared/index.js} +11 -1
- package/esm/shared/index.js.map +1 -0
- package/package.json +5 -5
- package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +1 -1
- package/src/AlignmentsTrack/index.ts +1 -0
- package/src/BamAdapter/BamSlightlyLazyFeature.ts +13 -19
- package/src/BamAdapter/index.ts +1 -0
- package/src/CramAdapter/CramSlightlyLazyFeature.ts +13 -15
- package/src/CramAdapter/CramTestAdapters.ts +1 -0
- package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +0 -10
- package/src/CramAdapter/index.ts +1 -0
- package/src/GuessAlignmentsTypes/index.ts +79 -0
- package/src/HtsgetBamAdapter/index.ts +11 -15
- package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +21 -29
- package/src/LinearAlignmentsDisplay/index.ts +1 -0
- package/src/LinearAlignmentsDisplay/models/configSchema.ts +2 -6
- package/src/LinearAlignmentsDisplay/models/model.tsx +238 -199
- package/src/LinearPileupDisplay/components/ColorByModifications.tsx +5 -34
- package/src/LinearPileupDisplay/components/ColorByTag.tsx +2 -29
- package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +5 -27
- package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +2 -24
- package/src/LinearPileupDisplay/components/SortByTag.tsx +2 -31
- package/src/LinearPileupDisplay/configSchema.ts +1 -3
- package/src/LinearPileupDisplay/index.ts +2 -0
- package/src/LinearPileupDisplay/model.ts +36 -23
- package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +86 -0
- package/src/LinearReadArcsDisplay/configSchema.ts +58 -0
- package/src/LinearReadArcsDisplay/declare.d.ts +1 -0
- package/src/LinearReadArcsDisplay/drawFeats.ts +199 -0
- package/src/LinearReadArcsDisplay/index.ts +23 -0
- package/src/LinearReadArcsDisplay/model.tsx +370 -0
- package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +86 -0
- package/src/LinearReadCloudDisplay/configSchema.ts +57 -0
- package/src/LinearReadCloudDisplay/drawFeats.ts +201 -0
- package/src/LinearReadCloudDisplay/index.ts +23 -0
- package/src/LinearReadCloudDisplay/model.tsx +289 -0
- package/src/LinearSNPCoverageDisplay/index.ts +1 -0
- package/src/LinearSNPCoverageDisplay/models/model.ts +15 -21
- package/src/{BamAdapter/MismatchParser.test.ts → MismatchParser/index.test.ts} +1 -1
- package/src/{BamAdapter/MismatchParser.ts → MismatchParser/index.ts} +129 -2
- package/src/PileupRPC/base.ts +24 -0
- package/src/PileupRPC/index.ts +12 -0
- package/src/PileupRPC/methods/GetGlobalValueForTag.ts +41 -0
- package/src/PileupRPC/methods/GetReducedFeatures.ts +76 -0
- package/src/PileupRPC/methods/GetVisibleModifications.ts +45 -0
- package/src/PileupRPC/rpcMethods.ts +8 -113
- package/src/PileupRPC/util.ts +19 -0
- package/src/PileupRenderer/PileupRenderer.ts +5 -8
- package/src/PileupRenderer/configSchema.ts +1 -1
- package/src/PileupRenderer/index.ts +1 -0
- package/src/PileupRenderer/sortUtil.ts +2 -3
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +5 -249
- package/src/SNPCoverageAdapter/generateCoverageBins.ts +245 -0
- package/src/SNPCoverageAdapter/index.ts +1 -3
- package/src/index.ts +12 -93
- package/src/{LinearPileupDisplay/components → shared}/FilterByTag.tsx +5 -31
- package/src/shared/color.ts +47 -0
- package/src/shared/fetchChains.ts +63 -0
- package/src/{shared.ts → shared/index.ts} +17 -4
- package/dist/BamAdapter/MismatchParser.js.map +0 -1
- package/dist/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
- package/dist/shared.d.ts +0 -25
- package/dist/shared.js.map +0 -1
- package/esm/BamAdapter/MismatchParser.js.map +0 -1
- package/esm/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
- package/esm/shared.d.ts +0 -25
- package/esm/shared.js.map +0 -1
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
|
-
import { Button,
|
|
3
|
+
import { Button, DialogActions, DialogContent, Link, Paper, TextField, Typography, } from '@mui/material';
|
|
4
|
+
import { Dialog } from '@jbrowse/core/ui';
|
|
4
5
|
import { makeStyles } from 'tss-react/mui';
|
|
5
|
-
import CloseIcon from '@mui/icons-material/Close';
|
|
6
6
|
const useStyles = makeStyles()(theme => ({
|
|
7
7
|
paper: {
|
|
8
8
|
padding: theme.spacing(2),
|
|
9
9
|
margin: theme.spacing(2),
|
|
10
10
|
},
|
|
11
|
-
closeButton: {
|
|
12
|
-
position: 'absolute',
|
|
13
|
-
right: theme.spacing(1),
|
|
14
|
-
top: theme.spacing(1),
|
|
15
|
-
color: theme.palette.grey[500],
|
|
16
|
-
},
|
|
17
11
|
field: {
|
|
18
12
|
margin: theme.spacing(2),
|
|
19
13
|
},
|
|
@@ -63,11 +57,7 @@ function FilterByTagDlg(props) {
|
|
|
63
57
|
const [readName, setReadName] = useState((filterBy === null || filterBy === void 0 ? void 0 : filterBy.readName) || '');
|
|
64
58
|
const validTag = tag.match(/^[A-Za-z][A-Za-z0-9]$/);
|
|
65
59
|
const site = 'https://broadinstitute.github.io/picard/explain-flags.html';
|
|
66
|
-
return (React.createElement(Dialog, { open: true, onClose: handleClose },
|
|
67
|
-
React.createElement(DialogTitle, null,
|
|
68
|
-
"Filter options",
|
|
69
|
-
React.createElement(IconButton, { "aria-label": "close", className: classes.closeButton, onClick: handleClose },
|
|
70
|
-
React.createElement(CloseIcon, null))),
|
|
60
|
+
return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Filter options" },
|
|
71
61
|
React.createElement(DialogContent, null,
|
|
72
62
|
React.createElement(Typography, null,
|
|
73
63
|
"Set filter bitmask options. Refer to ",
|
|
@@ -84,22 +74,16 @@ function FilterByTagDlg(props) {
|
|
|
84
74
|
React.createElement(Bitmask, { flag: flagExclude, setFlag: setFlagExclude })))),
|
|
85
75
|
React.createElement(Paper, { className: classes.paper, variant: "outlined" },
|
|
86
76
|
React.createElement(Typography, null, "Filter by tag name and value. Use * in the value field to get all reads containing any value for that tag. Example: filter tag name SA with value * to get all split/supplementary reads. Other examples include HP for haplotype, or RG for read group"),
|
|
87
|
-
React.createElement(TextField, { className: classes.field, value: tag, onChange: event => {
|
|
88
|
-
setTag(event.target.value);
|
|
89
|
-
}, placeholder: "Enter tag name", inputProps: {
|
|
77
|
+
React.createElement(TextField, { className: classes.field, value: tag, onChange: event => setTag(event.target.value), placeholder: "Enter tag name", inputProps: {
|
|
90
78
|
maxLength: 2,
|
|
91
79
|
'data-testid': 'color-tag-name-input',
|
|
92
80
|
}, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', "data-testid": "color-tag-name" }),
|
|
93
|
-
React.createElement(TextField, { className: classes.field, value: tagValue, onChange: event => {
|
|
94
|
-
setTagValue(event.target.value);
|
|
95
|
-
}, placeholder: "Enter tag value", inputProps: {
|
|
81
|
+
React.createElement(TextField, { className: classes.field, value: tagValue, onChange: event => setTagValue(event.target.value), placeholder: "Enter tag value", inputProps: {
|
|
96
82
|
'data-testid': 'color-tag-name-input',
|
|
97
83
|
}, "data-testid": "color-tag-value" })),
|
|
98
84
|
React.createElement(Paper, { className: classes.paper, variant: "outlined" },
|
|
99
85
|
React.createElement(Typography, null, "Filter by read name"),
|
|
100
|
-
React.createElement(TextField, { className: classes.field, value: readName, onChange: event => {
|
|
101
|
-
setReadName(event.target.value);
|
|
102
|
-
}, placeholder: "Enter read name", inputProps: {
|
|
86
|
+
React.createElement(TextField, { className: classes.field, value: readName, onChange: event => setReadName(event.target.value), placeholder: "Enter read name", inputProps: {
|
|
103
87
|
'data-testid': 'color-tag-readname-input',
|
|
104
88
|
}, "data-testid": "color-tag-readname" })),
|
|
105
89
|
React.createElement(DialogActions, null,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterByTag.js","sourceRoot":"","sources":["../../src/shared/FilterByTag.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ChainStats } from './fetchChains';
|
|
2
|
+
export declare function getInsertSizeColor(f1: {
|
|
3
|
+
refName: string;
|
|
4
|
+
tlen?: number;
|
|
5
|
+
}, f2: {
|
|
6
|
+
refName: string;
|
|
7
|
+
}, stats?: ChainStats): "" | "red" | "purple" | "#f0f";
|
|
8
|
+
export declare function getInsertSizeAndOrientationColor(f1: {
|
|
9
|
+
refName: string;
|
|
10
|
+
pair_orientation?: string;
|
|
11
|
+
tlen?: number;
|
|
12
|
+
}, f2: {
|
|
13
|
+
refName: string;
|
|
14
|
+
}, stats?: ChainStats): string;
|
|
15
|
+
export declare function getOrientationColor(f: {
|
|
16
|
+
pair_orientation?: string;
|
|
17
|
+
}): string;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { orientationTypes } from '../util';
|
|
2
|
+
const alignmentColoring = {
|
|
3
|
+
color_pair_lr: '#c8c8c8',
|
|
4
|
+
color_pair_rr: 'navy',
|
|
5
|
+
color_pair_rl: 'teal',
|
|
6
|
+
color_pair_ll: 'green',
|
|
7
|
+
};
|
|
8
|
+
export function getInsertSizeColor(f1, f2, stats) {
|
|
9
|
+
const sameRef = f1.refName === f2.refName;
|
|
10
|
+
const tlen = Math.abs(f1.tlen || 0);
|
|
11
|
+
if (sameRef && tlen > ((stats === null || stats === void 0 ? void 0 : stats.upper) || 0)) {
|
|
12
|
+
return 'red';
|
|
13
|
+
}
|
|
14
|
+
else if (sameRef && tlen < ((stats === null || stats === void 0 ? void 0 : stats.lower) || 0)) {
|
|
15
|
+
return '#f0f';
|
|
16
|
+
}
|
|
17
|
+
else if (!sameRef) {
|
|
18
|
+
return 'purple';
|
|
19
|
+
}
|
|
20
|
+
return '';
|
|
21
|
+
}
|
|
22
|
+
export function getInsertSizeAndOrientationColor(f1, f2, stats) {
|
|
23
|
+
return getInsertSizeColor(f1, f2, stats) || getOrientationColor(f1);
|
|
24
|
+
}
|
|
25
|
+
export function getOrientationColor(f) {
|
|
26
|
+
const type = orientationTypes['fr'];
|
|
27
|
+
const orientation = type[f.pair_orientation || ''];
|
|
28
|
+
const map = {
|
|
29
|
+
LR: 'color_pair_lr',
|
|
30
|
+
RR: 'color_pair_rr',
|
|
31
|
+
RL: 'color_pair_rl',
|
|
32
|
+
LL: 'color_pair_ll',
|
|
33
|
+
};
|
|
34
|
+
const val = map[orientation];
|
|
35
|
+
return alignmentColoring[val] || 'grey';
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/shared/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG1C,MAAM,iBAAiB,GAA8B;IACnD,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,OAAO;CACvB,CAAA;AAED,MAAM,UAAU,kBAAkB,CAChC,EAAsC,EACtC,EAAuB,EACvB,KAAkB;IAElB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,CAAA;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;IACnC,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,CAAC,CAAC,EAAE;QACzC,OAAO,KAAK,CAAA;KACb;SAAM,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,CAAC,CAAC,EAAE;QAChD,OAAO,MAAM,CAAA;KACd;SAAM,IAAI,CAAC,OAAO,EAAE;QACnB,OAAO,QAAQ,CAAA;KAChB;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,EAAiE,EACjE,EAAuB,EACvB,KAAkB;IAElB,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAgC;IAClE,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;IAClD,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,eAAe;KACpB,CAAA;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,WAA+B,CAAC,CAAA;IAChD,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,MAAM,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
2
|
+
export interface ReducedFeature {
|
|
3
|
+
name: string;
|
|
4
|
+
strand: number;
|
|
5
|
+
refName: string;
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
id: string;
|
|
9
|
+
flags: number;
|
|
10
|
+
tlen: number;
|
|
11
|
+
pair_orientation: string;
|
|
12
|
+
next_ref?: string;
|
|
13
|
+
next_pos?: number;
|
|
14
|
+
clipPos: number;
|
|
15
|
+
SA?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ChainStats {
|
|
18
|
+
max: number;
|
|
19
|
+
min: number;
|
|
20
|
+
upper: number;
|
|
21
|
+
lower: number;
|
|
22
|
+
}
|
|
23
|
+
export interface ChainData {
|
|
24
|
+
chains: ReducedFeature[][];
|
|
25
|
+
stats?: ChainStats;
|
|
26
|
+
}
|
|
27
|
+
export declare function fetchChains(self: IAnyStateTreeNode): Promise<void>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { getContainingTrack, getContainingView, getSession, } from '@jbrowse/core/util';
|
|
2
|
+
import { getSnapshot } from 'mobx-state-tree';
|
|
3
|
+
export async function fetchChains(self) {
|
|
4
|
+
try {
|
|
5
|
+
const { rpcSessionId: sessionId } = getContainingTrack(self);
|
|
6
|
+
const { rpcManager } = getSession(self);
|
|
7
|
+
const view = getContainingView(self);
|
|
8
|
+
if (!view.initialized || self.error) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
self.setLoading(true);
|
|
12
|
+
const ret = (await rpcManager.call(sessionId, 'PileupGetReducedFeatures', {
|
|
13
|
+
sessionId,
|
|
14
|
+
regions: view.staticBlocks.contentBlocks,
|
|
15
|
+
filterBy: getSnapshot(self.filterBy),
|
|
16
|
+
adapterConfig: self.adapterConfig,
|
|
17
|
+
}));
|
|
18
|
+
self.setChainData(ret);
|
|
19
|
+
self.setLoading(false);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
console.error(e);
|
|
23
|
+
self.setError(e);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=fetchChains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchChains.js","sourceRoot":"","sources":["../../src/shared/fetchChains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAqB,MAAM,iBAAiB,CAAA;AAiChE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAuB;IACvD,IAAI;QACF,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC5D,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAQ,CAAA;QAE3C,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE;YACnC,OAAM;SACP;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAErB,MAAM,GAAG,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,EAAE;YACxE,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa;YACxC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YACpC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAc,CAAA;QAEhB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;KACvB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;KACjB;AACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
2
|
+
import { BlockSet } from '@jbrowse/core/util/blockTypes';
|
|
3
|
+
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
4
|
+
export declare function getUniqueTagValues(self: IAnyStateTreeNode & {
|
|
5
|
+
adapterConfig: AnyConfigurationModel;
|
|
6
|
+
}, colorScheme: {
|
|
7
|
+
type: string;
|
|
8
|
+
tag?: string;
|
|
9
|
+
}, blocks: BlockSet, opts?: {
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
filters?: string[];
|
|
13
|
+
}): Promise<string[]>;
|
|
14
|
+
type Track = IAnyStateTreeNode & {
|
|
15
|
+
configuration: AnyConfigurationModel;
|
|
16
|
+
};
|
|
17
|
+
export declare function getUniqueModificationValues(self: IAnyStateTreeNode & {
|
|
18
|
+
parentTrack: Track;
|
|
19
|
+
}, adapterConfig: AnyConfigurationModel, colorScheme: {
|
|
20
|
+
type: string;
|
|
21
|
+
tag?: string;
|
|
22
|
+
}, blocks: BlockSet, opts?: {
|
|
23
|
+
headers?: Record<string, string>;
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
filters?: string[];
|
|
26
|
+
}): Promise<string[]>;
|
|
27
|
+
export declare const FilterModel: import("mobx-state-tree").IModelType<{
|
|
28
|
+
flagInclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
29
|
+
flagExclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
30
|
+
readName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
31
|
+
tagFilter: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
|
|
32
|
+
tag: import("mobx-state-tree").ISimpleType<string>;
|
|
33
|
+
value: import("mobx-state-tree").ISimpleType<string>;
|
|
34
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
35
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
36
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { types } from 'mobx-state-tree';
|
|
1
2
|
import { getSession } from '@jbrowse/core/util';
|
|
2
3
|
import { getRpcSessionId } from '@jbrowse/core/util/tracks';
|
|
3
4
|
export async function getUniqueTagValues(self, colorScheme, blocks, opts) {
|
|
@@ -25,4 +26,13 @@ export async function getUniqueModificationValues(self, adapterConfig, colorSche
|
|
|
25
26
|
});
|
|
26
27
|
return values;
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
+
export const FilterModel = types.model({
|
|
30
|
+
flagInclude: types.optional(types.number, 0),
|
|
31
|
+
flagExclude: types.optional(types.number, 1540),
|
|
32
|
+
readName: types.maybe(types.string),
|
|
33
|
+
tagFilter: types.maybe(types.model({
|
|
34
|
+
tag: types.string,
|
|
35
|
+
value: types.string,
|
|
36
|
+
})),
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,iBAAiB,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAkE,EAClE,WAA2C,EAC3C,MAAgB,EAChB,IAIC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAClC,eAAe,CAAC,IAAI,CAAC,EACrB,4BAA4B,EAC5B;QACE,aAAa;QACb,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,SAAS;QACT,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,GAAG,IAAI;KACR,CACF,CAAA;IACD,OAAO,MAAkB,CAAA;AAC3B,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAEC,EACD,aAAoC,EACpC,WAA2C,EAC3C,MAAgB,EAChB,IAIC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAClC,SAAS,EACT,+BAA+B,EAC/B;QACE,aAAa;QACb,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,SAAS;QACT,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,GAAG,IAAI;KACR,CACF,CAAA;IACD,OAAO,MAAkB,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;IACrC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;IAC/C,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,KAAK,CACpB,KAAK,CAAC,KAAK,CAAC;QACV,GAAG,EAAE,KAAK,CAAC,MAAM;QACjB,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,CAAC,CACH;CACF,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-alignments",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "JBrowse 2 alignments adapters, tracks, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"build": "npm-run-all build:*",
|
|
28
28
|
"test": "cd ../..; jest plugins/alignments",
|
|
29
29
|
"prepublishOnly": "yarn test",
|
|
30
|
-
"prepack": "yarn build
|
|
30
|
+
"prepack": "yarn build && yarn useDist",
|
|
31
31
|
"postpack": "yarn useSrc",
|
|
32
32
|
"useDist": "node ../../scripts/useDist.js",
|
|
33
33
|
"useSrc": "node ../../scripts/useSrc.js",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"@gmod/bam": "^1.1.15",
|
|
41
41
|
"@gmod/cram": "^1.7.1",
|
|
42
42
|
"@mui/icons-material": "^5.0.1",
|
|
43
|
+
"canvas2svg": "^1.0.16",
|
|
43
44
|
"clone": "^2.1.2",
|
|
44
45
|
"color": "^3.1.2",
|
|
45
46
|
"copy-to-clipboard": "^3.3.1",
|
|
@@ -54,10 +55,9 @@
|
|
|
54
55
|
"mobx": "^6.0.0",
|
|
55
56
|
"mobx-react": "^7.0.0",
|
|
56
57
|
"mobx-state-tree": "^5.0.0",
|
|
57
|
-
"prop-types": "^15.0.0",
|
|
58
58
|
"react": ">=16.8.0",
|
|
59
59
|
"rxjs": "^6.0.0",
|
|
60
|
-
"tss-react": "^
|
|
60
|
+
"tss-react": "^4.0.0"
|
|
61
61
|
},
|
|
62
62
|
"publishConfig": {
|
|
63
63
|
"access": "public"
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"distModule": "esm/index.js",
|
|
66
66
|
"srcModule": "src/index.ts",
|
|
67
67
|
"module": "esm/index.js",
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "a85b280a8af4d1a11e81ab42913f5f6049e6e580"
|
|
69
69
|
}
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
BaseCard,
|
|
18
18
|
SimpleValue,
|
|
19
19
|
} from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
|
|
20
|
-
import { parseCigar } from '../
|
|
20
|
+
import { parseCigar } from '../MismatchParser'
|
|
21
21
|
|
|
22
22
|
const useStyles = makeStyles()({
|
|
23
23
|
compact: {
|
|
@@ -29,6 +29,7 @@ export default function register(pm: PluginManager) {
|
|
|
29
29
|
const configSchema = configSchemaFactory(pm)
|
|
30
30
|
const track = new TrackType({
|
|
31
31
|
name: 'AlignmentsTrack',
|
|
32
|
+
displayName: 'Alignments track',
|
|
32
33
|
configSchema,
|
|
33
34
|
stateModel: createBaseTrackModel(pm, 'AlignmentsTrack', configSchema),
|
|
34
35
|
})
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import { BamRecord } from '@gmod/bam'
|
|
7
7
|
|
|
8
8
|
// locals
|
|
9
|
-
import { getMismatches } from '
|
|
9
|
+
import { getClip, getMismatches } from '../MismatchParser'
|
|
10
10
|
import BamAdapter from './BamAdapter'
|
|
11
11
|
|
|
12
12
|
export default class BamSlightlyLazyFeature implements Feature {
|
|
@@ -42,23 +42,21 @@ export default class BamSlightlyLazyFeature implements Feature {
|
|
|
42
42
|
return this.record.isPaired() ? this.record.getPairOrientation() : undefined
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
return this.record.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
_get_seq_id() {
|
|
50
|
-
// @ts-ignore
|
|
51
|
-
return this.record._refID
|
|
45
|
+
_get_next_ref() {
|
|
46
|
+
return this.record.isPaired()
|
|
47
|
+
? this.adapter.refIdToName(this.record._next_refid())
|
|
48
|
+
: undefined
|
|
52
49
|
}
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
return this.
|
|
51
|
+
_get_next_pos() {
|
|
52
|
+
return this.record.isPaired() ? this.record._next_pos() : undefined
|
|
56
53
|
}
|
|
57
54
|
|
|
58
55
|
_get_next_segment_position() {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
return this.record.isPaired()
|
|
57
|
+
? `${this.adapter.refIdToName(this.record._next_refid())}:${
|
|
58
|
+
this.record._next_pos() + 1
|
|
59
|
+
}`
|
|
62
60
|
: undefined
|
|
63
61
|
}
|
|
64
62
|
|
|
@@ -84,9 +82,7 @@ export default class BamSlightlyLazyFeature implements Feature {
|
|
|
84
82
|
prop =>
|
|
85
83
|
prop.startsWith('_get_') &&
|
|
86
84
|
prop !== '_get_mismatches' &&
|
|
87
|
-
prop !== '_get_tags'
|
|
88
|
-
prop !== '_get_next_seq_id' &&
|
|
89
|
-
prop !== '_get_seq_id',
|
|
85
|
+
prop !== '_get_tags',
|
|
90
86
|
)
|
|
91
87
|
.map(methodName => methodName.replace('_get_', ''))
|
|
92
88
|
.concat(this.record._tags()),
|
|
@@ -148,8 +144,6 @@ export default class BamSlightlyLazyFeature implements Feature {
|
|
|
148
144
|
|
|
149
145
|
_get_clipPos() {
|
|
150
146
|
const cigar = this.get('CIGAR') || ''
|
|
151
|
-
return this.get('strand')
|
|
152
|
-
? +(cigar.match(/(\d+)[SH]$/) || [])[1] || 0
|
|
153
|
-
: +(cigar.match(/^(\d+)([SH])/) || [])[1] || 0
|
|
147
|
+
return getClip(cigar, this.get('strand'))
|
|
154
148
|
}
|
|
155
149
|
}
|
package/src/BamAdapter/index.ts
CHANGED
|
@@ -4,8 +4,10 @@ import {
|
|
|
4
4
|
SimpleFeatureSerialized,
|
|
5
5
|
} from '@jbrowse/core/util/simpleFeature'
|
|
6
6
|
import { CramRecord } from '@gmod/cram'
|
|
7
|
+
|
|
8
|
+
// locals
|
|
7
9
|
import CramAdapter from './CramAdapter'
|
|
8
|
-
import {
|
|
10
|
+
import { readFeaturesToCIGAR, readFeaturesToMismatches } from './util'
|
|
9
11
|
|
|
10
12
|
export default class CramSlightlyLazyFeature implements Feature {
|
|
11
13
|
// uses parameter properties to automatically create fields on the class
|
|
@@ -57,12 +59,8 @@ export default class CramSlightlyLazyFeature implements Feature {
|
|
|
57
59
|
return this.record.qualityScores
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
_get_seq_id() {
|
|
61
|
-
return this._store.refIdToName(this.record.sequenceId)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
62
|
_get_refName() {
|
|
65
|
-
return this.
|
|
63
|
+
return this._store.refIdToName(this.record.sequenceId)
|
|
66
64
|
}
|
|
67
65
|
|
|
68
66
|
_get_is_paired() {
|
|
@@ -77,16 +75,12 @@ export default class CramSlightlyLazyFeature implements Feature {
|
|
|
77
75
|
return this.record.templateLength || this.record.templateSize
|
|
78
76
|
}
|
|
79
77
|
|
|
80
|
-
|
|
78
|
+
_get_next_ref() {
|
|
81
79
|
return this.record.mate
|
|
82
80
|
? this._store.refIdToName(this.record.mate.sequenceId)
|
|
83
81
|
: undefined
|
|
84
82
|
}
|
|
85
83
|
|
|
86
|
-
_get_next_pos() {
|
|
87
|
-
return this.record.mate ? this.record.mate.alignmentStart : undefined
|
|
88
|
-
}
|
|
89
|
-
|
|
90
84
|
_get_next_segment_position() {
|
|
91
85
|
return this.record.mate
|
|
92
86
|
? `${this._store.refIdToName(this.record.mate.sequenceId)}:${
|
|
@@ -95,6 +89,10 @@ export default class CramSlightlyLazyFeature implements Feature {
|
|
|
95
89
|
: undefined
|
|
96
90
|
}
|
|
97
91
|
|
|
92
|
+
_get_next_pos() {
|
|
93
|
+
return this.record.mate?.alignmentStart
|
|
94
|
+
}
|
|
95
|
+
|
|
98
96
|
_get_tags() {
|
|
99
97
|
const RG = this._read_group_id()
|
|
100
98
|
const { tags } = this.record
|
|
@@ -141,15 +139,15 @@ export default class CramSlightlyLazyFeature implements Feature {
|
|
|
141
139
|
return undefined
|
|
142
140
|
}
|
|
143
141
|
|
|
144
|
-
parent()
|
|
142
|
+
parent() {
|
|
145
143
|
return undefined
|
|
146
144
|
}
|
|
147
145
|
|
|
148
|
-
children()
|
|
146
|
+
children() {
|
|
149
147
|
return undefined
|
|
150
148
|
}
|
|
151
149
|
|
|
152
|
-
set()
|
|
150
|
+
set() {}
|
|
153
151
|
|
|
154
152
|
pairedFeature() {
|
|
155
153
|
return false
|
|
@@ -181,7 +179,7 @@ export default class CramSlightlyLazyFeature implements Feature {
|
|
|
181
179
|
}
|
|
182
180
|
}
|
|
183
181
|
|
|
184
|
-
_get_mismatches()
|
|
182
|
+
_get_mismatches() {
|
|
185
183
|
const readFeatures = this.record.readFeatures
|
|
186
184
|
const qual = this.qualRaw()
|
|
187
185
|
const start = this.get('start')
|
|
@@ -13,7 +13,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
13
13
|
"refName": "ctgA",
|
|
14
14
|
"score": 37,
|
|
15
15
|
"seq": "TACACTGGTTCGGAGACGGTTCGTGACGAGCGCGCTATATGTCGGCATCTGCGCCGCATGAGCGGCCGCTGACCGGCGGCACGACTAATATAGTGCAAGA",
|
|
16
|
-
"seq_id": "ctgA",
|
|
17
16
|
"start": 5440,
|
|
18
17
|
"strand": -1,
|
|
19
18
|
"tags": {
|
|
@@ -39,7 +38,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
39
38
|
"refName": "ctgA",
|
|
40
39
|
"score": 37,
|
|
41
40
|
"seq": "ACACTGGTTCGGAGACGGTTCATGACGAGCGCGCTATATGTCGGCATCTGCGCCCCATGAGCGGCCCCTGTCCGGCGGCACGAATAATATAGTGCAAGAA",
|
|
42
|
-
"seq_id": "ctgA",
|
|
43
41
|
"start": 5441,
|
|
44
42
|
"strand": -1,
|
|
45
43
|
"tags": {
|
|
@@ -65,7 +63,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
65
63
|
"refName": "ctgA",
|
|
66
64
|
"score": 37,
|
|
67
65
|
"seq": "CTGGTTCGGAGACGGTTCATGACGACCGCGCTATATGTCGGCATCTGCGTCGCATGAGCGGCCGCTGTCCGGCGGCTCGAATAATATAGTGCAAGAAAAA",
|
|
68
|
-
"seq_id": "ctgA",
|
|
69
66
|
"start": 5444,
|
|
70
67
|
"strand": 1,
|
|
71
68
|
"tags": {
|
|
@@ -91,7 +88,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
91
88
|
"refName": "ctgA",
|
|
92
89
|
"score": 37,
|
|
93
90
|
"seq": "AGACGGTTCATGACGAGCGCGCTATATGTCGGCATCTGCGCCGCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACT",
|
|
94
|
-
"seq_id": "ctgA",
|
|
95
91
|
"start": 5453,
|
|
96
92
|
"strand": 1,
|
|
97
93
|
"tags": {
|
|
@@ -117,7 +113,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
117
113
|
"refName": "ctgA",
|
|
118
114
|
"score": 37,
|
|
119
115
|
"seq": "GACGGTTCATGACGAGCGCGCTATATGTCGGCATCTGCGCCCCATGAGCCGCCGCTGTCCGACGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTA",
|
|
120
|
-
"seq_id": "ctgA",
|
|
121
116
|
"start": 5454,
|
|
122
117
|
"strand": 1,
|
|
123
118
|
"tags": {
|
|
@@ -143,7 +138,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
143
138
|
"refName": "ctgA",
|
|
144
139
|
"score": 37,
|
|
145
140
|
"seq": "TTCATGACGAGCGCGCTATATGACGGCATCTGCGCCGCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTT",
|
|
146
|
-
"seq_id": "ctgA",
|
|
147
141
|
"start": 5459,
|
|
148
142
|
"strand": -1,
|
|
149
143
|
"tags": {
|
|
@@ -169,7 +163,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
169
163
|
"refName": "ctgA",
|
|
170
164
|
"score": 37,
|
|
171
165
|
"seq": "TCATGACGAGCGCGCTATATGTCGGCATCTGCGCCGCATCAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTTA",
|
|
172
|
-
"seq_id": "ctgA",
|
|
173
166
|
"start": 5460,
|
|
174
167
|
"strand": 1,
|
|
175
168
|
"tags": {
|
|
@@ -195,7 +188,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
195
188
|
"refName": "ctgA",
|
|
196
189
|
"score": 37,
|
|
197
190
|
"seq": "AGCGCGCTATATGTCGGCATCTGCGCCCCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTTATATATGAT",
|
|
198
|
-
"seq_id": "ctgA",
|
|
199
191
|
"start": 5468,
|
|
200
192
|
"strand": 1,
|
|
201
193
|
"tags": {
|
|
@@ -221,7 +213,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
221
213
|
"refName": "ctgA",
|
|
222
214
|
"score": 37,
|
|
223
215
|
"seq": "CCCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCTAAGACTACGGTTATATATGATGGAACGGCCCTCACAGCATTCTCACA",
|
|
224
|
-
"seq_id": "ctgA",
|
|
225
216
|
"start": 5494,
|
|
226
217
|
"strand": -1,
|
|
227
218
|
"tags": {
|
|
@@ -247,7 +238,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
|
|
|
247
238
|
"refName": "ctgA",
|
|
248
239
|
"score": 37,
|
|
249
240
|
"seq": "CATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTTATATATGATGGAACGGCCCTCACAGCATTGTAACAGG",
|
|
250
|
-
"seq_id": "ctgA",
|
|
251
241
|
"start": 5496,
|
|
252
242
|
"strand": 1,
|
|
253
243
|
"tags": {
|
package/src/CramAdapter/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ export default (pluginManager: PluginManager) => {
|
|
|
8
8
|
pluginManager.addAdapterType(() => {
|
|
9
9
|
return new AdapterType({
|
|
10
10
|
name: 'CramAdapter',
|
|
11
|
+
displayName: 'CRAM adapter',
|
|
11
12
|
configSchema,
|
|
12
13
|
getAdapterClass: () => import('./CramAdapter').then(r => r.default),
|
|
13
14
|
})
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import { FileLocation } from '@jbrowse/core/util/types'
|
|
3
|
+
import {
|
|
4
|
+
makeIndex,
|
|
5
|
+
makeIndexType,
|
|
6
|
+
getFileName,
|
|
7
|
+
AdapterGuesser,
|
|
8
|
+
TrackTypeGuesser,
|
|
9
|
+
} from '@jbrowse/core/util/tracks'
|
|
10
|
+
|
|
11
|
+
export default (pluginManager: PluginManager) => {
|
|
12
|
+
pluginManager.addToExtensionPoint(
|
|
13
|
+
'Core-guessAdapterForLocation',
|
|
14
|
+
(adapterGuesser: AdapterGuesser) => {
|
|
15
|
+
return (
|
|
16
|
+
file: FileLocation,
|
|
17
|
+
index?: FileLocation,
|
|
18
|
+
adapterHint?: string,
|
|
19
|
+
) => {
|
|
20
|
+
const regexGuess = /\.cram$/i
|
|
21
|
+
const adapterName = 'CramAdapter'
|
|
22
|
+
const fileName = getFileName(file)
|
|
23
|
+
const obj = {
|
|
24
|
+
type: adapterName,
|
|
25
|
+
cramLocation: file,
|
|
26
|
+
craiLocation: index || makeIndex(file, '.crai'),
|
|
27
|
+
}
|
|
28
|
+
if (regexGuess.test(fileName) && !adapterHint) {
|
|
29
|
+
return obj
|
|
30
|
+
} else if (adapterHint === adapterName) {
|
|
31
|
+
return obj
|
|
32
|
+
}
|
|
33
|
+
return adapterGuesser(file, index, adapterHint)
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
pluginManager.addToExtensionPoint(
|
|
39
|
+
'Core-guessAdapterForLocation',
|
|
40
|
+
(adapterGuesser: AdapterGuesser) => {
|
|
41
|
+
return (
|
|
42
|
+
file: FileLocation,
|
|
43
|
+
index?: FileLocation,
|
|
44
|
+
adapterHint?: string,
|
|
45
|
+
) => {
|
|
46
|
+
const regexGuess = /\.bam$/i
|
|
47
|
+
const adapterName = 'BamAdapter'
|
|
48
|
+
const fileName = getFileName(file)
|
|
49
|
+
const indexName = index && getFileName(index)
|
|
50
|
+
|
|
51
|
+
const obj = {
|
|
52
|
+
type: adapterName,
|
|
53
|
+
bamLocation: file,
|
|
54
|
+
index: {
|
|
55
|
+
location: index || makeIndex(file, '.bai'),
|
|
56
|
+
indexType: makeIndexType(indexName, 'CSI', 'BAI'),
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
if (regexGuess.test(fileName) && !adapterHint) {
|
|
60
|
+
return obj
|
|
61
|
+
} else if (adapterHint === adapterName) {
|
|
62
|
+
return obj
|
|
63
|
+
}
|
|
64
|
+
return adapterGuesser(file, index, adapterHint)
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
)
|
|
68
|
+
pluginManager.addToExtensionPoint(
|
|
69
|
+
'Core-guessTrackTypeForLocation',
|
|
70
|
+
(trackTypeGuesser: TrackTypeGuesser) => {
|
|
71
|
+
return (adapterName: string) => {
|
|
72
|
+
if (adapterName === 'BamAdapter' || adapterName === 'CramAdapter') {
|
|
73
|
+
return 'AlignmentsTrack'
|
|
74
|
+
}
|
|
75
|
+
return trackTypeGuesser(adapterName)
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
)
|
|
79
|
+
}
|