@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
33 lines (32 loc) • 1.28 kB
JavaScript
import { getContainingView, isAbortException } from '@jbrowse/core/util';
import { createStopToken } from '@jbrowse/core/util/stopToken';
import { autorun } from 'mobx';
import { addDisposer, isAlive } from 'mobx-state-tree';
import { getQuantitativeStats } from './getQuantitativeStats';
export function getQuantitativeStatsAutorun(self) {
addDisposer(self, autorun(async () => {
try {
if (self.quantitativeStatsReady) {
const view = getContainingView(self);
const stopToken = createStopToken();
self.setStatsLoading(stopToken);
const statsRegion = JSON.stringify(view.dynamicBlocks);
const wiggleStats = await getQuantitativeStats(self, {
stopToken,
filters: [],
currStatsBpPerPx: view.bpPerPx,
...self.adapterProps(),
});
if (isAlive(self)) {
self.updateQuantitativeStats(wiggleStats, statsRegion);
}
}
}
catch (e) {
if (isAlive(self) && !isAbortException(e)) {
console.error(e);
self.setError(e);
}
}
}, { delay: 1000 }));
}