2017-02-21 37 views
2

Я запускаю скрипт Perl из EMBL (найден здесь https://github.com/EMBL-EBI-GCA/reseqtrack/blob/master/scripts/variation_data/calculate_allele_frq_from_vcf.pl) В Ubuntu 16.10 я установил Vcftools и Tabix, как требуется, и оба были протестированы для работы соответственно. Я запустить сценарий с помощью следующей команды:Perl-скрипт не может получить доступ к папке 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 по какой-то причине. Я дал папке полное право на чтение/запись для пользователя, выполняющего скрипт (я). Есть идеи?

+2

Не связанный с реальной проблемой, но вы, вероятно, должны позволить автору сценария узнать о том, что «Smartmatch является экспериментальным при ...» предупреждениях. Если сценарий все еще поддерживается, автор, вероятно, захочет узнать, что было бы разумно устранить это предупреждение, найдя альтернативную конструкцию, которая избегает '~~'. – DavidO

+2

Crossposted to [PerlMonks] (http://www.perlmonks.org/?node_id=1182443). – choroba

ответ

4

Вы установили -tabix в /home/[user]/tabix-0.2.6, но для кода, похоже, нужен путь к исполняемому файлу, а не к верхней директории. Добавление /bin/tabix к пути должно, вероятно, устранить проблему.

+0

Хороший звонок. Я думаю, вы должны опубликовать это и в PM. Я никогда не думал об этом. – stevieb

+0

Спасибо choroba, ваш ответ правильный, за исключением/bin/part, исполняемый файл tabix находится в базовой папке. Следовательно, правильный путь: '/ home/[user] /tabix-0.2.6/tabix)' – Svencken