VCF文件修改染色体格式
前言:在VCF文件中第一列是CHROME染色体信息,许多软件对染色体信息列具有比较特殊的格式要求,最近遇到一个问题,VCF文件中染色体格式是“chr1A”,而参考基因组的染色体格式是“Chr1A”,两者首字母大小写不一样,导致识别时出错。
今天分享一个shell脚本,快速将VCF文件中染色体信息列格式进行替换,当然其他信息也是同理,都可以修改。
检查命令行参数
#!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 input_file.vcf.gz" exit 1 fi input_file="$1"
提取文件名和扩展名
filename=$(basename -- "$input_file") extension="${filename##*.}" filename="${filename%.*}"
解压缩vcf文件
gunzip "$input_file"
替换文件中的"chr"为"Chr"
sed -i 's/chr/Chr/g' "${filename}"
重新压缩文件
gzip "${filename}" echo "Finished! Replaced 'chr' with 'Chr' in $input_file"
bcftools方法
另外用bcftools也能进行这项工作,首先用一个txt文档存储染色体对应信息,第一列是旧的格式,第二列是新的格式。步骤如下:
- bcftools annotate
- annotate rename-chrs
- bgzip
bcftools annotate \ --rename-chrs chr_name.txt \ old.vcf.gz | \ bgzip -c > \ new.vcf.gz
今天的分享到这里结束,如果感觉有用欢迎转发分享哈~
END
© 素材来源于网络,侵权请联系后台删除
往期推荐: