cancerit / cgpPindel

Cancer Genome Project Insertion/Deletion detection pipeline based around Pindel
http://cancerit.github.io/cgpPindel/
GNU Affero General Public License v3.0
28 stars 5 forks source link

Problem in compiling cgpPindel #46

Closed GKerdivel closed 8 years ago

GKerdivel commented 8 years ago

I am trying to install cgpPindel but it fails during installation

Here is my error log:

...
<== Installed dependencies for .. Finishing.
 done.
Installing cgpPindel ...Generating a Unix-style Makefile
Writing Makefile for cgpPindel
Writing MYMETA.yml and MYMETA.json
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/VcfConverter.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen.pm (unchanged)
Skip blib/lib/Sanger/CGP/PindelPostProcessing/FilterRules.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/Pair.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/Read.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/Implement.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/PairToPindel.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/PindelRecordParser.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/BamUtil.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/SamHeader.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/PindelRecord.pm (unchanged)
Skip blib/lib/Sanger/CGP/PindelPostProcessing/AbstractExe.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel.pm (unchanged)
Skip blib/lib/Sanger/CGP/PindelPostProcessing/VcfSoftFlagger.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecord.pm (unchanged)
cp bin/pindel_merge_vcf_bam.pl blib/script/pindel_merge_vcf_bam.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_merge_vcf_bam.pl
cp bin/pindel_np_from_vcf.pl blib/script/pindel_np_from_vcf.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_np_from_vcf.pl
cp bin/pindel.pl blib/script/pindel.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel.pl
cp bin/pindel_2_combined_vcf.pl blib/script/pindel_2_combined_vcf.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_2_combined_vcf.pl
cp bin/pindel_germ_bed.pl blib/script/pindel_germ_bed.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_germ_bed.pl
cp bin/FlagVcf.pl blib/script/FlagVcf.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/FlagVcf.pl
cp bin/pindel_input_gen.pl blib/script/pindel_input_gen.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_input_gen.pl
Manifying blib/man1/FlagVcf.pl.1p
Manifying blib/man1/pindel.pl.1p
Manifying blib/man1/pindel_2_combined_vcf.pl.1p
Manifying blib/man1/pindel_germ_bed.pl.1p
Manifying blib/man1/pindel_input_gen.pl.1p
Manifying blib/man1/pindel_merge_vcf_bam.pl.1p
Manifying blib/man1/pindel_np_from_vcf.pl.1p
Manifying blib/man3/Sanger::CGP::Pindel::Implement.3pm
Manifying blib/man3/Sanger::CGP::Pindel::InputGen.3pm
Manifying blib/man3/Sanger::CGP::Pindel::InputGen::Pair.3pm
Manifying blib/man3/Sanger::CGP::Pindel::InputGen::SamHeader.3pm
Manifying blib/man3/Sanger::CGP::Pindel::OutputGen::CombinedRecordGenerator.3pm
Manifying blib/man3/Sanger::CGP::Pindel::OutputGen::PindelRecordParser.3pm
Manifying blib/man3/Sanger::CGP::PindelPostProcessing::VcfSoftFlagger.3pm
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_pm_compile.t ...................... 1/? values on reference is experimental at /home/gwenneg/bin/cgpPindel-2.0.6/perl/blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm line 384.
values on reference is experimental at /home/gwenneg/bin/cgpPindel-2.0.6/perl/blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm line 385.
t/1_pm_compile.t ...................... ok    
t/2_pl_compile.t ...................... 4/? 
#   Failed test 'Compilation check: /home/gwenneg/bin/cgpPindel-2.0.6/perl/t/../bin/pindel_germ_bed.pl'
#   at t/2_pl_compile.t line 61.
# Looks like you failed 1 test of 8.
t/2_pl_compile.t ...................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/8 subtests 
t/inputGenRead.t ...................... ok   
t/outputGenCombinedRecordGenerator.t .. 1/? values on reference is experimental at /home/gwenneg/bin/cgpPindel-2.0.6/perl/blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm line 384.
values on reference is experimental at /home/gwenneg/bin/cgpPindel-2.0.6/perl/blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm line 385.
t/outputGenCombinedRecordGenerator.t .. ok   
t/outputGenPindelRecordParser.t ....... ok   
t/outputGenVcfConverter.t ............. ok   
t/vcfPindelFlagger.t .................. ok    

Test Summary Report
-------------------
t/2_pl_compile.t                    (Wstat: 256 Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 1
Files=7, Tests=83,  2 wallclock secs ( 0.04 usr  0.01 sys +  1.19 cusr  0.06 csys =  1.30 CPU)
Result: FAIL
Failed 1/7 test programs. 1/83 subtests failed.
Makefile:966: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
 failed.  See setup.log file for error messages. cgpPindel install failed.
    Please check INSTALL file for items that should be installed by a package manager

Thanks for helping,

Regards

Gwenneg Kerdivel

keiranmraine commented 8 years ago

Hi,

Can you tell me what you command line was? Using the current releases install to a clean area with PCAP-core and cgpVcf works.

Regards

keiranmraine commented 8 years ago

Also which perl version?

perl -v

GKerdivel commented 8 years ago

Thanks for your quick reply. My perl version is the 5.20.2, cgpPindel 2.0.6, cgpVCF 2.02, PCAP-core 2.4.1. There was no problems in installing cgpVCF and PCAP-core so they should work.

The command I used was : ./setup.sh ../cgp/

keiranmraine commented 8 years ago

Please reinstall these using a full path rather than '../cgp'.

This should also work:

./setup.sh `pwd`/../cgp
GKerdivel commented 8 years ago

Ok I will try that

GKerdivel commented 8 years ago

I still get the same error...

keiranmraine commented 8 years ago

I'm running a little blind, I'm assuming the problem is Vcf.pm.

Lets check what the issue is with the following (substitute $HOME with where ../ should have been pointing):

perl -I $HOME/cgp/lib/perl5 -e 'use autodie qw(:all);'
perl -I $HOME/cgp/lib/perl5 -e 'use File::Path qw(remove_tree make_path);'
perl -I $HOME/cgp/lib/perl5 -e 'use Getopt::Long;'
perl -I $HOME/cgp/lib/perl5 -e 'use Pod::Usage qw(pod2usage);'
perl -I $HOME/cgp/lib/perl5 -e 'use Const::Fast qw(const);'
perl -I $HOME/cgp/lib/perl5 -e 'use IO::Zlib;'
perl -I $HOME/cgp/lib/perl5 -e 'use PCAP::Cli;'
perl -I $HOME/cgp/lib/perl5 -e 'use Vcf;'

Do any of the above fail?

GKerdivel commented 8 years ago

None of them failed

keiranmraine commented 8 years ago

Hi,

Could you try making the following modification before running setup.sh please?

It's just removal of some erroneous {} which seem to be causing the warnings you have in the tests:

index 058dc52..eba5cf5 100644
--- a/perl/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm
+++ b/perl/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm
@@ -381,8 +381,8 @@ sub _count_sam_event_reads{
        my %pos_reads = %{$ins_reads[1]};
        my %neg_reads = %{$ins_reads[0]};

-       @pos_reads{keys %{$del_reads[1]}} = values{%{$del_reads[1]}};
-       @neg_reads{keys %{$del_reads[0]}} = values{%{$del_reads[0]}};
+       @pos_reads{keys %{$del_reads[1]}} = values %{$del_reads[1]};
+       @neg_reads{keys %{$del_reads[0]}} = values %{$del_reads[0]};

        ## return the reads to the outside world, we need to merge these with the reads discovered from Pindel to get accurate counts...
        return (\%pos_reads,\%neg_reads);

This may not solve the problem but it will advance things if they go silent.

GKerdivel commented 8 years ago

Hi, I made the modifications and but still get an error. Here is the new error report:

Installing cgpPindel ...Generating a Unix-style Makefile
Writing Makefile for cgpPindel
Writing MYMETA.yml and MYMETA.json
Skip blib/lib/Sanger/CGP/Pindel/Implement.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/SamHeader.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/PindelRecord.pm (unchanged)
Skip blib/lib/Sanger/CGP/PindelPostProcessing/VcfSoftFlagger.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel.pm (unchanged)
cp lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecordGenerator.pm
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/VcfConverter.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/Pair.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/Read.pm (unchanged)
Skip blib/lib/Sanger/CGP/PindelPostProcessing/FilterRules.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen/PairToPindel.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/BamUtil.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/PindelRecordParser.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/InputGen.pm (unchanged)
Skip blib/lib/Sanger/CGP/PindelPostProcessing/AbstractExe.pm (unchanged)
Skip blib/lib/Sanger/CGP/Pindel/OutputGen/CombinedRecord.pm (unchanged)
cp bin/FlagVcf.pl blib/script/FlagVcf.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/FlagVcf.pl
cp bin/pindel_merge_vcf_bam.pl blib/script/pindel_merge_vcf_bam.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_merge_vcf_bam.pl
cp bin/pindel_2_combined_vcf.pl blib/script/pindel_2_combined_vcf.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_2_combined_vcf.pl
cp bin/pindel_np_from_vcf.pl blib/script/pindel_np_from_vcf.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_np_from_vcf.pl
cp bin/pindel_germ_bed.pl blib/script/pindel_germ_bed.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_germ_bed.pl
cp bin/pindel_input_gen.pl blib/script/pindel_input_gen.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel_input_gen.pl
cp bin/pindel.pl blib/script/pindel.pl
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pindel.pl
Manifying blib/man1/FlagVcf.pl.1p
Manifying blib/man1/pindel.pl.1p
Manifying blib/man1/pindel_2_combined_vcf.pl.1p
Manifying blib/man1/pindel_germ_bed.pl.1p
Manifying blib/man1/pindel_input_gen.pl.1p
Manifying blib/man1/pindel_merge_vcf_bam.pl.1p
Manifying blib/man1/pindel_np_from_vcf.pl.1p
Manifying blib/man3/Sanger::CGP::Pindel::Implement.3pm
Manifying blib/man3/Sanger::CGP::Pindel::InputGen.3pm
Manifying blib/man3/Sanger::CGP::Pindel::InputGen::Pair.3pm
Manifying blib/man3/Sanger::CGP::Pindel::InputGen::SamHeader.3pm
Manifying blib/man3/Sanger::CGP::Pindel::OutputGen::CombinedRecordGenerator.3pm
Manifying blib/man3/Sanger::CGP::Pindel::OutputGen::PindelRecordParser.3pm
Manifying blib/man3/Sanger::CGP::PindelPostProcessing::VcfSoftFlagger.3pm
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_pm_compile.t ...................... ok    
t/2_pl_compile.t ...................... 1/? 
#   Failed test 'Compilation check: /home/gwenneg/bin/cgpPindel-2.0.6/perl/t/../bin/pindel_germ_bed.pl'
#   at t/2_pl_compile.t line 61.
# Looks like you failed 1 test of 8.
t/2_pl_compile.t ...................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/8 subtests 
t/inputGenRead.t ...................... ok   
t/outputGenCombinedRecordGenerator.t .. ok   
t/outputGenPindelRecordParser.t ....... ok   
t/outputGenVcfConverter.t ............. ok   
t/vcfPindelFlagger.t .................. ok    

Test Summary Report
-------------------
t/2_pl_compile.t                    (Wstat: 256 Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 1
Files=7, Tests=83,  2 wallclock secs ( 0.05 usr  0.00 sys +  1.35 cusr  0.16 csys =  1.56 CPU)
Result: FAIL
Failed 1/7 test programs. 1/83 subtests failed.
Makefile:965: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
 failed.  See setup.log file for error messages. cgpPindel install failed.
    Please check INSTALL file for items that should be installed by a package manager
keiranmraine commented 8 years ago

Can you please run:

cd /home/gwenneg/bin/cgpPindel-2.0.6/perl
perl -I /home/gwenneg/cgp/lib/perl5 -c bin/pindel_germ_bed.pl

I'm making an assumption that I've got the library path correct for the previously installed code, if I have then this file should exist:

ls -l /home/gwenneg/cgp/lib/perl5/PCAP.pm
GKerdivel commented 8 years ago

When I run perl -I /home/gwenneg/cgp/lib/perl5 -c bin/pindel_germ_bed.pl I obtain the following: keys on reference is experimental at bin/pindel_germ_bed.pl line 74.

The file /home/gwenneg/cgp/lib/perl5/PCAP.pm exists

keiranmraine commented 8 years ago

Another modification and retry:

diff --git a/perl/bin/pindel_germ_bed.pl b/perl/bin/pindel_germ_bed.pl
index 33c8d98..616715d 100755
--- a/perl/bin/pindel_germ_bed.pl
+++ b/perl/bin/pindel_germ_bed.pl
@@ -71,7 +71,7 @@ while(my $x = $vcf->next_data_array){
 }
 #Fake line as first position of first contig unless we have had at least one bed entry
 if($has_entry == 0){
-  my $first_contig = (sort keys $vcf->get_header_line(key=>'contig')->[0])[0];
+  my $first_contig = (sort keys %{$vcf->get_header_line(key=>'contig')->[0]})[0];
   print $o_fh (join ("\t",$first_contig,0,1),"\n") or die "Failed to write: $!";
 }
GKerdivel commented 8 years ago

Yes !! It worked ! Thank you very much !

keiranmraine commented 8 years ago

Great, I'll create a hotfix for this. Thanks for working through it with me, much appreciated.