Xinglab / espresso

Other
57 stars 4 forks source link

ESPRESSO_Q.pl can't open -L #11

Closed humblebeebio closed 1 year ago

humblebeebio commented 1 year ago

Hello,

I am trying to run the ESPRESSO_Q.pl script but I am getting the following error:

can't open -L: No such file or directory at {path to root}/espresso/src/ESPRESSO_Q_Thread.pm line 18.
Compilation failed in require at {path to root}/espresso/src/ESPRESSO_Q.pl line 10.
BEGIN failed--compilation aborted at {path to root}/espresso/src/ESPRESSO_Q.pl line 10.

I checked the updated tsv file and it appears to be in the correct format (tab delimited with the correct number of columns and correct column values).

I suspect there is an issue with the ESPRESSO_Q.pl script locating the ESPRESSO_Q_Thread.pm script. What is your proposed installation method without the Snakemake script?

I tried adding the src directory to my path but the bash interpreter can't execute the script without a perl header (adding these didn't seem to fix the issue).

All the other scripts ran successfully by executing them with perl and providing the full path to source.

Thanks!

EricKutschera commented 1 year ago

It looks like that error can happen if ESPRESSO_Q.pl is called with only the -L argument like: perl ESPRESSO_Q.pl -L /path/to/samples.tsv.updated

The issue is that ESPRESSO_Q_Thread.pm is used in two ways. As an import: https://github.com/Xinglab/espresso/blob/v1.3.0-beta/src/ESPRESSO_Q.pl#L10 As a script: https://github.com/Xinglab/espresso/blob/v1.3.0-beta/src/ESPRESSO_Q.pl#L550

It tries to figure out if it is an import by checking for command line arguments: https://github.com/Xinglab/espresso/blob/v1.3.0-beta/src/ESPRESSO_Q_Thread.pm#L7

That is probably not the correct way for a module to figure out if it is being imported. For now you should be able to resolve the error by providing any additional argument to ESPRESSO_Q.pl for example specify the number of threads to be 5 (the default): perl ESPRESSO_Q.pl -L /path/to/samples.tsv.updated -T 5

EricKutschera commented 1 year ago

ESPRESSO v1.3.1 includes a fix for this error