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
本文由 mdnice 多平台发布