jyyulab / SJARACNe

Scalable Tool for Gene Network Reverse Engineering
Other
22 stars 16 forks source link

Low p-values (<= 1e-07 ) get rounded to zero #53

Open Bullo27 opened 1 month ago

Bullo27 commented 1 month ago

At least when run in local mode, the tool appears unable to handle p-values from 1e-07 down (not exactly this value perhaps, but 1e-06 is the last "standard" value in exponential notation that works), rounding them to zero and causing the p-value safeguard exception to be thrown.

I have done some debugging, and the values appear to be parsed correctly from the terminal (I'm running Ubuntu 22.04) and correctly written to the .yml file, but when the main C++ script parses them they are already equal to zero. The rounding appears to happen within the .cwl files.

It would be great if this could be fixed. Thanks

shladyshau commented 1 month ago

@Bullo27, thank you for posting this issue! Could you provide a bit more details? Are you relating to p-values you specify in the command line, that are not handled correctly? If this is the case, we need more information on how you run SJARACNe and more details about your environment. On our side, we tested p-values as low as 10^(-9), for which the network was reconstructed successfully.

Bullo27 commented 1 month ago

Yes, I am referring to the -pb argument, I forgot to specify. The -pc argument seems to be handled without immediately apparent problems.

I am running the tool from a Ubuntu 22.04.5 terminal window, in a dedicated Anaconda environment in which I have only installed sjaracne so far (through the steps you recommend on this GitHub page). I am using Python 3.11.10. A few more details on what I tried to figure the issue out are reported up in the original post; if you need more details, please let me know.

The following is the command I am running:

sjaracne local -e dataset_file -o output_folder -tmp tmp_folder -g TF_list -n 1 -pb 1e-07