49 lines
761 B
Awk
49 lines
761 B
Awk
![]() |
#
|
||
|
|
||
|
function min(x, y) {
|
||
|
return ((x < y) ? x : y)
|
||
|
}
|
||
|
|
||
|
BEGIN {
|
||
|
if (COVMIN == "") COVMIN = 50
|
||
|
if (PMAX == "") PMAX = 1e-6
|
||
|
if (IDMIN == "") IDMIN = 30
|
||
|
}
|
||
|
|
||
|
/^#/ {
|
||
|
hitnum = 0;
|
||
|
next;
|
||
|
}
|
||
|
|
||
|
{
|
||
|
if ($1 == $2) next
|
||
|
|
||
|
hitnum++;
|
||
|
|
||
|
na = split($1, a, "@");
|
||
|
if (na < 2) {
|
||
|
print "query file not properly formatted" > "/dev/stderr"
|
||
|
exit(1);
|
||
|
}
|
||
|
len1 = a[na];
|
||
|
|
||
|
na = split($2, a, "@");
|
||
|
if (na < 2) {
|
||
|
print "bank file not properly formatted" > "/dev/stderr"
|
||
|
exit(1);
|
||
|
}
|
||
|
len2 = a[na];
|
||
|
|
||
|
id = $3 + 0.0;
|
||
|
ali = $4;
|
||
|
|
||
|
covmin = ali * 100. / min(len1, len2);
|
||
|
|
||
|
proba = $11 + 0.0;
|
||
|
|
||
|
if ((covmin > COVMIN) && ((proba < PMAX) || (proba == 0)) && (id > IDMIN)) {
|
||
|
print $1, $2, hitnum, id, covmin, proba, ali, len1, len2;
|
||
|
}
|
||
|
}
|
||
|
|