按染色体对文件行进行数字排序?

按染色体对文件行进行数字排序?

我有几列的遗传变异数据,目前我的变异/系的顺序错误,需要按染色体排序。我已经尝试了几种方法来使用类似问题的答案来做到这一点,但没有任何效果,主要是给我空文件。

目前我的染色体顺序是:

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

相关内容