ファイル行を染色体で数字で並べ替えますか?

ファイル行を染色体で数字で並べ替えますか?

いくつかの列の遺伝的変異データがありますが、現在私の変異/系統の順序が間違っているため、染色体ごとにソートする必要があります。同様の質問に答えていくつかの方法を試しましたが、何も機能せず、ほとんど空のファイルが提供されています。

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

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順序を確認しても間違っています。これを変更するには、何を試す必要がありますか?

いくつかの行の例は次のとおりです。

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

関連情報