@jbrowse/plugin-config
Version:
JBrowse 2 config utilities
40 lines (39 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
const io_1 = require("@jbrowse/core/util/io");
class RefNameAliasAdapter extends BaseAdapter_1.BaseAdapter {
async getRefNameAliases() {
const loc = this.getConf('location');
if (loc.uri === '' || loc.uri === '/path/to/my/aliases.txt') {
return [];
}
const results = await (0, io_1.openLocation)(loc, this.pluginManager).readFile('utf8');
const refColumn = this.getConf('refNameColumn');
const refColumnHeaderName = this.getConf('refNameColumnHeaderName');
const lines = results
.trim()
.split(/\n|\r\n|\r/)
.filter(f => !!f);
const header = lines.filter(f => f.startsWith('#'));
const headerCol = refColumnHeaderName && header.length
? header
.at(-1)
.slice(1)
.split('\t')
.map(t => t.trim())
.indexOf(refColumnHeaderName)
: refColumn;
return lines
.filter(f => !f.startsWith('#'))
.map(row => {
const aliases = row.split('\t');
const refName = aliases[headerCol];
return {
refName: refName,
aliases: aliases.filter(f => !!f.trim()),
};
});
}
}
exports.default = RefNameAliasAdapter;