よくある問題だと思いますが、まだ良い解決策が見つかりません。
以下のように、各行に染色体番号、染色体の開始位置、および関連する値が含まれるファイルがあります。
1 1.07299851019 1 1.07299851019 HQ chrY 2845223 + 0.251366120219 46
1 1.06860686763 1 1.06860686763 HQ chr10 88595309 + 0.256830601093 47
1 1.04688316093 3 3.14064948278 HQ chr6 49126474 + 0.295081967213 54
1 1.1563829915 1 1.1563829915 HQ chrX 16428176 + 0.185792349727 34
染色体 (6 列目) と開始位置 (7 列目) の両方で UNIX ソート コマンドを使用して、このファイルをソートしたいと考えています。周りを検索した後、これを思いついたので、かなり近づきました:
nohup sort -t $'\t' -k 6.4,6.5n -k 7,7n
私が解決できない残りの問題は、番号で番号付けされた染色体は問題なくソートされますが、染色体Xと染色体Yは次のように開始位置で一緒にソートされるということです:
1 0.978579587641 9 8.80721628876 HQ chrX 2861057 - 0.431693989071 79
1 0.979500536702 1 0.979500536702 HQ chrY 2861314 - 0.420765027322 77
1 0.969979601694 9 8.72981641525 HQ chrX 2861649 - 0.469945355191 86
chrX と chrY を数字に置き換えたり、プログラムを書いたりして解決できることはわかっていますが、単純なコマンドを使用できると非常に便利です。これを繰り返します。
また、染色体が 1 番から 22 番、次に X 番、Y 番の順に並んでいるとよいでしょう。私のコマンドでは、X 番染色体と Y 番染色体が最初に来て、次に 1 番染色体から 22 番染色体が続きます。