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