vcf文件处理

需要将每份材料的0/0信息置换成对应的碱基信息T/T

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  ZY6     ZY13    ZY21    ZY30
5       30000172        rs318055        T       A       .       PASS    .       GT      0/0     0/0

有可能的材料可能会有3/3的情况,对应的碱基应该是NA/NA只需要给Total[3]=NA就行

还有就是开始置换的材料的列序号不是固定的,根据数据而定,使用BeginColum定义

### BeginColumn定义开始转化的列
### 使用方法 awk -f 当前脚本文件 要转换的vcf文件 输出文件

-F "\t"  {
BeginColumn=10;
if(NR==1){
  print $0;
}
if(NR>1){
  Total[0]=$4;
  ALTlen=split($5,ALT,",");
  for(i=1;i<=ALTlen;i++){
    Total[i]=ALT[i];
  }
  for(i=1;i<BeginColumn;i++){
    printf $i"\t";
  }
  for(i=BeginColumn;i<=NF;i++){
    indexLen=split($i,index1,"/");
    printf Total[index1[1]]"/"Total[index1[2]]"\t"
  }
  print "\n";
}
}

Last updated