@jbrowse/plugin-alignments 2.4.2 → 2.6.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.d.ts +2 -2
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.d.ts +2 -2
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +2 -1
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +1 -1
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +2 -2
- package/dist/AlignmentsFeatureDetail/index.d.ts +4 -1
- package/dist/AlignmentsTrack/configSchemaF.d.ts +74 -0
- package/dist/AlignmentsTrack/configSchemaF.js +19 -0
- package/dist/AlignmentsTrack/configSchemaF.js.map +1 -0
- package/dist/AlignmentsTrack/index.js +2 -15
- package/dist/AlignmentsTrack/index.js.map +1 -1
- package/dist/BamAdapter/BamAdapter.d.ts +2 -2
- package/dist/BamAdapter/BamAdapter.js +27 -32
- package/dist/BamAdapter/BamAdapter.js.map +1 -1
- package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +1 -1
- package/dist/BamAdapter/configSchema.d.ts +50 -1
- package/dist/CramAdapter/CramAdapter.d.ts +1 -1
- package/dist/CramAdapter/CramAdapter.js +49 -47
- package/dist/CramAdapter/CramAdapter.js.map +1 -1
- package/dist/CramAdapter/CramSlightlyLazyFeature.js +3 -5
- package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
- package/dist/CramAdapter/CramTestAdapters.js +3 -3
- package/dist/CramAdapter/CramTestAdapters.js.map +1 -1
- package/dist/CramAdapter/configSchema.d.ts +40 -1
- package/dist/HtsgetBamAdapter/configSchema.d.ts +26 -1
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +2 -2
- package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +39 -1
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +20 -6
- package/dist/LinearAlignmentsDisplay/models/model.js +9 -4
- package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
- package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +2 -2
- package/dist/LinearPileupDisplay/components/ColorByModifications.js +3 -23
- package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
- package/dist/LinearPileupDisplay/components/ColorByTag.d.ts +2 -2
- package/dist/LinearPileupDisplay/components/ColorByTag.js +2 -6
- package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -3
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +6 -6
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -1
- package/dist/LinearPileupDisplay/components/ModificationsTable.d.ts +4 -0
- package/dist/LinearPileupDisplay/components/ModificationsTable.js +29 -0
- package/dist/LinearPileupDisplay/components/ModificationsTable.js.map +1 -0
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
- package/dist/LinearPileupDisplay/components/SetMaxHeight.d.ts +2 -2
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js +3 -5
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
- package/dist/LinearPileupDisplay/components/SortByTag.d.ts +2 -2
- package/dist/LinearPileupDisplay/configSchema.d.ts +57 -1
- package/dist/LinearPileupDisplay/model.d.ts +160 -80
- package/dist/LinearPileupDisplay/model.js +181 -138
- package/dist/LinearPileupDisplay/model.js.map +1 -1
- package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -2
- package/dist/LinearReadArcsDisplay/components/ReactComponent.js +36 -39
- package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -1
- package/dist/LinearReadArcsDisplay/configSchema.d.ts +59 -1
- package/dist/LinearReadArcsDisplay/drawFeats.d.ts +2 -15
- package/dist/LinearReadArcsDisplay/drawFeats.js +58 -66
- package/dist/LinearReadArcsDisplay/drawFeats.js.map +1 -1
- package/dist/LinearReadArcsDisplay/model.d.ts +58 -193
- package/dist/LinearReadArcsDisplay/model.js +65 -115
- package/dist/LinearReadArcsDisplay/model.js.map +1 -1
- package/dist/LinearReadArcsDisplay/util.d.ts +2 -0
- package/dist/LinearReadArcsDisplay/util.js +13 -0
- package/dist/LinearReadArcsDisplay/util.js.map +1 -0
- package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -2
- package/dist/LinearReadCloudDisplay/components/ReactComponent.js +34 -36
- package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -1
- package/dist/LinearReadCloudDisplay/configSchema.d.ts +52 -1
- package/dist/LinearReadCloudDisplay/drawFeats.d.ts +2 -10
- package/dist/LinearReadCloudDisplay/drawFeats.js +11 -127
- package/dist/LinearReadCloudDisplay/drawFeats.js.map +1 -1
- package/dist/LinearReadCloudDisplay/drawLongReadChains.d.ts +11 -0
- package/dist/LinearReadCloudDisplay/drawLongReadChains.js +69 -0
- package/dist/LinearReadCloudDisplay/drawLongReadChains.js.map +1 -0
- package/dist/LinearReadCloudDisplay/drawPairChains.d.ts +17 -0
- package/dist/LinearReadCloudDisplay/drawPairChains.js +100 -0
- package/dist/LinearReadCloudDisplay/drawPairChains.js.map +1 -0
- package/dist/LinearReadCloudDisplay/model.d.ts +65 -196
- package/dist/LinearReadCloudDisplay/model.js +55 -92
- package/dist/LinearReadCloudDisplay/model.js.map +1 -1
- package/dist/LinearReadCloudDisplay/util.d.ts +2 -0
- package/dist/LinearReadCloudDisplay/util.js +35 -0
- package/dist/LinearReadCloudDisplay/util.js.map +1 -0
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +2 -2
- package/dist/LinearSNPCoverageDisplay/models/configSchema.d.ts +79 -1
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +157 -70
- package/dist/LinearSNPCoverageDisplay/models/model.js +46 -33
- package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
- package/dist/MismatchParser/index.d.ts +7 -2
- package/dist/MismatchParser/index.js +44 -5
- package/dist/MismatchParser/index.js.map +1 -1
- package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +15 -2
- package/dist/PileupRPC/methods/GetReducedFeatures.js +1 -8
- package/dist/PileupRPC/methods/GetReducedFeatures.js.map +1 -1
- package/dist/PileupRenderer/PileupLayoutSession.d.ts +1 -1
- package/dist/PileupRenderer/PileupRenderer.d.ts +4 -117
- package/dist/PileupRenderer/PileupRenderer.js +18 -752
- package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
- package/dist/PileupRenderer/colorBy.d.ts +7 -0
- package/dist/PileupRenderer/colorBy.js +69 -0
- package/dist/PileupRenderer/colorBy.js.map +1 -0
- package/dist/PileupRenderer/components/PileupRendering.d.ts +7 -2
- package/dist/PileupRenderer/components/PileupRendering.js +17 -18
- package/dist/PileupRenderer/components/PileupRendering.js.map +1 -1
- package/dist/PileupRenderer/configSchema.d.ts +87 -1
- package/dist/PileupRenderer/getAlignmentShapeColor.d.ts +10 -0
- package/dist/PileupRenderer/getAlignmentShapeColor.js +60 -0
- package/dist/PileupRenderer/getAlignmentShapeColor.js.map +1 -0
- package/dist/PileupRenderer/index.js +1 -1
- package/dist/PileupRenderer/index.js.map +1 -1
- package/dist/PileupRenderer/layoutFeature.d.ts +18 -0
- package/dist/PileupRenderer/layoutFeature.js +41 -0
- package/dist/PileupRenderer/layoutFeature.js.map +1 -0
- package/dist/PileupRenderer/layoutFeatures.d.ts +2 -0
- package/dist/PileupRenderer/layoutFeatures.js +35 -0
- package/dist/PileupRenderer/layoutFeatures.js.map +1 -0
- package/dist/PileupRenderer/makeImageData.d.ts +17 -0
- package/dist/PileupRenderer/makeImageData.js +64 -0
- package/dist/PileupRenderer/makeImageData.js.map +1 -0
- package/dist/PileupRenderer/renderAlignment.d.ts +13 -0
- package/dist/PileupRenderer/renderAlignment.js +72 -0
- package/dist/PileupRenderer/renderAlignment.js.map +1 -0
- package/dist/PileupRenderer/renderAlignmentShape.d.ts +7 -0
- package/dist/PileupRenderer/renderAlignmentShape.js +41 -0
- package/dist/PileupRenderer/renderAlignmentShape.js.map +1 -0
- package/dist/PileupRenderer/renderMethylation.d.ts +11 -0
- package/dist/PileupRenderer/renderMethylation.js +63 -0
- package/dist/PileupRenderer/renderMethylation.js.map +1 -0
- package/dist/PileupRenderer/renderMismatches.d.ts +21 -0
- package/dist/PileupRenderer/renderMismatches.js +135 -0
- package/dist/PileupRenderer/renderMismatches.js.map +1 -0
- package/dist/PileupRenderer/renderModifications.d.ts +11 -0
- package/dist/PileupRenderer/renderModifications.js +54 -0
- package/dist/PileupRenderer/renderModifications.js.map +1 -0
- package/dist/PileupRenderer/renderPerBaseLettering.d.ts +13 -0
- package/dist/PileupRenderer/renderPerBaseLettering.js +47 -0
- package/dist/PileupRenderer/renderPerBaseLettering.js.map +1 -0
- package/dist/PileupRenderer/renderPerBaseQuality.d.ts +9 -0
- package/dist/PileupRenderer/renderPerBaseQuality.js +39 -0
- package/dist/PileupRenderer/renderPerBaseQuality.js.map +1 -0
- package/dist/PileupRenderer/renderSoftClipping.d.ts +13 -0
- package/dist/PileupRenderer/renderSoftClipping.js +48 -0
- package/dist/PileupRenderer/renderSoftClipping.js.map +1 -0
- package/dist/PileupRenderer/sortUtil.js +1 -2
- package/dist/PileupRenderer/sortUtil.js.map +1 -1
- package/dist/PileupRenderer/util.d.ts +24 -0
- package/dist/PileupRenderer/util.js +51 -0
- package/dist/PileupRenderer/util.js.map +1 -0
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +1 -3
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +2 -5
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
- package/dist/SNPCoverageAdapter/configSchema.d.ts +10 -1
- package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +3 -43
- package/dist/SNPCoverageAdapter/generateCoverageBins.js +86 -59
- package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +1 -1
- package/dist/SNPCoverageAdapter/index.js +0 -2
- package/dist/SNPCoverageAdapter/index.js.map +1 -1
- package/dist/SNPCoverageAdapter/util.d.ts +29 -0
- package/dist/SNPCoverageAdapter/util.js +3 -0
- package/dist/SNPCoverageAdapter/util.js.map +1 -0
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -1
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +2 -2
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
- package/dist/SNPCoverageRenderer/configSchema.d.ts +47 -1
- package/dist/SNPCoverageRenderer/configSchema.js +5 -0
- package/dist/SNPCoverageRenderer/configSchema.js.map +1 -1
- package/dist/shared/BaseDisplayComponent.d.ts +8 -0
- package/dist/shared/BaseDisplayComponent.js +49 -0
- package/dist/shared/BaseDisplayComponent.js.map +1 -0
- package/dist/shared/FilterByTag.d.ts +13 -12
- package/dist/shared/FilterByTag.js +8 -13
- package/dist/shared/FilterByTag.js.map +1 -1
- package/dist/shared/afterAttach.d.ts +2 -0
- package/dist/shared/afterAttach.js +44 -0
- package/dist/shared/afterAttach.js.map +1 -0
- package/dist/shared/color.d.ts +44 -6
- package/dist/shared/color.js +57 -23
- package/dist/shared/color.js.map +1 -1
- package/dist/shared/fetchChains.d.ts +3 -2
- package/dist/shared/fetchChains.js +14 -20
- package/dist/shared/fetchChains.js.map +1 -1
- package/dist/shared/renderSvg.d.ts +7 -0
- package/dist/shared/renderSvg.js +69 -0
- package/dist/shared/renderSvg.js.map +1 -0
- package/dist/shared/util.d.ts +2 -0
- package/dist/shared/util.js +13 -0
- package/dist/shared/util.js.map +1 -0
- package/dist/util.d.ts +16 -2
- package/dist/util.js +45 -4
- package/dist/util.js.map +1 -1
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.d.ts +2 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +3 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +1 -1
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +2 -2
- package/esm/AlignmentsFeatureDetail/index.d.ts +4 -1
- package/esm/AlignmentsTrack/configSchemaF.d.ts +74 -0
- package/esm/AlignmentsTrack/configSchemaF.js +16 -0
- package/esm/AlignmentsTrack/configSchemaF.js.map +1 -0
- package/esm/AlignmentsTrack/index.js +3 -16
- package/esm/AlignmentsTrack/index.js.map +1 -1
- package/esm/BamAdapter/BamAdapter.d.ts +2 -2
- package/esm/BamAdapter/BamAdapter.js +27 -32
- package/esm/BamAdapter/BamAdapter.js.map +1 -1
- package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +1 -1
- package/esm/BamAdapter/configSchema.d.ts +50 -1
- package/esm/CramAdapter/CramAdapter.d.ts +1 -1
- package/esm/CramAdapter/CramAdapter.js +50 -48
- package/esm/CramAdapter/CramAdapter.js.map +1 -1
- package/esm/CramAdapter/CramSlightlyLazyFeature.js +3 -5
- package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
- package/esm/CramAdapter/CramTestAdapters.js +2 -2
- package/esm/CramAdapter/CramTestAdapters.js.map +1 -1
- package/esm/CramAdapter/configSchema.d.ts +40 -1
- package/esm/HtsgetBamAdapter/configSchema.d.ts +26 -1
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +2 -2
- package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +39 -1
- package/esm/LinearAlignmentsDisplay/models/model.d.ts +20 -6
- package/esm/LinearAlignmentsDisplay/models/model.js +9 -4
- package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
- package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +2 -2
- package/esm/LinearPileupDisplay/components/ColorByModifications.js +2 -22
- package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
- package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +2 -2
- package/esm/LinearPileupDisplay/components/ColorByTag.js +2 -6
- package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -3
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +6 -6
- package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -1
- package/esm/LinearPileupDisplay/components/ModificationsTable.d.ts +4 -0
- package/esm/LinearPileupDisplay/components/ModificationsTable.js +23 -0
- package/esm/LinearPileupDisplay/components/ModificationsTable.js.map +1 -0
- package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
- package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +2 -2
- package/esm/LinearPileupDisplay/components/SetMaxHeight.js +3 -5
- package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
- package/esm/LinearPileupDisplay/components/SortByTag.d.ts +2 -2
- package/esm/LinearPileupDisplay/configSchema.d.ts +57 -1
- package/esm/LinearPileupDisplay/model.d.ts +160 -80
- package/esm/LinearPileupDisplay/model.js +182 -139
- package/esm/LinearPileupDisplay/model.js.map +1 -1
- package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -2
- package/esm/LinearReadArcsDisplay/components/ReactComponent.js +13 -39
- package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -1
- package/esm/LinearReadArcsDisplay/configSchema.d.ts +59 -1
- package/esm/LinearReadArcsDisplay/drawFeats.d.ts +2 -15
- package/esm/LinearReadArcsDisplay/drawFeats.js +56 -63
- package/esm/LinearReadArcsDisplay/drawFeats.js.map +1 -1
- package/esm/LinearReadArcsDisplay/model.d.ts +58 -193
- package/esm/LinearReadArcsDisplay/model.js +69 -119
- package/esm/LinearReadArcsDisplay/model.js.map +1 -1
- package/esm/LinearReadArcsDisplay/util.d.ts +2 -0
- package/esm/LinearReadArcsDisplay/util.js +9 -0
- package/esm/LinearReadArcsDisplay/util.js.map +1 -0
- package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -2
- package/esm/LinearReadCloudDisplay/components/ReactComponent.js +11 -36
- package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -1
- package/esm/LinearReadCloudDisplay/configSchema.d.ts +52 -1
- package/esm/LinearReadCloudDisplay/drawFeats.d.ts +2 -10
- package/esm/LinearReadCloudDisplay/drawFeats.js +9 -126
- package/esm/LinearReadCloudDisplay/drawFeats.js.map +1 -1
- package/esm/LinearReadCloudDisplay/drawLongReadChains.d.ts +11 -0
- package/esm/LinearReadCloudDisplay/drawLongReadChains.js +65 -0
- package/esm/LinearReadCloudDisplay/drawLongReadChains.js.map +1 -0
- package/esm/LinearReadCloudDisplay/drawPairChains.d.ts +17 -0
- package/esm/LinearReadCloudDisplay/drawPairChains.js +95 -0
- package/esm/LinearReadCloudDisplay/drawPairChains.js.map +1 -0
- package/esm/LinearReadCloudDisplay/model.d.ts +65 -196
- package/esm/LinearReadCloudDisplay/model.js +59 -96
- package/esm/LinearReadCloudDisplay/model.js.map +1 -1
- package/esm/LinearReadCloudDisplay/util.d.ts +2 -0
- package/esm/LinearReadCloudDisplay/util.js +30 -0
- package/esm/LinearReadCloudDisplay/util.js.map +1 -0
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +2 -2
- package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +79 -1
- package/esm/LinearSNPCoverageDisplay/models/model.d.ts +157 -70
- package/esm/LinearSNPCoverageDisplay/models/model.js +48 -35
- package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -1
- package/esm/MismatchParser/index.d.ts +7 -2
- package/esm/MismatchParser/index.js +41 -4
- package/esm/MismatchParser/index.js.map +1 -1
- package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +15 -2
- package/esm/PileupRPC/methods/GetReducedFeatures.js +2 -9
- package/esm/PileupRPC/methods/GetReducedFeatures.js.map +1 -1
- package/esm/PileupRenderer/PileupLayoutSession.d.ts +1 -1
- package/esm/PileupRenderer/PileupRenderer.d.ts +4 -117
- package/esm/PileupRenderer/PileupRenderer.js +20 -754
- package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
- package/esm/PileupRenderer/colorBy.d.ts +7 -0
- package/esm/PileupRenderer/colorBy.js +61 -0
- package/esm/PileupRenderer/colorBy.js.map +1 -0
- package/esm/PileupRenderer/components/PileupRendering.d.ts +7 -2
- package/esm/PileupRenderer/components/PileupRendering.js +17 -18
- package/esm/PileupRenderer/components/PileupRendering.js.map +1 -1
- package/esm/PileupRenderer/configSchema.d.ts +87 -1
- package/esm/PileupRenderer/getAlignmentShapeColor.d.ts +10 -0
- package/esm/PileupRenderer/getAlignmentShapeColor.js +56 -0
- package/esm/PileupRenderer/getAlignmentShapeColor.js.map +1 -0
- package/esm/PileupRenderer/index.js +1 -1
- package/esm/PileupRenderer/index.js.map +1 -1
- package/esm/PileupRenderer/layoutFeature.d.ts +18 -0
- package/esm/PileupRenderer/layoutFeature.js +37 -0
- package/esm/PileupRenderer/layoutFeature.js.map +1 -0
- package/esm/PileupRenderer/layoutFeatures.d.ts +2 -0
- package/esm/PileupRenderer/layoutFeatures.js +31 -0
- package/esm/PileupRenderer/layoutFeatures.js.map +1 -0
- package/esm/PileupRenderer/makeImageData.d.ts +17 -0
- package/esm/PileupRenderer/makeImageData.js +60 -0
- package/esm/PileupRenderer/makeImageData.js.map +1 -0
- package/esm/PileupRenderer/renderAlignment.d.ts +13 -0
- package/esm/PileupRenderer/renderAlignment.js +68 -0
- package/esm/PileupRenderer/renderAlignment.js.map +1 -0
- package/esm/PileupRenderer/renderAlignmentShape.d.ts +7 -0
- package/esm/PileupRenderer/renderAlignmentShape.js +37 -0
- package/esm/PileupRenderer/renderAlignmentShape.js.map +1 -0
- package/esm/PileupRenderer/renderMethylation.d.ts +11 -0
- package/esm/PileupRenderer/renderMethylation.js +59 -0
- package/esm/PileupRenderer/renderMethylation.js.map +1 -0
- package/esm/PileupRenderer/renderMismatches.d.ts +21 -0
- package/esm/PileupRenderer/renderMismatches.js +131 -0
- package/esm/PileupRenderer/renderMismatches.js.map +1 -0
- package/esm/PileupRenderer/renderModifications.d.ts +11 -0
- package/esm/PileupRenderer/renderModifications.js +50 -0
- package/esm/PileupRenderer/renderModifications.js.map +1 -0
- package/esm/PileupRenderer/renderPerBaseLettering.d.ts +13 -0
- package/esm/PileupRenderer/renderPerBaseLettering.js +43 -0
- package/esm/PileupRenderer/renderPerBaseLettering.js.map +1 -0
- package/esm/PileupRenderer/renderPerBaseQuality.d.ts +9 -0
- package/esm/PileupRenderer/renderPerBaseQuality.js +35 -0
- package/esm/PileupRenderer/renderPerBaseQuality.js.map +1 -0
- package/esm/PileupRenderer/renderSoftClipping.d.ts +13 -0
- package/esm/PileupRenderer/renderSoftClipping.js +44 -0
- package/esm/PileupRenderer/renderSoftClipping.js.map +1 -0
- package/esm/PileupRenderer/sortUtil.js +1 -2
- package/esm/PileupRenderer/sortUtil.js.map +1 -1
- package/esm/PileupRenderer/util.d.ts +24 -0
- package/esm/PileupRenderer/util.js +42 -0
- package/esm/PileupRenderer/util.js.map +1 -0
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +1 -3
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +2 -4
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
- package/esm/SNPCoverageAdapter/configSchema.d.ts +10 -1
- package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +3 -43
- package/esm/SNPCoverageAdapter/generateCoverageBins.js +87 -60
- package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +1 -1
- package/esm/SNPCoverageAdapter/index.js +0 -2
- package/esm/SNPCoverageAdapter/index.js.map +1 -1
- package/esm/SNPCoverageAdapter/util.d.ts +29 -0
- package/esm/SNPCoverageAdapter/util.js +2 -0
- package/esm/SNPCoverageAdapter/util.js.map +1 -0
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -1
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +2 -2
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
- package/esm/SNPCoverageRenderer/configSchema.d.ts +47 -1
- package/esm/SNPCoverageRenderer/configSchema.js +5 -0
- package/esm/SNPCoverageRenderer/configSchema.js.map +1 -1
- package/esm/shared/BaseDisplayComponent.d.ts +8 -0
- package/esm/shared/BaseDisplayComponent.js +44 -0
- package/esm/shared/BaseDisplayComponent.js.map +1 -0
- package/esm/shared/FilterByTag.d.ts +13 -12
- package/esm/shared/FilterByTag.js +8 -13
- package/esm/shared/FilterByTag.js.map +1 -1
- package/esm/shared/afterAttach.d.ts +2 -0
- package/esm/shared/afterAttach.js +40 -0
- package/esm/shared/afterAttach.js.map +1 -0
- package/esm/shared/color.d.ts +44 -6
- package/esm/shared/color.js +54 -20
- package/esm/shared/color.js.map +1 -1
- package/esm/shared/fetchChains.d.ts +3 -2
- package/esm/shared/fetchChains.js +14 -20
- package/esm/shared/fetchChains.js.map +1 -1
- package/esm/shared/renderSvg.d.ts +7 -0
- package/esm/shared/renderSvg.js +39 -0
- package/esm/shared/renderSvg.js.map +1 -0
- package/esm/shared/util.d.ts +2 -0
- package/esm/shared/util.js +9 -0
- package/esm/shared/util.js.map +1 -0
- package/esm/util.d.ts +16 -2
- package/esm/util.js +42 -3
- package/esm/util.js.map +1 -1
- package/package.json +3 -3
- package/src/AlignmentsFeatureDetail/AlignmentsFeatureFlags.tsx +3 -5
- package/src/AlignmentsFeatureDetail/__snapshots__/index.test.tsx.snap +1 -2
- package/src/AlignmentsTrack/configSchemaF.ts +22 -0
- package/src/AlignmentsTrack/index.ts +3 -24
- package/src/BamAdapter/BamAdapter.ts +46 -44
- package/src/CombinationTest.test.ts +2 -2
- package/src/CramAdapter/CramAdapter.ts +70 -56
- package/src/CramAdapter/CramSlightlyLazyFeature.ts +2 -5
- package/src/CramAdapter/CramTestAdapters.ts +2 -2
- package/src/LinearAlignmentsDisplay/models/model.tsx +16 -4
- package/src/LinearPileupDisplay/components/ColorByModifications.tsx +3 -39
- package/src/LinearPileupDisplay/components/ColorByTag.tsx +1 -6
- package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +10 -11
- package/src/LinearPileupDisplay/components/ModificationsTable.tsx +38 -0
- package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +3 -5
- package/src/LinearPileupDisplay/model.ts +235 -186
- package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +23 -61
- package/src/LinearReadArcsDisplay/drawFeats.ts +79 -87
- package/src/LinearReadArcsDisplay/model.tsx +77 -155
- package/src/LinearReadArcsDisplay/util.ts +10 -0
- package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +21 -59
- package/src/LinearReadCloudDisplay/drawFeats.ts +12 -166
- package/src/LinearReadCloudDisplay/drawLongReadChains.ts +85 -0
- package/src/LinearReadCloudDisplay/drawPairChains.ts +139 -0
- package/src/LinearReadCloudDisplay/model.tsx +72 -131
- package/src/LinearReadCloudDisplay/util.ts +47 -0
- package/src/LinearSNPCoverageDisplay/models/model.ts +63 -50
- package/src/MismatchParser/index.ts +46 -4
- package/src/PileupRPC/methods/GetReducedFeatures.ts +2 -10
- package/src/PileupRenderer/PileupLayoutSession.ts +1 -1
- package/src/PileupRenderer/PileupRenderer.ts +23 -1190
- package/src/PileupRenderer/colorBy.ts +74 -0
- package/src/PileupRenderer/components/PileupRendering.tsx +20 -25
- package/src/PileupRenderer/getAlignmentShapeColor.ts +87 -0
- package/src/PileupRenderer/index.ts +1 -1
- package/src/PileupRenderer/layoutFeature.ts +83 -0
- package/src/PileupRenderer/layoutFeatures.ts +44 -0
- package/src/PileupRenderer/makeImageData.ts +93 -0
- package/src/PileupRenderer/renderAlignment.ts +97 -0
- package/src/PileupRenderer/renderAlignmentShape.ts +45 -0
- package/src/PileupRenderer/renderMethylation.ts +75 -0
- package/src/PileupRenderer/renderMismatches.ts +206 -0
- package/src/PileupRenderer/renderModifications.ts +74 -0
- package/src/PileupRenderer/renderPerBaseLettering.ts +67 -0
- package/src/PileupRenderer/renderPerBaseQuality.ts +46 -0
- package/src/PileupRenderer/renderSoftClipping.ts +78 -0
- package/src/PileupRenderer/sortUtil.ts +1 -3
- package/src/PileupRenderer/util.ts +63 -0
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +5 -5
- package/src/SNPCoverageAdapter/generateCoverageBins.ts +105 -91
- package/src/SNPCoverageAdapter/index.ts +0 -2
- package/src/SNPCoverageAdapter/util.ts +33 -0
- package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +3 -3
- package/src/SNPCoverageRenderer/configSchema.ts +6 -0
- package/src/shared/BaseDisplayComponent.tsx +83 -0
- package/src/shared/FilterByTag.tsx +13 -23
- package/src/shared/afterAttach.tsx +66 -0
- package/src/shared/color.ts +59 -20
- package/src/shared/fetchChains.ts +23 -24
- package/src/shared/renderSvg.tsx +64 -0
- package/src/shared/util.ts +10 -0
- package/src/util.ts +54 -5
package/esm/util.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
-
import { Feature } from '@jbrowse/core/util
|
|
3
|
-
import {
|
|
2
|
+
import { Feature, AugmentedRegion } from '@jbrowse/core/util';
|
|
3
|
+
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
4
|
+
import { IAutorunOptions } from 'mobx';
|
|
4
5
|
export declare function getTag(feature: Feature, tag: string): any;
|
|
5
6
|
export declare function getTagAlt(feature: Feature, tag: string, alt: string): any;
|
|
6
7
|
export declare const orientationTypes: {
|
|
@@ -14,6 +15,19 @@ export declare const orientationTypes: {
|
|
|
14
15
|
[key: string]: string;
|
|
15
16
|
};
|
|
16
17
|
};
|
|
18
|
+
export declare const pairMap: {
|
|
19
|
+
readonly LR: "color_pair_lr";
|
|
20
|
+
readonly LL: "color_pair_ll";
|
|
21
|
+
readonly RR: "color_pair_rr";
|
|
22
|
+
readonly RL: "color_pair_rl";
|
|
23
|
+
};
|
|
17
24
|
export declare function getColorWGBS(strand: number, base: string): "#f00" | "#00f" | "#888";
|
|
18
25
|
export declare function fetchSequence(region: AugmentedRegion, adapter: BaseFeatureDataAdapter): Promise<any>;
|
|
19
26
|
export declare function shouldFetchReferenceSequence(type?: string): boolean;
|
|
27
|
+
export declare const modificationColors: Record<string, string | undefined>;
|
|
28
|
+
type DisplayModel = IAnyStateTreeNode & {
|
|
29
|
+
setError: (arg: unknown) => void;
|
|
30
|
+
};
|
|
31
|
+
export declare function createAutorun(self: DisplayModel, cb: () => Promise<void>, opts?: IAutorunOptions): void;
|
|
32
|
+
export declare function randomColor(): string;
|
|
33
|
+
export {};
|
package/esm/util.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { toArray } from 'rxjs/operators';
|
|
2
2
|
import { firstValueFrom } from 'rxjs';
|
|
3
|
+
import { addDisposer, isAlive } from 'mobx-state-tree';
|
|
4
|
+
import { autorun } from 'mobx';
|
|
3
5
|
// get tag from BAM or CRAM feature, where CRAM uses feature.get('tags') and
|
|
4
6
|
// BAM does not
|
|
5
7
|
export function getTag(feature, tag) {
|
|
6
8
|
const tags = feature.get('tags');
|
|
7
|
-
return tags ? tags[tag] : feature.get(tag);
|
|
9
|
+
return tags !== undefined ? tags[tag] : feature.get(tag);
|
|
8
10
|
}
|
|
9
11
|
// use fallback alt tag, used in situations where upper case/lower case tags
|
|
10
12
|
// exist e.g. Mm/MM for base modifications
|
|
11
13
|
export function getTagAlt(feature, tag, alt) {
|
|
12
|
-
|
|
14
|
+
var _a;
|
|
15
|
+
return (_a = getTag(feature, tag)) !== null && _a !== void 0 ? _a : getTag(feature, alt);
|
|
13
16
|
}
|
|
14
17
|
// orientation definitions from igv.js, see also
|
|
15
18
|
// https://software.broadinstitute.org/software/igv/interpreting_pair_orientations
|
|
@@ -45,6 +48,12 @@ export const orientationTypes = {
|
|
|
45
48
|
F1F2: 'RL',
|
|
46
49
|
},
|
|
47
50
|
};
|
|
51
|
+
export const pairMap = {
|
|
52
|
+
LR: 'color_pair_lr',
|
|
53
|
+
LL: 'color_pair_ll',
|
|
54
|
+
RR: 'color_pair_rr',
|
|
55
|
+
RL: 'color_pair_rl',
|
|
56
|
+
};
|
|
48
57
|
export function getColorWGBS(strand, base) {
|
|
49
58
|
if (strand === 1) {
|
|
50
59
|
if (base === 'C') {
|
|
@@ -64,14 +73,17 @@ export function getColorWGBS(strand, base) {
|
|
|
64
73
|
}
|
|
65
74
|
return '#888';
|
|
66
75
|
}
|
|
76
|
+
// fetches region sequence augmenting by +/- 1bp for CpG on either side of
|
|
77
|
+
// requested region
|
|
67
78
|
export async function fetchSequence(region, adapter) {
|
|
68
79
|
var _a;
|
|
69
|
-
const { end, originalRefName, refName } = region;
|
|
80
|
+
const { start, end, originalRefName, refName } = region;
|
|
70
81
|
const feats = await firstValueFrom(adapter
|
|
71
82
|
.getFeatures({
|
|
72
83
|
...region,
|
|
73
84
|
refName: originalRefName || refName,
|
|
74
85
|
end: end + 1,
|
|
86
|
+
start: Math.max(0, start - 1),
|
|
75
87
|
})
|
|
76
88
|
.pipe(toArray()));
|
|
77
89
|
return (_a = feats[0]) === null || _a === void 0 ? void 0 : _a.get('seq');
|
|
@@ -80,4 +92,31 @@ export async function fetchSequence(region, adapter) {
|
|
|
80
92
|
export function shouldFetchReferenceSequence(type) {
|
|
81
93
|
return type === 'methylation';
|
|
82
94
|
}
|
|
95
|
+
// adapted from IGV
|
|
96
|
+
// https://github.com/igvteam/igv/blob/e803e3af2d8c9ea049961dfd4628146bdde9a574/src/main/java/org/broad/igv/sam/mods/BaseModificationColors.java#L27
|
|
97
|
+
export const modificationColors = {
|
|
98
|
+
m: 'rgb(255,0,0)',
|
|
99
|
+
h: 'rgb(11, 132, 165)',
|
|
100
|
+
o: 'rgb(111, 78, 129)',
|
|
101
|
+
f: 'rgb(246, 200, 95)',
|
|
102
|
+
c: 'rgb(157, 216, 102)',
|
|
103
|
+
g: 'rgb(255, 160, 86)',
|
|
104
|
+
e: 'rgb(141, 221, 208)',
|
|
105
|
+
b: 'rgb(202, 71, 47)',
|
|
106
|
+
};
|
|
107
|
+
export function createAutorun(self, cb, opts) {
|
|
108
|
+
addDisposer(self, autorun(async () => {
|
|
109
|
+
try {
|
|
110
|
+
await cb();
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
if (isAlive(self)) {
|
|
114
|
+
self.setError(e);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}, opts));
|
|
118
|
+
}
|
|
119
|
+
export function randomColor() {
|
|
120
|
+
return `hsl(${Math.random() * 200}, 50%, 50%)`;
|
|
121
|
+
}
|
|
83
122
|
//# sourceMappingURL=util.js.map
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.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.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "JBrowse 2 alignments adapters, tracks, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"clean": "rimraf dist esm *.tsbuildinfo"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@gmod/bam": "^
|
|
40
|
+
"@gmod/bam": "^2.0.0",
|
|
41
41
|
"@gmod/cram": "^1.7.1",
|
|
42
42
|
"@mui/icons-material": "^5.0.1",
|
|
43
43
|
"canvas2svg": "^1.0.16",
|
|
@@ -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": "9962c94711dd3386dcb76c16f3646937d9c4751a"
|
|
69
69
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { Checkbox, FormControlLabel, FormGroup } from '@mui/material'
|
|
3
3
|
import { makeStyles } from 'tss-react/mui'
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
SimpleValue,
|
|
7
|
-
} from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
|
|
4
|
+
import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
|
|
5
|
+
import SimpleField from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/SimpleField'
|
|
8
6
|
|
|
9
7
|
const useStyles = makeStyles()({
|
|
10
8
|
compact: {
|
|
@@ -36,7 +34,7 @@ export default function AlignmentFlags(props: { feature: { flags: number } }) {
|
|
|
36
34
|
|
|
37
35
|
return (
|
|
38
36
|
<BaseCard {...props} title="Flags">
|
|
39
|
-
<
|
|
37
|
+
<SimpleField name="Flag" value={flags} />
|
|
40
38
|
<FormGroup>
|
|
41
39
|
{flagNames.map((name, idx) => {
|
|
42
40
|
const val = flags & (1 << idx)
|
|
@@ -280,7 +280,7 @@ exports[`open up a widget 1`] = `
|
|
|
280
280
|
</div>
|
|
281
281
|
</div>
|
|
282
282
|
<div
|
|
283
|
-
class="css-
|
|
283
|
+
class="css-1lttu3w-container"
|
|
284
284
|
>
|
|
285
285
|
<button
|
|
286
286
|
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-sghohy-MuiButtonBase-root-MuiButton-root"
|
|
@@ -316,7 +316,6 @@ exports[`open up a widget 1`] = `
|
|
|
316
316
|
/>
|
|
317
317
|
</button>
|
|
318
318
|
</div>
|
|
319
|
-
<br />
|
|
320
319
|
</div>
|
|
321
320
|
</div>
|
|
322
321
|
</div>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
+
import { createBaseTrackConfig } from '@jbrowse/core/pluggableElementTypes'
|
|
3
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* #config AlignmentsTrack
|
|
7
|
+
* has very little config; most config and state logic is on the display
|
|
8
|
+
*/
|
|
9
|
+
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
10
|
+
|
|
11
|
+
export default function configSchemaFactory(pluginManager: PluginManager) {
|
|
12
|
+
return ConfigurationSchema(
|
|
13
|
+
'AlignmentsTrack',
|
|
14
|
+
{},
|
|
15
|
+
{
|
|
16
|
+
/**
|
|
17
|
+
* #baseConfiguration
|
|
18
|
+
*/
|
|
19
|
+
baseConfiguration: createBaseTrackConfig(pluginManager),
|
|
20
|
+
},
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -1,32 +1,11 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
2
|
import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType'
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
createBaseTrackConfig,
|
|
6
|
-
createBaseTrackModel,
|
|
7
|
-
} from '@jbrowse/core/pluggableElementTypes/models'
|
|
3
|
+
import { createBaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models'
|
|
4
|
+
import configSchemaF from './configSchemaF'
|
|
8
5
|
|
|
9
|
-
/**
|
|
10
|
-
* #config AlignmentsTrack
|
|
11
|
-
* has very little config; most config and state logic is on the display
|
|
12
|
-
*/
|
|
13
|
-
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
14
|
-
|
|
15
|
-
function configSchemaFactory(pluginManager: PluginManager) {
|
|
16
|
-
return ConfigurationSchema(
|
|
17
|
-
'AlignmentsTrack',
|
|
18
|
-
{},
|
|
19
|
-
{
|
|
20
|
-
/**
|
|
21
|
-
* #baseConfiguration
|
|
22
|
-
*/
|
|
23
|
-
baseConfiguration: createBaseTrackConfig(pluginManager),
|
|
24
|
-
},
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
6
|
export default function register(pm: PluginManager) {
|
|
28
7
|
pm.addTrackType(() => {
|
|
29
|
-
const configSchema =
|
|
8
|
+
const configSchema = configSchemaF(pm)
|
|
30
9
|
const track = new TrackType({
|
|
31
10
|
name: 'AlignmentsTrack',
|
|
32
11
|
displayName: 'Alignments track',
|
|
@@ -8,10 +8,10 @@ import { bytesForRegions, updateStatus, Feature } from '@jbrowse/core/util'
|
|
|
8
8
|
import { openLocation } from '@jbrowse/core/util/io'
|
|
9
9
|
import { ObservableCreate } from '@jbrowse/core/util/rxjs'
|
|
10
10
|
import { toArray } from 'rxjs/operators'
|
|
11
|
+
import { firstValueFrom } from 'rxjs'
|
|
11
12
|
|
|
12
13
|
// locals
|
|
13
14
|
import BamSlightlyLazyFeature from './BamSlightlyLazyFeature'
|
|
14
|
-
import { firstValueFrom } from 'rxjs'
|
|
15
15
|
|
|
16
16
|
interface Header {
|
|
17
17
|
idToName: string[]
|
|
@@ -43,8 +43,6 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
|
43
43
|
// chunkSizeLimit and fetchSizeLimit are more troublesome than
|
|
44
44
|
// helpful, and have given overly large values on the ultra long
|
|
45
45
|
// nanopore reads even with 500MB limits, so disabled with infinity
|
|
46
|
-
chunkSizeLimit: Infinity,
|
|
47
|
-
fetchSizeLimit: Infinity,
|
|
48
46
|
yieldThreadTime: Infinity,
|
|
49
47
|
})
|
|
50
48
|
|
|
@@ -89,7 +87,7 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
|
89
87
|
const idToName: string[] = []
|
|
90
88
|
const nameToId: Record<string, number> = {}
|
|
91
89
|
samHeader
|
|
92
|
-
|
|
90
|
+
?.filter(l => l.tag === 'SQ')
|
|
93
91
|
.forEach((sqLine, refId) => {
|
|
94
92
|
sqLine.data.forEach(item => {
|
|
95
93
|
if (item.tag === 'SN') {
|
|
@@ -182,61 +180,65 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
|
182
180
|
return ObservableCreate<Feature>(async observer => {
|
|
183
181
|
const { bam } = await this.configure()
|
|
184
182
|
await this.setup(opts)
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
flagExclude = 0,
|
|
191
|
-
tagFilter,
|
|
192
|
-
readName,
|
|
193
|
-
} = filterBy || {}
|
|
194
|
-
|
|
195
|
-
for (const record of records) {
|
|
196
|
-
let ref: string | undefined
|
|
197
|
-
if (!record.get('MD')) {
|
|
198
|
-
ref = await this.seqFetch(
|
|
199
|
-
originalRefName || refName,
|
|
200
|
-
record.get('start'),
|
|
201
|
-
record.get('end'),
|
|
202
|
-
)
|
|
203
|
-
}
|
|
183
|
+
const records = await updateStatus(
|
|
184
|
+
'Downloading alignments',
|
|
185
|
+
statusCallback,
|
|
186
|
+
() => bam.getRecordsForRange(refName, start, end, opts),
|
|
187
|
+
)
|
|
204
188
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
189
|
+
await updateStatus('Processing alignments', statusCallback, async () => {
|
|
190
|
+
const {
|
|
191
|
+
flagInclude = 0,
|
|
192
|
+
flagExclude = 0,
|
|
193
|
+
tagFilter,
|
|
194
|
+
readName,
|
|
195
|
+
} = filterBy || {}
|
|
196
|
+
|
|
197
|
+
for (const record of records) {
|
|
198
|
+
let ref: string | undefined
|
|
199
|
+
if (!record.get('MD')) {
|
|
200
|
+
ref = await this.seqFetch(
|
|
201
|
+
originalRefName || refName,
|
|
202
|
+
record.get('start'),
|
|
203
|
+
record.get('end'),
|
|
204
|
+
)
|
|
205
|
+
}
|
|
211
206
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (!(val === '*' ? val !== undefined : val === tagFilter.value)) {
|
|
207
|
+
const flags = record.flags
|
|
208
|
+
if ((flags & flagInclude) !== flagInclude && !(flags & flagExclude)) {
|
|
215
209
|
continue
|
|
216
210
|
}
|
|
217
|
-
}
|
|
218
211
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
212
|
+
if (tagFilter) {
|
|
213
|
+
const v = record.get(tagFilter.tag)
|
|
214
|
+
if (!(v === '*' ? v !== undefined : `${v}` === tagFilter.value)) {
|
|
215
|
+
continue
|
|
216
|
+
}
|
|
217
|
+
}
|
|
222
218
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
219
|
+
if (readName && record.get('name') !== readName) {
|
|
220
|
+
continue
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
observer.next(new BamSlightlyLazyFeature(record, this, ref))
|
|
224
|
+
}
|
|
225
|
+
observer.complete()
|
|
226
|
+
})
|
|
227
227
|
}, signal)
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
async
|
|
230
|
+
async getMultiRegionFeatureDensityStats(
|
|
231
|
+
regions: Region[],
|
|
232
|
+
opts?: BaseOptions,
|
|
233
|
+
) {
|
|
231
234
|
const { bam } = await this.configure()
|
|
232
235
|
// this is a method to avoid calling on htsget adapters
|
|
233
|
-
|
|
234
|
-
if (bam.index.filehandle !== '?') {
|
|
236
|
+
if (bam.index) {
|
|
235
237
|
const bytes = await bytesForRegions(regions, bam)
|
|
236
238
|
const fetchSizeLimit = this.getConf('fetchSizeLimit')
|
|
237
239
|
return { bytes, fetchSizeLimit }
|
|
238
240
|
} else {
|
|
239
|
-
return super.
|
|
241
|
+
return super.getMultiRegionFeatureDensityStats(regions, opts)
|
|
240
242
|
}
|
|
241
243
|
}
|
|
242
244
|
|
|
@@ -100,9 +100,9 @@ async function mismatchesCheck(f: string) {
|
|
|
100
100
|
test('match CIGAR across file types', async () => {
|
|
101
101
|
await cigarCheck('volvox-sorted')
|
|
102
102
|
await cigarCheck('volvox-long-reads.fastq.sorted')
|
|
103
|
-
})
|
|
103
|
+
}, 20000)
|
|
104
104
|
|
|
105
105
|
test('mismatches same across file types', async () => {
|
|
106
106
|
await mismatchesCheck('volvox-sorted')
|
|
107
107
|
await mismatchesCheck('volvox-long-reads.fastq.sorted')
|
|
108
|
-
})
|
|
108
|
+
}, 20000)
|
|
@@ -4,7 +4,12 @@ import {
|
|
|
4
4
|
BaseOptions,
|
|
5
5
|
BaseSequenceAdapter,
|
|
6
6
|
} from '@jbrowse/core/data_adapters/BaseAdapter'
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
checkAbortSignal,
|
|
9
|
+
Region,
|
|
10
|
+
Feature,
|
|
11
|
+
updateStatus,
|
|
12
|
+
} from '@jbrowse/core/util'
|
|
8
13
|
import { openLocation } from '@jbrowse/core/util/io'
|
|
9
14
|
import { ObservableCreate } from '@jbrowse/core/util/rxjs'
|
|
10
15
|
import { toArray } from 'rxjs/operators'
|
|
@@ -142,36 +147,36 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
142
147
|
|
|
143
148
|
private async setupPre(opts?: BaseOptions) {
|
|
144
149
|
const { statusCallback = () => {} } = opts || {}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
150
|
+
return updateStatus('Downloading index', statusCallback, async () => {
|
|
151
|
+
const conf = await this.configure()
|
|
152
|
+
const { cram } = conf
|
|
153
|
+
const samHeader = await cram.cram.getSamHeader()
|
|
154
|
+
|
|
155
|
+
// use the @SQ lines in the header to figure out the
|
|
156
|
+
// mapping between ref ID numbers and names
|
|
157
|
+
const idToName: string[] = []
|
|
158
|
+
const nameToId: Record<string, number> = {}
|
|
159
|
+
samHeader
|
|
160
|
+
.filter(l => l.tag === 'SQ')
|
|
161
|
+
.forEach((sqLine, refId) => {
|
|
162
|
+
sqLine.data.forEach(item => {
|
|
163
|
+
if (item.tag === 'SN') {
|
|
164
|
+
// this is the ref name
|
|
165
|
+
const refName = item.value
|
|
166
|
+
nameToId[refName] = refId
|
|
167
|
+
idToName[refId] = refName
|
|
168
|
+
}
|
|
169
|
+
})
|
|
164
170
|
})
|
|
165
|
-
})
|
|
166
171
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
172
|
+
const readGroups = samHeader
|
|
173
|
+
.filter(l => l.tag === 'RG')
|
|
174
|
+
.map(rgLine => rgLine.data.find(item => item.tag === 'ID')?.value)
|
|
170
175
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
176
|
+
const data = { idToName, nameToId, readGroups }
|
|
177
|
+
this.samHeader = data
|
|
178
|
+
return { samHeader: data, ...conf }
|
|
179
|
+
})
|
|
175
180
|
}
|
|
176
181
|
|
|
177
182
|
private async setup(opts?: BaseOptions) {
|
|
@@ -236,38 +241,44 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
236
241
|
if (originalRefName) {
|
|
237
242
|
this.seqIdToOriginalRefName[refId] = originalRefName
|
|
238
243
|
}
|
|
239
|
-
|
|
240
|
-
|
|
244
|
+
const records = await updateStatus(
|
|
245
|
+
'Downloading alignments',
|
|
246
|
+
statusCallback,
|
|
247
|
+
() => cram.getRecordsForRange(refId, start, end),
|
|
248
|
+
)
|
|
241
249
|
checkAbortSignal(signal)
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
250
|
+
await updateStatus('Processing alignments', statusCallback, () => {
|
|
251
|
+
const {
|
|
252
|
+
flagInclude = 0,
|
|
253
|
+
flagExclude = 0,
|
|
254
|
+
tagFilter,
|
|
255
|
+
readName,
|
|
256
|
+
} = filterBy || {}
|
|
257
|
+
|
|
258
|
+
for (const record of records) {
|
|
259
|
+
const flags = record.flags
|
|
260
|
+
if ((flags & flagInclude) !== flagInclude && !(flags & flagExclude)) {
|
|
261
|
+
continue
|
|
262
|
+
}
|
|
253
263
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
264
|
+
if (tagFilter) {
|
|
265
|
+
const v =
|
|
266
|
+
tagFilter.tag === 'RG'
|
|
267
|
+
? this.samHeader.readGroups?.[record.readGroupId]
|
|
268
|
+
: record.tags[tagFilter.tag]
|
|
269
|
+
if (!(v === '*' ? v !== undefined : `${v}` === tagFilter.value)) {
|
|
270
|
+
continue
|
|
271
|
+
}
|
|
272
|
+
}
|
|
261
273
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
274
|
+
if (readName && record.readName !== readName) {
|
|
275
|
+
continue
|
|
276
|
+
}
|
|
277
|
+
observer.next(this.cramRecordToFeature(record))
|
|
278
|
+
}
|
|
265
279
|
|
|
266
|
-
|
|
267
|
-
observer.next(this.cramRecordToFeature(record))
|
|
280
|
+
observer.complete()
|
|
268
281
|
})
|
|
269
|
-
statusCallback('')
|
|
270
|
-
observer.complete()
|
|
271
282
|
}, signal)
|
|
272
283
|
}
|
|
273
284
|
|
|
@@ -278,7 +289,10 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
278
289
|
}
|
|
279
290
|
|
|
280
291
|
// we return the configured fetchSizeLimit, and the bytes for the region
|
|
281
|
-
async
|
|
292
|
+
async getMultiRegionFeatureDensityStats(
|
|
293
|
+
regions: Region[],
|
|
294
|
+
opts?: BaseOptions,
|
|
295
|
+
) {
|
|
282
296
|
const bytes = await this.bytesForRegions(regions, opts)
|
|
283
297
|
const fetchSizeLimit = this.getConf('fetchSizeLimit')
|
|
284
298
|
return {
|
|
@@ -47,8 +47,7 @@ export default class CramSlightlyLazyFeature implements Feature {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
_read_group_id() {
|
|
50
|
-
|
|
51
|
-
return rg ? rg[this.record.readGroupId] : undefined
|
|
50
|
+
return this._store.samHeader.readGroups?.[this.record.readGroupId]
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
_get_qual() {
|
|
@@ -157,9 +156,7 @@ export default class CramSlightlyLazyFeature implements Feature {
|
|
|
157
156
|
const mismatches = this.get('mismatches')
|
|
158
157
|
if (mismatches.length) {
|
|
159
158
|
const record =
|
|
160
|
-
this.get('strand') === -1
|
|
161
|
-
? mismatches[mismatches.length - 1]
|
|
162
|
-
: mismatches[0]
|
|
159
|
+
this.get('strand') === -1 ? mismatches.at(-1) : mismatches[0]
|
|
163
160
|
const { type, cliplen } = record
|
|
164
161
|
if (type === 'softclip' || type === 'hardclip') {
|
|
165
162
|
return cliplen
|
|
@@ -2,7 +2,7 @@ import { GenericFilehandle } from 'generic-filehandle'
|
|
|
2
2
|
import { Observable } from 'rxjs'
|
|
3
3
|
import SimpleFeature from '@jbrowse/core/util/simpleFeature'
|
|
4
4
|
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
|
|
5
|
-
import { ConfigurationSchema } from '@jbrowse/core/configuration
|
|
5
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
6
6
|
|
|
7
7
|
// setup for Cram Adapter Testing
|
|
8
8
|
export function parseSmallFasta(text: string) {
|
|
@@ -13,7 +13,7 @@ export function parseSmallFasta(text: string) {
|
|
|
13
13
|
const [defLine, ...seqLines] = entryText.split(/\n|\r\n|\r/)
|
|
14
14
|
const [id, ...descriptionLines] = defLine.split(' ')
|
|
15
15
|
const description = descriptionLines.join(' ')
|
|
16
|
-
const sequence = seqLines.join('').
|
|
16
|
+
const sequence = seqLines.join('').replaceAll(/\s/g, '')
|
|
17
17
|
return { id, description, sequence }
|
|
18
18
|
})
|
|
19
19
|
}
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
import { BaseDisplay } from '@jbrowse/core/pluggableElementTypes/models'
|
|
21
21
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
22
22
|
import { MenuItem } from '@jbrowse/core/ui'
|
|
23
|
+
import { FeatureDensityStats } from '@jbrowse/core/data_adapters/BaseAdapter'
|
|
23
24
|
|
|
24
25
|
const minDisplayHeight = 20
|
|
25
26
|
|
|
@@ -161,6 +162,13 @@ function stateModelFactory(
|
|
|
161
162
|
get height() {
|
|
162
163
|
return self.heightPreConfig ?? getConf(self, 'height')
|
|
163
164
|
},
|
|
165
|
+
|
|
166
|
+
get featureIdUnderMouse() {
|
|
167
|
+
return (
|
|
168
|
+
self.PileupDisplay.featureIdUnderMouse ||
|
|
169
|
+
self.SNPCoverageDisplay.featureIdUnderMouse
|
|
170
|
+
)
|
|
171
|
+
},
|
|
164
172
|
}))
|
|
165
173
|
.views(self => ({
|
|
166
174
|
/**
|
|
@@ -234,9 +242,9 @@ function stateModelFactory(
|
|
|
234
242
|
/**
|
|
235
243
|
* #action
|
|
236
244
|
*/
|
|
237
|
-
|
|
238
|
-
self.PileupDisplay.
|
|
239
|
-
self.SNPCoverageDisplay.
|
|
245
|
+
setFeatureDensityStatsLimit(stats?: FeatureDensityStats) {
|
|
246
|
+
self.PileupDisplay.setFeatureDensityStatsLimit(stats)
|
|
247
|
+
self.SNPCoverageDisplay.setFeatureDensityStatsLimit(stats)
|
|
240
248
|
},
|
|
241
249
|
|
|
242
250
|
/**
|
|
@@ -328,7 +336,11 @@ function stateModelFactory(
|
|
|
328
336
|
*/
|
|
329
337
|
async renderSvg(opts: { rasterizeLayers?: boolean }) {
|
|
330
338
|
const pileupHeight = self.height - self.SNPCoverageDisplay.height
|
|
331
|
-
await when(
|
|
339
|
+
await when(
|
|
340
|
+
() =>
|
|
341
|
+
!self.PileupDisplay.renderProps().notReady &&
|
|
342
|
+
!self.SNPCoverageDisplay.renderProps().notReady,
|
|
343
|
+
)
|
|
332
344
|
return (
|
|
333
345
|
<>
|
|
334
346
|
<g>{await self.SNPCoverageDisplay.renderSvg(opts)}</g>
|