0

嗨,我正在尝试使用 linkdatagen,这是一个基于 perl 的工具。它需要一个 vcf 文件(使用 SAMtools 的 mpileup)和一个 hapmap 注释文件(已提供)。我已按照说明进行操作,但在使用提供的 perl 脚本时,出现此错误。我使用的代码是:

samtools mpileup -d10000 -q13 -Q13 -gf hg19.fa -l annotHapMap2U.txt samplex.bam | bcftools view -cg -t0.5 - > samplex.HM.vcf

Perl vcf2linkdatagen.pl -variantCaller mpileup -annotfile annotHapMap2U.txt -pop CEU -mindepth 10 -missingness 0 samplex.HM.vcf > samplex.brlmm

Use of uninitiated value $chr in concatenation (.) or string at vcf2linkdatagentest.pl line 487, <IN> line 1....它一直在继续.. 我已经给作者发了邮件,还没有收到他们的消息。有人可以帮我吗?我究竟做错了什么?

perl 脚本是: http ://bioinf.wehi.edu.au/software/linkdatagen/vcf2linkdatagen.pl

HapMap 文件可以从下面提到的网站下载。
http://bioinf.wehi.edu.au/software/linkdatagen/

非常感谢

4

2 回答 2

0

忽略以 , 开头的行#vcf2linkdatagen.pl预计 VCF 第一行的第一个字段包含“chr something ”形式的内容,并且您的文件不符合该期望。代码中注释的示例:

chr1    888659  .   T   C   226 .   DP=26;AF1=1;CI95=1,1;DP4=0,0,9,17;MQ=49;FQ=-81  GT:PL:GQ    1/1:234,78,0:99
chr1    990380  .   C   .   44.4    .   DP=13;AF1=7.924e-09;CI95=1.5,0;DP4=3,10,0,0;MQ=49;FQ=-42    PL  0
于 2016-03-14T12:47:02.977 回答
0

警告意味着字符串中使用的变量未初始化(未定义)。这表明可能有问题。有问题的行可以追溯到这个语句

my $chr = $1 if ($tmp[0] =~ /chr([\S]+)/);

在语句上使用后缀 if 语句是不好的做法my

正如 ikegami 指出的那样,解决方法可能是

my ($chr) = $tmp[0] =~ /chr([\S])/;

但是由于匹配失败,它可能会返回相同的错误。解决的唯一方法是更多地了解这个变量的用途,如果错误应该是致命的。笔者未办理此案,故不得而知。

如果您想了解有关该问题的更多信息,可以添加如下调试行:

warn "'chr' value not found in the string '$tmp[0]'" unless defined $chr;

通常,当有人向作者未预料到的程序提供输入时,就会发生这样的错误。因此,如果您看到哪些行给出了此警告,您可能会发现如何处理它。

于 2016-03-14T12:48:54.687 回答