gbouras13 / pharokka

fast phage annotation program
MIT License
147 stars 15 forks source link

Running crashed due to ""IndexError: list index out of range" #235

Closed lisalamberte closed 1 year ago

lisalamberte commented 1 year ago

Description

I was trying to run pharokka, but it crashed due to "IndexError: list index out of range". What should I do to remedy this?

What I Did

Command: pharokka.py -i 234389_PhageGq1.fna -o phage_gq1 -t 4

Traceback (most recent call last): File "/home/ubuntu/lisa-armyVol3/miniconda3/envs/phage/bin/pharokka.py", line 87, in input_commands.check_dependencies(logger) File "/home/ubuntu/lisa-armyVol3/miniconda3/envs/phage/bin/input_commands.py", line 313, in check_dependencies mash_version = version_line[0].split(' ')[2] IndexError: list index out of range

gbouras13 commented 1 year ago

Hi @lisa-maiya, it looks like there’s an issue with your mash installation. Other users have reported similar mash issues that were caused by gsl not being installed. You can fix this by installing gsl in your environment e.g.

conda install -c conda-forge gsl

(See https://anaconda.org/conda-forge/gsl)

Then trying pharokka again.

Please let me know if that doesn’t work!

George

lisalamberte commented 1 year ago

Hi George,

I have installed gsl in my environment, but unfortunately I still get exactly the same error.

Traceback (most recent call last): File "/home/ubuntu/lisa-armyVol3/miniconda3/envs/pharokkaENV/bin/pharokka.py", line 87, in input_commands.check_dependencies(logger) File "/home/ubuntu/lisa-armyVol3/miniconda3/envs/pharokkaENV/bin/input_commands.py", line 313, in check_dependencies mash_version = version_line[0].split(' ')[2] IndexError: list index out of range

gbouras13 commented 1 year ago

Hi Lisa,

Would be able to run:

mash help

or

mash --version

and post what the output is?

George

lisalamberte commented 1 year ago

Sure!

I get this:

mash: error while loading shared libraries: libgsl.so.25: cannot open shared object file: No such file or directory

gbouras13 commented 1 year ago

Hi Lisa,

it does seem like a gsl issue - frustrating that just installing it didn’t work.

Another thing to try would be trying a lower gsl version e.g.

conda install gsl==2.5

or

conda install gsl==2.6

as you seem to lack gsl v2.5 based off the error message. It seems to be similar to this error https://github.com/ParBLiSS/FastANI/issues/96 that seemed to be fixed by downgrading gsl to 2.6

Another thing to try would be creating a new conda environment with both gsl and pharokka at the beginning and perhaps that will work? Something like:

conda create -n pharokkanew pharokka gsl

and that may work.

Let me know if any of this works!

George

gbouras13 commented 1 year ago

Actually based on that thread, first try

conda install -c conda-forge gsl=2.7=he838d99_0

George

gbouras13 commented 1 year ago

And if all of that fails, maybe try:

conda create -n pharokkanew pharokka mash==2.2

lisalamberte commented 1 year ago

HI George,

I have done both, but still came up with this:

Traceback (most recent call last): File "/home/ubuntu/lisa-armyVol3/miniconda3/envs/pharokkanew/bin/pharokka.py", line 5, in import processes File "/home/ubuntu/lisa-armyVol3/miniconda3/envs/pharokkanew/bin/processes.py", line 8, in from BCBio import GFF ModuleNotFoundError: No module named 'BCBio'

I've tried to install BCBio via conda but it comes up with this:

UnsatisfiableError: The following specifications were found to be incompatible with the existing python installation in your environment:

Specifications:

Your python: python=3.10

If python is on the left-most side of the chain, that's the version you've asked for. When python appears to the right, that indicates that the thing on the left is somehow not available for the python version you are constrained to. Note that conda will not change your python version to a different minor version unless you explicitly specify that.

The following specifications were found to be incompatible with your system:

Your installed version is: 0

gbouras13 commented 1 year ago

Hi Lisa,

That is so strange, I don't understand why bcbio-gff wouldn't install with pharokka as it's an encoded conda dependency for pharokka. From my experience, that sort of error (with glibc) are due to something obscure failing in your overall conda build, maybe like your channels. So perhaps re-doing the channels in the usual order:

conda config --add channels defaults conda config --add channels bioconda conda config --add channels conda-forge

could work.

Also, maybe try creating an environment with bcbio-gff at the start:

conda create -n pharokkanew pharokka mash==2.2 bcbio-gff

The other thing to try is to use mamba if you can install it - those glibc sort of problems often go away with mamba.

George

lisalamberte commented 1 year ago

Hi George,

That definitely did it! I've managed to run pharokka successfully now. Thank you so much for taking the time and patience to answer my queries!

All the best Lisa

gbouras13 commented 1 year ago

No problem Lisa! Let me know if you have any other problems.

I'm going to leave the issue open for anyone with a similar error, as a few other users have had issues.

George

gjordaopiedade commented 1 year ago

for others having a similar error message but with tRNAscan-SE Check for conflicting PERL libraries try: export PERL5LIB=

gbouras13 commented 1 year ago

@gjordaopiedade thanks for this - if you can (you've probably fixed it by now!), would you able share some more details about any errors you had?

George

gjordaopiedade commented 1 year ago

yes, no problem

This is the error:

Starting pharokka v1.2.1
Checking database installation.
All databases have been successfully checked.
Checking dependencies.
Phanotate version found is v1.5.0.
Phanotate version is ok.
MMseqs2 version found is v13.45111.
MMseqs2 version is ok.
Traceback (most recent call last):
  File "/export/lv1/user/gjordaopiedade/miniconda3/envs/newbase/envs/pharokka2/bin/pharokka.py", line 87, in <module>
    input_commands.check_dependencies(logger)
  File "/export/lv1/user/gjordaopiedade/miniconda3/envs/newbase/envs/pharokka2/bin/input_commands.py", line 202, in check_dependencies
    trna_version = version_line[0].split(' ')[1]
IndexError: list index out of range

Because of the "IndexError: list index out of range" made me think that it had also to do with this error. But in the end was just perl (happens quite often in our server).

I went to check the trna and got the error message that told perl to be the issue:

$ tRNAscan-SE
perl: symbol lookup error: /export/lv1/public_perl/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Cwd/Cwd.so: undefined symbol: Perl_xs_apiversion_bootcheck

this solved the issue: export PERL5LIB=

gbouras13 commented 1 year ago

Much appreciated @gjordaopiedade. This will be helpful in case anyone else runs into the same error.

George

Taiwomercy commented 1 year ago

I have installed pharokka into one of my directories on hpc using the following from the installation instructions:

git clone https://github.com/gbouras13/pharokka.git cd pharokka conda env create -f environment.yml conda activate pharokka_env

./bin/install_databases.py -h ./bin/pharokka.py -h

I ran pharokka and I got this error:

Checking database installation. All databases have been successfully checked. Checking dependencies. Phanotate not found. Please reinstall pharokka. Starting pharokka v1.2.1

What other way can I try to install pharokka to ensure phanotate works?

gbouras13 commented 1 year ago

Hi @Taiwomercy,

It seems like your dependencies did not install.

I would try a bioconda install

conda create -n pharokkaENV pharokka
conda activate pharokkaENV
pharokka.py -h

rather than a manual installation.

Alternatively, if only phanotate is missing, you can try

conda install phanotate

which should install it.

George

Taiwomercy commented 1 year ago

Hi, I am trying to specify that pharokka predict my genes with prodigal and not phanotate, everything works fine when I did not specify -g prodigal but I keep getting error when I specify prodigal as the gene predictor.

Here is the command:

pharokka.py -i /users/PDS0325/taiwomercy/AzotobacterPhages_Sequencing/data/short_reads/Fasta/Vincere.fas ta -o /users/PDS0325/taiwomercy/AzotobacterPhages_Sequencing/data/processed_v2/Pharokka_annotate/vincere_short_pharokprodgal -d /users/PDS0325/taiwomercy/bio informatics_tools/pharokka/ -g prodigal -t 8

Here is the error:

Traceback (most recent call last): File "/users/PDS0325/taiwomercy/bioinformatics_tools/miniconda3/envs/pharokkaENV/bin/pharokka.py", line 447, in main() File "/users/PDS0325/taiwomercy/bioinformatics_tools/miniconda3/envs/pharokkaENV/bin/pharokka.py", line 278, in main run_pyrodigal(input_fasta, out_dir, args.meta, args.coding_table) File "/users/PDS0325/taiwomercy/bioinformatics_tools/miniconda3/envs/pharokkaENV/bin/processes.py", line 276, in run_pyrodigal orf_finder = pyrodigal.OrfFinder(meta=prodigal_metamode) AttributeError: module 'pyrodigal' has no attribute 'OrfFinder' (pharokkaENV) [taiwomercy@owens-login04 miniconda3]$

gbouras13 commented 1 year ago

Hi @Taiwomercy,

I have made a new issue for the problem. You can see my response here https://github.com/gbouras13/pharokka/issues/297. Thanks for raising it. I'm also closing this issue.

George

PortugueseMaestro commented 1 year ago

export PERL5LIB=

Thank you. I was getting same error:

trna_version = version_line[0].split(" ")[1] IndexError: list index out of range

Running export PERL5LIB= solved my problem when updating Pharokka to v1.5.0.