@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
27 lines (26 loc) • 1.07 kB
JavaScript
import { getConf } from '@jbrowse/core/configuration';
import { getSession } from '@jbrowse/core/util';
export async function fetchSequence(model, regions) {
const session = getSession(model);
const { leftOffset, rightOffset } = model;
if (!leftOffset || !rightOffset) {
throw new Error('no offsets on model to use for range');
}
const assemblyNames = new Set(regions.map(r => r.assemblyName));
if (assemblyNames.size > 1) {
throw new Error('not able to fetch sequences from multiple assemblies currently');
}
const { rpcManager, assemblyManager } = session;
const assemblyName = leftOffset.assemblyName || rightOffset.assemblyName || '';
const assembly = assemblyManager.get(assemblyName);
if (!assembly) {
throw new Error(`assembly ${assemblyName} not found`);
}
const adapterConfig = getConf(assembly, ['sequence', 'adapter']);
const sessionId = 'getSequence';
return rpcManager.call(sessionId, 'CoreGetFeatures', {
adapterConfig,
regions,
sessionId,
});
}