tseemann / prokka

:zap: :aquarius: Rapid prokaryotic genome annotation
822 stars 224 forks source link

bioperl v1.7.8 kills the prokka πŸΏπŸ”« #593

Open lskatz opened 3 years ago

lskatz commented 3 years ago

Prokka checks for bioperl >= 1.0006002 numerically using this code on line 257.

my $minbpver = "1.006002"; # for Bio::SearchIO::hmmer3
my $bpver = $Bio::Root::Version::VERSION;
msg("You have BioPerl $bpver");
err("Please install BioPerl $minbpver or higher") if $bpver < $minbpver;

However when you have bioperl v1.7.8, it returns the semver 3-integer notation like

$ perl -MBio::Perl -le 'print $Bio::Root::Version::VERSION'
1.7.8

Therefore it will exit because the comparison will compare 1.006002 < 1.7.8. I am not sure what the correct fix is yet but I am willing to look it up if you would accept a pull request.

arif-tanmoy commented 2 years ago

Hi, I faced the same Bioperl version error with prokka v1.14.5 (which I installed using Conda) and the run was aborted. Prokka v1.14.6 (installed from source) still shows the error as a warning, but it runs the code and doesn't abort. I guess the code has changed. Not sure what _prokkaversion you are using.

_Here's how I solved it on v1.14.5:_

Need this module. use Perl::Version;

Changed the code a bit on those specific lines (starts from line 259)

my $minbpver = "1.006002"; # for Bio::SearchIO::hmmer3
my $bpver0 = Perl::Version->new($Bio::Root::Version::VERSION);
my $bpver = $bpver0->numify;
msg("You have BioPerl $bpver");
err("Please install BioPerl $minbpver or higher") if $bpver < $minbpver;