Murali-group / Beeline

BEELINE: evaluation of algorithms for gene regulatory network inference
GNU General Public License v3.0
174 stars 53 forks source link

Error in inputPath derivation in runner scripts #24

Closed cflerin closed 5 years ago

cflerin commented 5 years ago

Hi,

Thanks for the interesting package and collection of GRN methods! I ran into the following error when trying to run the eval.py script on the included sample data:

$ pwd
/media/data/chris/beeline/Beeline
$ python eval.py --config config-files/config.yaml
eval.py:126: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details
.
  config_map = yaml.load(config_file_handle)
<__main__.Evaluation object at 0x7fee34158cf8>
Evaluation started
Input folder for PIDC does not exist, creating input folder...
Input folder for GRNVBEM does not exist, creating input folder...
Input folder for GENIE3 does not exist, creating input folder...
Input folder for GRNBOOST2 does not exist, creating input folder...
Input folder for PPCOR does not exist, creating input folder...
Input folder for SCODE does not exist, creating input folder...
Input folder for SCNS does not exist, creating input folder...
Input folder for SINCERITIES does not exist, creating input folder...
Input folder for LEAP does not exist, creating input folder...
Input folder for GRISLI does not exist, creating input folder...
Input folder for SCINGE does not exist, creating input folder...
Input folder for SCRIBE does not exist, creating input folder...
Traceback (most recent call last):
  File "eval.py", line 215, in <module>
    main()
  File "eval.py", line 206, in main
    evaluation.runners[idx].run()
  File "/media/data/chris/beeline/Beeline/src/runner.py", line 86, in run
    AlgorithmMapper[self.name](self)
  File "/media/data/chris/beeline/Beeline/src/pidcRunner.py", line 26, in run
    inputPath = "data/" + str(RunnerObj.inputDir).split("RNMethods/")[1] + \
IndexError: list index out of range

It's not clear to me where RNMethods is supposed to come from, but I was able to work around this by changing the inputPath derivation in each of the runner files:

inputPath = "data/" + str(RunnerObj.inputDir).split(str(Path.cwd()))[1] + "/PIDC/ExpressionData.csv"

The methods appear to be running on the sample data after this change, so I'm not sure if I missed a step somewhere.

adyprat commented 5 years ago

Hi Chris, Thank you for your interest in BEELINE and bringing this issue to our attention. I updated the Runner scripts to avoid using RNMethods in 27c5c6d. Let me know if the issue still persists.

RNMethods was the name of this repository before we changed it to Beeline, so the runner scripts should have ideally reflected the same. In any case, the inputPath variable should not have been dependent on the folder into which the repo was cloned into. So changing it to

inputPath = "data" + str(RunnerObj.inputDir).split(str(Path.cwd()))[1] + ...

in the Runner scripts is more appropriate like you suggested. Sorry for the confusion and hope this helps.

Thanks, -Aditya