美文网首页
修改 VCF 文件中错误编码的基因型

修改 VCF 文件中错误编码的基因型

作者: 风知秋 | 来源:发表于2024-01-30 17:13 被阅读0次

# 在计算的时候发现,VCF 文件中有些个体的基因型文件为  '.'  而不是  './.'   这会导致某些计算中报错,比如说:

Caused by: java.lang.IllegalArgumentException: ERROR: inconsistent number of alleles for sample NEP0204 at marker [chr01 79336 . T  A]

不清楚什么软件可以直接处理,就写了个脚本对此进行修改;

#!/usr/bin/perl

use strict;

use warnings;

open(my $fh, '<', 'chr01.recode.vcf') or die "无法打开文件: $!";

open(my $output_fh, '>', 'output.vcf') or die "无法创建输出文件: $!";

while (my $line = <$fh>) {

    chomp $line;

    if ($line =~ /^#/ || $line =~ /^\s*$/) {

        print $output_fh "$line\n";

        next;

    }

    my @fields = split(/\t/, $line);

    my $format = $fields[8];

    my @format_fields = split(':', $format);

    my $gt_index = 0;

    for (my $i = 0; $i < scalar(@format_fields); $i++) {

        if ($format_fields[$i] eq 'GT') {

            $gt_index = $i;

            last;

        }

    }

    for (my $i = 9; $i < scalar(@fields); $i++) {

        my $gt = $fields[$i];

my @gt_fields = split(':', $gt);

if ($gt_fields[$gt_index] eq '.'){

$gt_fields[$gt_index] = './.';

}

my $new_gt = join(':', @gt_fields);

$fields[$i] = $new_gt;

    }

    my $new_line = join("\t", @fields);

    print $output_fh "$new_line\n";

}

close($fh);

close($output_fh);

相关文章

  • GWAS分析

    首先准备输入文件(vcf文件和表型文件) 基因型推断 格式转换 会生成 tfam、tped、map文件根据tfam...

  • 11.2 GWAS流程学习

    主要使用plink和structure: 1、在snp-calling后得到vcf文件 2、基因型填充: http...

  • 使用 PLINK 把 vcf 的0/0,0/1,1/1转为字母格

    file.vcf文件如下所示,包含两个样本、四个变异位点: 现在我想把数字基因型变成字母基因型,比如对于rs1 ,...

  • Eclispe(STS)设置UTF-8编码

    1.修改workspace编码 preference--> 2.修改文件编码格式 3.特定文件编码

  • MySQL中文乱码

    查看编码 修改编码 这种方式修改重启之后就会复原,不推荐 修改配置文件的编码 修改/etc/my.cnf配置文件,...

  • Tassel 命令行版本使用笔记

    1. 常见的基因型数据格式 1.1 Hapmap 数据格式 1.2 VCF数据格式 VCF 包含9列,从第10列开...

  • VCF文件添加ID

    问题: 修改VCF文件中ID列以“.”标识为“染色体号-SNP的位置” 1.0 python 脚本 运行 2.0 ...

  • python批量查看修改文件编码

    使用python批量查看文件编码,或者批量修改文件编码 代码 结果 查看文件编码 执行编码转换 再次查看转换后的编码

  • 修改vcf文件中的样本名称

    很多时候,call完变异后,需要对vcf文件中的样本名进行修改,小编这里分享一个修改ID的python脚本(若vc...

  • MySQL do_abi_check不匹配的问题

    MySQL编码时,如果修改了一些接口文件(具体哪些文件,下文会说到),编译时会产生ABI检测失败的错误,比如: 顾...

网友评论

      本文标题:修改 VCF 文件中错误编码的基因型

      本文链接:https://www.haomeiwen.com/subject/hqfoodtx.html