1

我正在尝试将.vcf文件转换为BayeScan. 我已尝试PGDSpider按照建议使用,但我的.vcf文件太大,所以我遇到了内存问题。

然后我发现了一个perl脚本Github,即使它真的很大,它也可以转换我的文件。可以在此处找到该脚本。但是,它不能正确识别我拥有的人口数量。它只找到 1 个人口,而我有 30 个。

我的人口文件的顶部看起来像这样,遵循 perl 脚本中的示例格式。

index01_barcode_10_PA-1-WW-10     pop1 
index02_barcode_29_PA-5-Ferm-19   pop2
index01_barcode_17_PA-1-WW-17     pop1
index02_barcode_20_PA-5-Ferm-10   pop2
index03_barcode_16_PA-7-CA-14     pop3

我也尝试过使用排序后的人口文件的脚本。我没有使用 perl 语言的经验,所以我正在努力找出脚本不起作用的原因。

我认为这与脚本的这一部分有关,但不能确定:

# read and process pop file

while (<POP>){
        chomp $_;
        @line = split /\t/, $_;
        $pops{$line[0]} = $line[1];
}
close POP;

# Get populations and sort them

my @upops = sort { $a cmp $b } uniq ( values %pops );
print "found ", scalar @upops, " populations\n";

Appolgies,因为我不确定如何使它成为一个可重复的示例,但我希望有人至少可以帮助我理解这部分代码在做什么以及是否有办法调整它?我的个人姓名包括_和的问题是-什么?

非常感谢您提前提供的建议和帮助:)

4

1 回答 1

1

首先感谢@toolic 的帮助和指导 :) 在尝试创建可重现的示例时,它开始工作,我认为问题在于我如何制作人口文件。

以前我使用: paste sample_names pops | column -s $'\t' -t > pop_file.txt 输出问题中打印的文件。但是,如果我简单地使用它就可以了:paste sample_names pops > pop_file.txt

此外,我已经放置了.vcf文件的完整路径,而不是当前目录的路径。

我希望这对将来遇到此问题的任何人有所帮助:)

于 2020-06-03T14:01:56.833 回答