Lafond-LapalmeJ / MCSC_Decontamination

Scripts and documentations on the MCSC decontamination method
GNU General Public License v3.0
8 stars 2 forks source link

Use of uninitialized value in substr at get_taxa_from_diamond.pl line 96 (#1) #26

Closed desmondramirez closed 6 years ago

desmondramirez commented 6 years ago

Hi,

I'm trying to run MCSC decontamination, but keep getting errors when the script tries to use the get_taxa_from_diamond.pl script. As of diamond 0.9.19, the diamond database format is different from previous versions (e.g. 0.8.22, which seems to be what was used to create the test diamond database). Is it possible that the database update has broken the perl script?

The errors are : "Use of uninitialized value in substr" and "Use of uninitialized value in concatenation (.) or string" at line 96 of the get_taxa_from_diamond.pl script.

I suppose I can install an older version of diamond to make the script work, but any other suggestions are greatly appreciated.

Thanks, Des

Lafond-LapalmeJ commented 6 years ago

Hi Charles,

The pipeline should work even with this perl warning. But anyway I have fix it and push to github. I have test it using diamond v0.9.22 and v0.9.10 and everything looks fine. If you have more problems please send me you complete output.

Cheers, Joël

Le dim. 12 août 2018 à 22:32, charlesfoster notifications@github.com a écrit :

Hi,

I encountered the same issue as @desmondramirez https://github.com/desmondramirez . I've tried using both Diamond 0.9.10 and 0.8.28.90 (the two versions on my cluster). Error:

"Use of uninitialized value in substr at /my_path/scripts/get_taxa_from_diamond.pl line 96 (#1 https://github.com/Lafond-LapalmeJ/MCSC_Decontamination/pull/1) (W uninitialized) An undefined value was used as if it were already defined. It was interpreted as a "" or a 0, but maybe it was a mistake. To suppress this warning assign a defined value to your variables.

To help you figure out what was undefined, perl will try to tell you the name of the variable (if any) that was undefined. In some cases it cannot do this, so it also tells you what operation you used the undefined value in. Note, however, that perl optimizes your program and the operation displayed in the warning may not necessarily appear literally in your program. For example, "that $foo" is usually optimized into "that " . $foo, and the warning will refer to the concatenation (.) operator, even though there is no . in your program.

Use of uninitialized value in concatenation (.) or string at /my_path/scripts/get_taxa_from_diamond.pl line 96 (#1 https://github.com/Lafond-LapalmeJ/MCSC_Decontamination/pull/1)"

Has there been a solution discovered yet?

Cheers, Charles

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Lafond-LapalmeJ/MCSC_Decontamination/issues/26#issuecomment-412393798, or mute the thread https://github.com/notifications/unsubscribe-auth/AQVrcTp50ZlbIZIWRxApwJ2NenAM__cfks5uQOUxgaJpZM4UOMcl .