@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
30 lines (29 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchSequence = fetchSequence;
const configuration_1 = require("@jbrowse/core/configuration");
const util_1 = require("@jbrowse/core/util");
async function fetchSequence(model, regions) {
const session = (0, util_1.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 = (0, configuration_1.getConf)(assembly, ['sequence', 'adapter']);
const sessionId = 'getSequence';
return rpcManager.call(sessionId, 'CoreGetFeatures', {
adapterConfig,
regions,
sessionId,
});
}