INNER CODE UNIT · JavaScript
ov
lh3/pangene · pangene.js:155
let m, ov = 0, ow = 0, rank = -1;
if (t.length >= 6) {
const re_cigar = /(\d+)([MIDSN])/g;
while ((m = re_cigar.exec(t[5])) != null) {
if (m[2] == 'M' || m[2] == 'D' || m[2] == 'N') ov += parseInt(m[1]);
if (m[2] == 'M' || m[2] == 'I' || m[2] == 'S') ow += parseInt(m[1]);
}
for (let j = 6; j < t.length; ++j)
if ((m = /^(SR:i):(\S+)/.exec(t[j])) != null) // TODO: parse other tags
rank = parseInt(m[2]);
}
this.arc.push({ v:v, w:w, ov:ov, ow:ow, rank:rank, ori:true });
//this.arc.push({ v:w^1, w:v^1, ov:ow, ow:ov, rank:rank, ori:false }); // TODO: add and dedup dual links
}
#parse_W(line) {
const t = line.split("\t");
if (t.length < 7) return;
const re_walk = /([><])([^\s><]+)/g;