Perl-скрипт не может получить доступ к папке Tabix
Я запускаю 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 /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. Я дал папке полное разрешение на чтение / запись для пользователя, выполняющего скрипт (меня). Есть идеи?
1 ответ
Решение
Ты устанавливаешь -tabix
в /home/[user]/tabix-0.2.6
, но коду, похоже, нужен путь к исполняемому файлу, а не к верхнему каталогу. Добавление /bin/tabix
к пути, вероятно, должен решить проблему.