以下のファイルがあります。
SNP Beta A1 A2 P
rs124 -0.5 T C 0.11
rs534 0.22 A G 0.245
rs199 1.32 G C 0.345
rs947 -0.07 T G 0.00002
rs667 0.37 C T 0.04
....
23640021行があります。分析しましたが、以下のエラーが発生しました。
WARNING: 255837 SNPs had P outside of (0,1]. The P column may mislabeled.
head -10000 file
最初と最後の10000行には0から1以外の数字は含まれません。それでは、P列に他の内容が含まれているかどうかを確認する方法は?
答え1
この awk コマンドは、最後の列の値が 1 より大きいか、他の文字 (数値と点を除く) が含まれているかどうかを確認します。
$ awk 'NR>1 && ($NF>1 || $NF~/[^0-9.]/)' test.txt
rs534 0.22 A G 0.245B
rs947 -0.07 T G 1.00002
rs667 0.37 C T 0.0A4
$ cat test.txt
SNP Beta A1 A2 P
rs124 -0.5 T C 0.11
rs534 0.22 A G 0.245B
rs199 1.32 G C 0.345
rs947 -0.07 T G 1.00002
rs667 0.37 C T 0.0A4
rs667 0.37 C T 0.04
答え2
警告メッセージは、「閉じるセット」(「左」で開き、「右」で閉じる)にゼロが含まれていないことを示すようです。 Kamarajのエレガントな提案を次のように修正してください。
awk 'NR>1 && ($NF>1 || $NF~/[^0-9.]/ || $NF == 0)' file