我的 Linux 机器上有一个这样的:如下。
AF.Cases AF.Controls
0.0044 0.00159
0.0018 0.00315
0.3920 0.38898
现在我想获得次要等位基因频率(maf)。
因此,如果AF.Cases
大于 0.5,则公式为
1-AF.Cases = MAF
所以,综上所述,公式可以是
MAF = min(AF.Cases 1-AF.Cases)
在Linux中,我无法通过下面的代码从文件中提取maf,因为它说“致命:函数'min'未定义”
awk 'NR>1{print min($1 1-$1)}' file > outfile
谁能教我如何从文件中获取MAF?
答案1
你可能会使用
awk 'NR > 1 { maf = ($1 > 0.5 ? 1 - $1 : $1); print maf }' file
要不就
awk 'NR > 1 { print ($1 > 0.5 ? 1 - $1 : $1) }' file
$1
或者,使用和的最小值的计算1 - $1
( 中没有min()
函数awk
):
awk 'NR > 1 { print ($1 < 1 - $1 ? $1 : 1 - $1) }' file
该表达式($1 > 0.5 ? 1 - $1 : $1)
的结果是1 - $1
if $1 > 0.5
,否则结果是$1
。同样,($1 < 1 - $1 ? $1 : 1 - $1)
将导致$1
if $1 < 1 - $1
is真的,以及1 - $1
其他情况。
对于给定的数据,这将产生
0.0044
0.0018
0.3920