Skip to content

Commit 2b057d3

Browse files
committed
Wow
1 parent 0182554 commit 2b057d3

File tree

4 files changed

+33
-27
lines changed

4 files changed

+33
-27
lines changed

plugins/alignments/src/PileupRenderer/PileupRenderer.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { readConfObject } from '@jbrowse/core/configuration'
22
import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
33
import BoxRendererType from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType'
4-
import { renderToAbstractCanvas } from '@jbrowse/core/util'
4+
import { renderToAbstractCanvas, updateStatus } from '@jbrowse/core/util'
55

66
import { PileupLayoutSession } from './PileupLayoutSession'
77
import { fetchSequence } from '../util'
@@ -53,39 +53,39 @@ export default class PileupRenderer extends BoxRendererType {
5353
async render(renderProps: RenderArgsDeserialized) {
5454
const features = await this.getFeatures(renderProps)
5555
const layout = this.createLayoutInWorker(renderProps)
56-
const { colorBy, regions, bpPerPx } = renderProps
56+
const { statusCallback = () => {}, colorBy, regions, bpPerPx } = renderProps
5757
const region = regions[0]!
58-
59-
const regionSequence =
60-
colorBy?.type === 'methylation' && features.size
61-
? await this.fetchSequence(renderProps, region)
62-
: undefined
63-
58+
const width = (region.end - region.start) / bpPerPx
6459
const { layoutRecords, height } = layoutFeats({
6560
...renderProps,
6661
features,
6762
layout,
6863
})
69-
const width = (region.end - region.start) / bpPerPx
70-
const { makeImageData } = await import('./makeImageData')
7164

72-
const res = await renderToAbstractCanvas(
73-
width,
74-
height,
75-
renderProps,
76-
ctx => {
77-
makeImageData({
78-
ctx,
79-
layoutRecords,
80-
canvasWidth: width,
81-
renderArgs: {
82-
...renderProps,
83-
layout,
84-
features,
85-
regionSequence,
86-
},
65+
const res = await updateStatus(
66+
'Rendering alignments',
67+
statusCallback,
68+
async () => {
69+
const regionSequence =
70+
colorBy?.type === 'methylation' && features.size
71+
? await this.fetchSequence(renderProps, region)
72+
: undefined
73+
const { makeImageData } = await import('./makeImageData')
74+
75+
return renderToAbstractCanvas(width, height, renderProps, ctx => {
76+
makeImageData({
77+
ctx,
78+
layoutRecords,
79+
canvasWidth: width,
80+
renderArgs: {
81+
...renderProps,
82+
layout,
83+
features,
84+
regionSequence,
85+
},
86+
})
87+
return undefined
8788
})
88-
return undefined
8989
},
9090
)
9191

plugins/alignments/src/PileupRenderer/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export interface RenderArgsDeserialized extends BoxRenderArgsDeserialized {
2020
sortedBy?: SortedBy
2121
showSoftClip: boolean
2222
highResolutionScaling: number
23+
statusCallback?: (arg: string) => void
2324
}
2425

2526
export interface ProcessedRenderArgs extends RenderArgsDeserialized {

plugins/alignments/src/SNPCoverageRenderer/SNPCoverageRenderer.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { WiggleBaseRenderer } from '@jbrowse/plugin-wiggle'
22

33
import type { RenderArgsDeserializedWithFeatures } from './types'
4+
import { updateStatus } from '@jbrowse/core/util'
45

56
export default class SNPCoverageRenderer extends WiggleBaseRenderer {
67
// note: the snps are drawn on linear scale even if the data is drawn in log
@@ -10,8 +11,11 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
1011
ctx: CanvasRenderingContext2D,
1112
props: RenderArgsDeserializedWithFeatures,
1213
) {
14+
const { statusCallback = () => {} } = props
1315
const { makeImage } = await import('./makeImage')
14-
await makeImage(ctx, props)
16+
await updateStatus('Rendering coverage', statusCallback, () =>
17+
makeImage(ctx, props),
18+
)
1519
return undefined
1620
}
1721
}

plugins/alignments/src/SNPCoverageRenderer/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ export interface RenderArgsDeserializedWithFeatures
1616
ticks: { values: number[] }
1717
displayCrossHatches: boolean
1818
visibleModifications?: Record<string, ModificationTypeWithColor>
19+
statusCallback?: (arg: string) => void
1920
colorBy: ColorBy
2021
}

0 commit comments

Comments
 (0)