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