小さな対立遺伝子の頻度を取得するには?

小さな対立遺伝子の頻度を取得するには?

私のLinuxコンピュータには次のものがあります。

AF.Cases AF.Controls
0.0044 0.00159
0.0018 0.00315
0.3920 0.38898

今、マイナー対立遺伝子の頻度(maf)を得たいと思います。

したがって、AF.Cases0.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

おすすめ記事