@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
23 lines (22 loc) • 952 B
JavaScript
import { forEachWithStopTokenCheck, groupBy } from '@jbrowse/core/util';
import WiggleBaseRenderer from '../WiggleBaseRenderer';
import { YSCALEBAR_LABEL_OFFSET } from '../util';
export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
async draw(ctx, props) {
const { stopToken, sources, features } = props;
const groups = groupBy(features.values(), f => f.get('source'));
const { drawXY } = await import('../drawXY');
let feats = [];
forEachWithStopTokenCheck(sources, stopToken, source => {
const features = groups[source.name] || [];
const { reducedFeatures } = drawXY(ctx, {
...props,
features,
offset: YSCALEBAR_LABEL_OFFSET,
colorCallback: () => source.color || 'blue',
});
feats = feats.concat(reducedFeatures);
});
return { reducedFeatures: feats };
}
}