UNPKG

@jbrowse/plugin-wiggle

Version:

JBrowse 2 wiggle adapters, tracks, etc.

27 lines (26 loc) 993 B
import { forEachWithStopTokenCheck, groupBy } from '@jbrowse/core/util'; import WiggleBaseRenderer from '../WiggleBaseRenderer'; export default class MultiDensityPlotRenderer extends WiggleBaseRenderer { async draw(ctx, props) { const { stopToken, sources, features } = props; const groups = groupBy(features.values(), f => f.get('source')); const height = props.height / sources.length; let feats = []; const { drawDensity } = await import('../drawDensity'); ctx.save(); forEachWithStopTokenCheck(sources, stopToken, source => { const features = groups[source.name] || []; const { reducedFeatures } = drawDensity(ctx, { ...props, features, height, }); ctx.translate(0, height); feats = feats.concat(reducedFeatures); }); ctx.restore(); return { reducedFeatures: feats, }; } }