@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
37 lines (36 loc) • 1.68 kB
JavaScript
import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache';
import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
import { renameRegionsIfNeeded } from '@jbrowse/core/util';
export class WiggleGetMultiRegionQuantitativeStats extends RpcMethodTypeWithFiltersAndRenameRegions {
name = 'WiggleGetMultiRegionQuantitativeStats';
async serializeArguments(args, rpcDriverClassName) {
const pm = this.pluginManager;
const assemblyManager = pm.rootModel?.session?.assemblyManager;
if (!assemblyManager) {
throw new Error('no assembly manager');
}
let renamedStaticBlocks = args.staticBlocks;
if (args.staticBlocks?.length) {
const renamed = await renameRegionsIfNeeded(assemblyManager, {
...args,
regions: args.staticBlocks,
});
renamedStaticBlocks = renamed.regions;
}
const baseResult = await super.serializeArguments(args, rpcDriverClassName);
return {
...baseResult,
staticBlocks: renamedStaticBlocks,
};
}
async execute(args, rpcDriverClassName) {
const pm = this.pluginManager;
const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
const { regions, staticBlocks, adapterConfig, sessionId } = deserializedArgs;
const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig);
return dataAdapter.getMultiRegionQuantitativeStats(regions, {
...deserializedArgs,
staticBlocks,
});
}
}