UNPKG

@jbrowse/plugin-wiggle

Version:

JBrowse 2 wiggle adapters, tracks, etc.

37 lines (36 loc) 1.68 kB
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, }); } }