UNPKG

@jbrowse/plugin-config

Version:

JBrowse 2 config utilities

38 lines (37 loc) 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter"); const io_1 = require("@jbrowse/core/util/io"); class NcbiSequenceReportAliasAdapter extends BaseAdapter_1.BaseAdapter { async getRefNameAliases() { const loc = this.getConf('location'); if (loc.uri === '' || loc.uri === '/path/to/my/sequence_report.tsv') { return []; } const override = this.getConf('useUcscNameOverride'); const results = await (0, io_1.openLocation)(loc, this.pluginManager).readFile('utf8'); const lines = results .split(/\n|\r\n|\r/) .filter(f => !!f.trim()) .map(row => row.split('\t')); const r = lines[0] || []; const idx0 = r.indexOf('GenBank seq accession'); const idx1 = r.indexOf('RefSeq seq accession'); const idx2 = r.indexOf('UCSC style name'); const idx3 = r.indexOf('Sequence name'); if (idx0 === -1 || idx1 === -1 || idx2 === -1) { throw new Error('Header line must include "GenBank seq accession", "RefSeq seq accession", "UCSC style name", and "Sequence name"'); } return lines .slice(1) .filter(cols => !!cols[idx2] || !!cols[idx3]) .map(cols => ({ refName: (cols[idx2] || cols[idx3]), aliases: [cols[idx0], cols[idx1], cols[idx2], cols[idx3]].filter((f) => !!f), override, })) .filter(f => !!f.refName); } async freeResources() { } } exports.default = NcbiSequenceReportAliasAdapter;