[英]Vcf to Bayescan format - perl script not recognising populations
我正在嘗試將.vcf
文件轉換為BayeScan
的正確格式。 我已嘗試按照建議使用PGDSpider
,但我的.vcf
文件太大,因此出現 memory 問題。
然后我在Github
上找到了一個perl
腳本,即使它真的很大,它也可以轉換我的文件。 可以在此處找到該腳本。 但是,它不能正確識別我擁有的人口數量。 它只找到 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,因為我不確定如何使它成為一個可重復的示例,但我希望有人至少可以幫助我理解這部分代碼在做什么,以及是否有辦法調整它? 我的個人姓名包含_
和-
的問題嗎?
非常感謝您提前提供的建議和幫助:)
首先感謝@toolic 的幫助和指導:)在嘗試創建一個可重現的示例時,它開始起作用,我認為問題在於我如何制作人口文件。
以前我用過: paste sample_names pops | column -s $'\t' -t > pop_file.txt
paste sample_names pops | column -s $'\t' -t > pop_file.txt
到 output 問題中打印的文件。 但是,如果我簡單地使用它就可以了: paste sample_names pops > pop_file.txt
我還放置了.vcf
文件的完整路徑,而不是當前目錄的路徑。
我希望這對將來遇到此問題的任何人有所幫助:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.