私の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では、「致命的:関数 'min'が定義されていません」とマークされているため、以下のコードを含むファイルからmafを抽出することはできません。
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
この式の結果はif($1 > 0.5 ? 1 - $1 : $1)
で、そうでなければ結果はです。同様に、結果は次のようになります。1 - $1
$1 > 0.5
$1
($1 < 1 - $1 ? $1 : 1 - $1)
$1
$1 < 1 - $1
本物その他の1 - $1
状況。
与えられたデータに対して以下が生成される。
0.0044
0.0018
0.3920