我有一个大的基因组数据文件(.txt),格式如下。我想分裂它的基础上,染色体列,chr1, chr2..chrX,chrY
等,保持标题行在所有分裂的文件。如何使用unix/linux命令来做到这一点?
基因组数据
variantId chromosome begin end
1 1 33223 34343
2 2 44543 46444
3 2 55566 59999
4 3 33445 55666
结果
file.chr1.txt
variantId chromosome begin end
1 1 33223 34343
file.chr2.txt
variantId chromosome begin end
2 2 44543 46444
3 2 55566 59999
file.chr3.txt
variantId chromosome begin end
4 3 33445 55666
发布于 2015-12-20 18:43:04
这是人类基因组(通常是46条染色体)的数据吗?如果是这样,这是怎么回事?
for chr in $(seq 1 46)
do
head -n1 data.txt >chr$chr.txt
done
awk 'NR != 1 { print $0 >>("chr"$2".txt") }' data.txt
(这是基于@Sasha上述评论的第二次编辑。)
请注意,("chr"$2".txt")
周围的父母显然不需要GNU,但他们在我的OS版本的awk上。
https://stackoverflow.com/questions/34388173
复制