Perl 脚本无法访问 Tabix 文件夹

标签 perl bioinformatics vcf-variant-call-format vcftools

我正在运行来自 EMBL 的 Perl 脚本(在此处 https://github.com/EMBL-EBI-GCA/reseqtrack/blob/master/scripts/variation_data/calculate_allele_frq_from_vcf.pl )在 Ubuntu 16.10 下,我已根据需要安装了 Vcftools 和 Tabix,并且两者都经过测试可以相应工作。我使用以下命令执行脚本:

perl /home/[user]/calculate_allele_frq_from_vcf.pl \
-vcf /home/[user]/share/1000genomesPhase3VCFFiles/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz \
-sample_panel /home/[user]/share/1000genomesPhase3VCFFiles/integrated_call_samples_v3.20130502.ALL.panel \
-out_dir /home/[user]/Desktop/AlleleFrequency \
-tabix  /home/[user]/tabix-0.2.6 \
-vcftools_dir /home/[user]/vcftools_0.1.13 \
-region 1:1-10000 \
-pop CEU,FIN \

这将返回以下错误

Smartmatch is experimental at /home/[user]/calculate_allele_frq_from_vcf.pl line 133.
Smartmatch is experimental at /home/[user]/calculate_allele_frq_from_vcf.pl line 144.
sh: 1: /home/[user]/tabix-0.2.6: Permission denied
Broken VCF header, no column names?
 at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 172.
    Vcf::throw(Vcf4_2=HASH(0x55761601d320), "Broken VCF header, no column names?") called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 866
    VcfReader::_read_column_names(Vcf4_2=HASH(0x55761601d320)) called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 601
    VcfReader::parse_header(Vcf4_2=HASH(0x55761601d320)) called at /home/[user]/vcftools_0.1.13/perl/vcf-subset line 121
    main::vcf_subset(HASH(0x557615b24558)) called at /home/[user]/vcftools_0.1.13/perl/vcf-subset line 12
Broken VCF header, no column names?
 at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 172.
    Vcf::throw(Vcf4_2=HASH(0x55fa53436f60), "Broken VCF header, no column names?") called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 866
    VcfReader::_read_column_names(Vcf4_2=HASH(0x55fa53436f60)) called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 601
    VcfReader::parse_header(Vcf4_2=HASH(0x55fa53436f60)) called at /home/[user]/vcftools_0.1.13/perl/fill-an-ac line 45
    main::fill_an_ac(undef) called at /home/[user]/vcftools_0.1.13/perl/fill-an-ac line 9
sh: 1: /home/[user]/tabix-0.2.6: Permission denied
Broken VCF header, no column names?
 at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 172.
    Vcf::throw(Vcf4_2=HASH(0x5607d059a190), "Broken VCF header, no column names?") called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 866
    VcfReader::_read_column_names(Vcf4_2=HASH(0x5607d059a190)) called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 601
    VcfReader::parse_header(Vcf4_2=HASH(0x5607d059a190)) called at /home/[user]/vcftools_0.1.13/perl/vcf-subset line 121
    main::vcf_subset(HASH(0x5607d00a1558)) called at /home/[user]/vcftools_0.1.13/perl/vcf-subset line 12
Broken VCF header, no column names?
 at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 172.
    Vcf::throw(Vcf4_2=HASH(0x556b8e952110), "Broken VCF header, no column names?") called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 866
    VcfReader::_read_column_names(Vcf4_2=HASH(0x556b8e952110)) called at /home/[user]/vcftools_0.1.13/perl/Vcf.pm line 601
    VcfReader::parse_header(Vcf4_2=HASH(0x556b8e952110)) called at /home/[user]/vcftools_0.1.13/perl/fill-an-ac line 45
    main::fill_an_ac(undef) called at /home/[user]/vcftools_0.1.13/perl/fill-an-ac line 9
/home/[user]/Desktop/AlleleFrequency/calculated_fra.process3085.1.1-10000.CEU_FIN

由于某种原因,该脚本似乎没有访问 Tabix 的权限。我已为执行脚本的用户(我)授予该文件夹完全读/写权限。有什么想法吗?

最佳答案

您将-tabix设置为/home/[user]/tabix-0.2.6,但代码似乎需要可执行文件的路径,而不是顶部目录。将 /bin/tabix 添加到路径应该可以解决问题。

关于Perl 脚本无法访问 Tabix 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42372570/

相关文章:

perl - SPLIT 1000 文件限制的解决方法?

Python:如何根据位置输出FASTA头或染色体索引图?

r - 如何找到密码子的特定频率?

Python 函数不能在循环内工作

python - 如何在另一个更大的数组(6 亿个元素)中查找一个大数组(100 万个元素)的元素

r - 如何在R中读取vcf文件

perl - curl :尝试安装 perlbrew 时传输关闭

perl - 如何使用 Perl 的 Net::Cassandra::Easy 检索所有匹配行的所有列?

linux - 线程.h :10:24: fatal error installation error

java - perl 到 java 程序的持续响应