Skip to content

Commit

Permalink
more condition on length differences
Browse files Browse the repository at this point in the history
  • Loading branch information
lh3 committed Nov 18, 2024
1 parent a10d4f4 commit 618d335
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions misc/pafcluster.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ function* k8_readline(fn) {

function merge_hits(b) {
if (b.length == 1)
return { name1:b[0].name1, name2:b[0].name2, len1:b[0].len1, len2:b[0].len2, min_cov:b[0].min_cov, max_cov:b[0].max_cov, s1:b[0].s1, dv:b[0].dv };
return { name1:b[0].name1, name2:b[0].name2, len1:b[0].len1, len2:b[0].len2, min_cov:b[0].min_cov, max_cov:b[0].max_cov, cov1:b[0].cov1, cov2:b[0].cov2, s1:b[0].s1, dv:b[0].dv };
b.sort(function(x, y) { return x.st1 - y.st1 });
let f = [], bt = [];
for (let i = 0; i < b.length; ++i)
Expand Down Expand Up @@ -133,20 +133,22 @@ function merge_hits(b) {
const min_cov = cov1 < cov2? cov1 : cov2;
const max_cov = cov1 > cov2? cov1 : cov2;
//warn(d.length, b[0].name1, b[0].name2, min_cov, max_cov);
return { name1:b[0].name1, name2:b[0].name2, len1:b[0].len1, len2:b[0].len2, min_cov:min_cov, max_cov:max_cov, s1:max_f, dv:dv };
return { name1:b[0].name1, name2:b[0].name2, len1:b[0].len1, len2:b[0].len2, min_cov:min_cov, max_cov:max_cov, cov1:cov1, cov2:cov2, s1:max_f, dv:dv };
}

function main(args) {
let opt = { min_cov:.8, max_dv:.015 };
for (const o of getopt(args, "c:d:", [])) {
let opt = { min_cov:.9, max_dv:.015, max_diff:20000 };
for (const o of getopt(args, "c:d:e:", [])) {
if (o.opt == '-c') opt.min_cov = parseFloat(o.arg);
else if (o.opt == '-d') opt.max_dv = parseFloat(o.arg);
else if (o.opt == '-e') opt.max_diff = parseFloat(o.arg);
}
if (args.length == 0) {
print("Usage: pafcluster.js [options] <ava.paf>");
print("Options:");
print(` -c FLOAT min coverage [${opt.min_cov}]`);
print(` -d FLOAT max divergence [${opt.max_dv}]`);
print(` -e FLOAT max difference [${opt.max_diff}]`);
return;
}

Expand All @@ -172,7 +174,7 @@ function main(args) {
const max_cov = cov1 > cov2? cov1 : cov2;
name2len[t[0]] = len1;
name2len[t[5]] = len2;
a.push({ name1:t[0], name2:t[5], len1:len1, len2:len2, min_cov:min_cov, max_cov:max_cov, s1:s1, dv:dv, st1:t[2], en1:t[3], st2:t[7], en2:t[8], blen:t[10] });
a.push({ name1:t[0], name2:t[5], len1:len1, len2:len2, min_cov:min_cov, max_cov:max_cov, s1:s1, dv:dv, cov1:cov1, cov2:cov2, st1:t[2], en1:t[3], st2:t[7], en2:t[8], blen:t[10] });
len[t[0]] = len1, len[t[5]] = len2;
}
warn(`Read ${a.length} hits`);
Expand Down Expand Up @@ -206,7 +208,9 @@ function main(args) {
for (let i = 0; i < a.length; ++i) {
if (a[i].name1 != max_name && a[i].name2 != max_name)
continue;
if (a[i].min_cov >= opt.min_cov && a[i].dv <= opt.max_dv)
const diff1 = a[i].len1 * (1.0 - a[i].cov1);
const diff2 = a[i].len2 * (1.0 - a[i].cov2);
if (a[i].min_cov >= opt.min_cov && a[i].dv <= opt.max_dv && diff1 <= opt.max_diff && diff2 <= opt.max_diff)
h[a[i].name1] = h[a[i].name2] = 1;
}
let n = 0;
Expand Down

0 comments on commit 618d335

Please sign in to comment.