Open uloeber opened 3 years ago
Hi Ulrike!
What version of Prokka are you using? (If you're using conda, sometimes I've seen if goof up and install an older version of Prokka)
Cheers, Robert
Same here! Using conda, I need to downgrade both blast and prokka :(
Hi @domenico-simone
What version of Prokka do you have? Also what's the contents of conda env export
look like?
If it helps any, the conda install of Prokka can be sensitive to channel order. I tend to stick to -c conda-forge -c bioconda
.
conda create -n prokka-20210217 -c conda-forge -c bioconda prokka
conda activate prokka-20210217
prokka --version
prokka 1.14.6
blastp -version
blastp: 2.10.1+
Package: blast 2.10.1, build Dec 7 2020 10:41:52
prokka --depends
aragorn >= 1.2 (compulsory, not bundled)
barrnap >= 0.4 (optional, not bundled)
blastp >= 2.8 (compulsory, not bundled)
cmpress >= 1.1 (optional, not bundled)
cmscan >= 1.1 (optional, not bundled)
egrep >= 0 (compulsory, not bundled)
find >= 0 (compulsory, not bundled)
grep >= 0 (compulsory, not bundled)
hmmpress >= 3.1 (compulsory, not bundled)
hmmscan >= 3.1 (compulsory, not bundled)
java >= 0 (compulsory, not bundled)
makeblastdb >= 2.8 (optional, not bundled)
minced >= 2.0 (optional, not bundled)
parallel >= 20130422 (compulsory, not bundled)
prodigal >= 2.6 (compulsory, not bundled)
prokka-genbank_to_fasta_db >= 0 (compulsory, not bundled)
rnammer >= 1.2 (optional, not bundled)
sed >= 0 (compulsory, not bundled)
signalp >= 3.0 (optional, not bundled)
tbl2asn >= 24.3 (compulsory, not bundled)
See if that helps you out.
same problem here, prokka installed via mamba install - c bioconda -c conda-forge -c defaults 'python>=3.7' 'blast>=2.2' prokka
.
Downgrading to 'blast<=2.10' solved the issue. Installing blast from ncbi (version 2.12) did not help.
Same issue also present in prokka binary shipped with this repo.
Ran into this as well. Forcing prokka
up to version 1.14.6
does seem to help.
The bug, though, is in this code
msg("Determined $toolname version is $t->{VERSION} from '$s'");
if (defined $t->{MINVER} and $t->{VERSION} lt ver2str($t->{MINVER}) ) {
err("Prokka needs $toolname $t->{MINVER} or higher. Please upgrade and try again.");
}
This is comparing versions lexicographically, which does not generally work, unfortunately. Perhaps there is a Perl module that knows how to do this correctly.
Hi, For others who encounter this problem, here's another solution that does not require downgrading blast or prokka.
PROBLEM As already stated, the problem is that perl thinks 2.10<2.2. This is an issue with the version checks rather than actual compatibility with blast v2.10+. In the main prokka script, the minimum version requirements for blastp/makeblastdb are established within lines 156-167:
'blastp' => {
GETVER => "blastp -version",
REGEXP => qr/blastp:\s+($BIDEC)/,
MINVER => "2.2", <- HERE
NEEDED => 1,
},
'makeblastdb' => {
GETVER => "makeblastdb -version",
REGEXP => qr/makeblastdb:\s+($BIDEC)/,
MINVER => "2.2", <- HERE
NEEDED => 0, # only if --proteins used
},
SOLUTION
To fix, find the code and change lines 159 and 165 from MINVER => "2.2",
to MINVER => "2.10",
.
Note that this would mean several versions of blast (v2.2-2.9) are incorrectly considered not viable; however, if using one of these versions, then this problem would not have arisen anyway.
FINDING THE CODE
The exact location of the code will depend on your installation method.
I created a conda environment named prokka_env
conda create --name prokka_env
conda activate prokka_env
so the code was located in ~/anaconda3/envs/prokka_env/bin/prokka
. Simply open this file in a text editor and make the changes at lines 159 and 165. Save and rerun.
I hope this helps
Hi, @jrhendrix's solution worked for me. Thanks a lot!
Thank @jrhendrix this worked for me after getting the error
Determined blastp version is 2.12
Prokka needs blastp 2.2 or higher. Please upgrade and try again.
Edit: This seems to have been a problem with 1.13 and is not a problem in prokka 1.14. I had used bioconda channel and not conda-forge for installing.
Dear Torsten, it seems that a conflict occurs since blastp/makeblastdb v 2.10 since the perl routine recognizes 2.10<2.2 which is obviously wrong.
Yours sincerely, Ulrike