簡體   English   中英

Vcf 到 Bayescan 格式 - perl 腳本無法識別種群

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM