我正在尝试将.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,因为我不确定如何使它成为一个可重复的示例,但我希望有人至少可以帮助我理解这部分代码在做什么以及是否有办法调整它?我的个人姓名包括_
和的问题是-
什么?
非常感谢您提前提供的建议和帮助:)