ファイル行を染色体ごとに数値でソートしますか?

ファイル行を染色体ごとに数値でソートしますか?

複数の列を持つ遺伝子変異データがありますが、現在、変異体/系統の順序が間違っているため、染色体ごとに並べ替える必要があります。同様の質問の回答を使用して、これを実行するためのいくつかの方法を試しましたが、どれも機能せず、ほとんどの場合、空のファイルが生成されます。

現在私の染色体の順序は次のとおりです:

1
10
11
12
13
14
15
16
17
18
19
2
20
21
22
3
4
5
6
7
8
9

これらの行は 1 から 22 まで昇順に並べ替える必要があります。

私はもう試した:

sort -k 1,1 -k2,2n file.avinput > test.avinput

sortBed -i file.avinput >  test.avinput 

sort -k1,1V -k2,2g file.avinput > test.avinput

bedtools sort -g file.bed> test.avinput #gives *ERROR: Need -i BED file.

これらは実行されますが、試してみると何も返されません。または、順序head test.avinputを確認してもまだ間違っています。これを変更するために他に何を試みることができますか?awk '{print $1}' test.avinput | sort -u

2 行の例は次のようになります。

File.avinput: #3 列は染色体、開始、終了です - ヘッダーはありません

1    10  11
10   200 201
2    20   21
22   2000 2001

予想される順序付き出力

1    10  11
2    20   21
10   200 201
22   2000 2001

現在、どのような形式を使用してもsort -n空のファイルが生成されます。

答え1

変更されたタスクに応じて更新されました。

file1作成されたデータを含むファイル:

$ cat file1
1    10  11
10   200 201
2    20   21
22   2000 2001

ここで、ファイル行をソートし、結果を次の場所に書き込みますfile2

$ cat file1|sort -n > file2

あるいは、さらに簡略化することもできます。

$ sort -n file1 > file2

結果を確認していますfile2:

$ cat file2
1    10  11
2    20   21
10   200 201
22   2000 2001

関連情報