作为 De Novo 鱼类基因组的注释管道的一部分,我需要比较BLAST的e值,看它们是否低于某个阈值。
为了获得正确的语义,我首先评估了blast-output中的一个其他列,它的工作原理如下:
for f in FOLDER/*; do
myVar=$(head -1 $f | awk '{print $4}') ;
if [[ $myVar -gt 50 ]]; then echo ..... ;done
然后$ 4是BLAST输出中的一列,包含整数值(命中长度或其他)
但是,当我尝试将脚本更改为使用e值时,解释科学记数法等存在一些问题......
我想要的是:
for f in FOLDER/*; do
myVar=$(head -1 $f | awk '{print $11}') ;
if [[ $myVar -gt 1.0e-10 ]]; then echo ..... ;done
其中$ 11指向每次点击的电子价值。
这可以在bash中以不繁琐的方式完成吗?
答案 0 :(得分:2)
使用awk
,有可能:
for f in FOLDER/*; do awk '$11 < 1e-10 {print $11}' "$f"; done
这不需要首先定义变量。