我有一个大的vcf.gz文件(40 be ),为了能够加载到R中并在每个子集上运行一个脚本,我必须拆分它。我想把它分成第一列
zcat large_data.vcf.gz | cut -f1,2-5,8- | awk '{ print | ("gzip -c > " $1".vcf.gz") }'但是我希望将头保存在每个子集中。标题不会保存到分裂的数据中(我认为它会这样做)。这可能是因为标题以#开头。
#col1 col2 col3 col4 col5 col6 col7 col8我试过了
zcat large_data1.vcf.gz | cut -f1,2-5,8- |
awk 'NR == 1{header = $0; next}
!($1 in filename){ print header | (“gzip -c > “ $1 ".vcf.gz") }
NR > 1 { print $0 | (“gzip -c > “ $1 ".vcf.gz"); filename[$1] }' file但有些地方出了问题..。
有什么想法吗?
PS:--过滤器不是公认的选项。
编辑:数据的一个示例
#col1 col2 col3 col4 col5 col6 col7 col8
1 100 100 100 1000 110 100 110
1 110 100 110 500 200 150 160
2 140 120 100 1000 110 160 210
2 110 180 170 700 220 150 120所需数据1-
#col1 col2 col3 col4 col5 col6 col7 col8
1 100 100 100 1000 110 100 110
1 110 100 110 500 200 150 160和2-
#col1 col2 col3 col4 col5 col6 col7 col8
2 140 120 100 1000 110 160 210
2 110 180 170 700 220 150 120发布于 2022-05-10 18:43:25
我刚刚使它与这段代码一起工作,但是它在每一行的顶部添加了标题。
zcat large_data.vcf.gz |
cut -f1,2-5,8- |
awk 'NR == 1{header = $0; next}
!($1 in filename){ print header | "gzip > " $1 ".vcf.gz" }
NR > 1 { print $0 | "gzip > " $1 ".vcf.gz" }'https://stackoverflow.com/questions/72190627
复制相似问题