rdk / p2rank

P2Rank: Protein-ligand binding site prediction tool based on machine learning. Stand-alone command line program / Java library for predicting ligand binding pockets from protein structure.
https://rdk.github.io/p2rank/
MIT License
242 stars 34 forks source link

Prank not compiling for a dataset (.ds) #7

Closed purvi24 closed 3 years ago

purvi24 commented 5 years ago

I am trying to run prank predict on a dataset containing the list of pdb files with their path. But it doesn't compile. It gives the following error: """[INFO] ConsoleWriter - [INFO] Main - loading default config from [/home/purvi/genome/p2rank-master/distro/config/default.groovy] [INFO] Main - looking for dataset in dataset_base_dir [/home/purvi/genome/p2rank-master/test_swiss.ds]... [INFO] Dataset - loading dataset [/home/purvi/genome/p2rank-master/test_swiss.ds] [ERROR] Dataset - prediction file doesn't exist: null/dir_test/1a52.pdb [ERROR] Dataset - protein file doesn't exist: null/null""" I am not sure where the "null" comes from. It runs on a single pdb file though. Please let me know how to fix this.

rdk commented 5 years ago

Colud you attach or send the .ds on which it breaks? I will look into it...

purvi24 commented 5 years ago

HEADER: prediction protein

dir_test/1a52.pdb dir_test/2a52.pdb

This is how my .ds file looks like. I used only 2 files for testing. I also tried including their whole path but it doesn't work like that.

rdk commented 5 years ago

In your case the header should be HEADER: protein because you have only one data column in the file. You can compare it with other *.ds files in test_data directory. Let me know if it helped.

I will add more halpful error message for this case. Thank you for reporting this.

purvi24 commented 5 years ago

I tried it with HEADER: protein and it still gives me the error """P2Rank 2.0

ERROR: dataset contains invalid files"""

It doesn't read the files whereas when I try it with one of the .ds from test_data it works. I still don't understand why.

rdk commented 5 years ago

Do all the pdb files exist? The paths should be relative to the location of *.ds file. If so, you could try removing the heather altogether.

If it doesn't help, could you attach the zip file with your working directory including ds file and pdb files?

purvi24 commented 5 years ago

Yes all the pdb files exist. I used the paths relative to the .ds file only. I transferred my .ds file and the directory with pdb files to test_data folder in p2rank_2.0 and it works now. I still do not understand why. I can use this but would really like to know the reason behind it.

Thanks !

rdk commented 5 years ago

It's probably a bug. Could you help me to reproduce it? I will need some more information.

What is your operating system and shell (bash/cmd/...)? What was the exact full command that produced the error and in what directory it was executed? What was the directory structure (location of p2rank, ds file and pdb files)?

purvi24 commented 5 years ago

Yes I thought so too that it was a bug. Sure. I am using bash terminal on Kubuntu16.04. I executed the command "./prank predict test.ds -o test_output" in the p2rank_2.0 directory and my .ds file and the directory containing the pdb files were in the same folder (p2rank_2.0). Hope it helps you to solve the bug. Let me know if you need more information.

rdk commented 5 years ago

Fixed in version 2.0.1 (https://github.com/rdk/p2rank/releases/tag/2.0.1).

@purvi24, thank you for the bug report and provided details!

eventfulsean commented 4 years ago

@rdk I'm also experiencing the issue, even in 2.0.1 and 2.1.

Running: /opt/p2rank_2.1-dev.1/prank predict -f file.pdb works

while /opt/p2rank_2.1-dev.1/prank predict dataset.ds doesn't

dataset.ds: file.pdb

rdk commented 4 years ago

I was not able to reproduce the problem with version 2.0.1. Could you provide more details? What is your operating system and what was the output the run? Could you also include /log/prank.log?

Version 2.1-dev.1 indeed has that problem but this is to be expected since it has been released before the bugfix. I will create new 2.1-dev.2 release with the bugfix, but first let's figure out what is the problem with the version 2.0.1 so I can include fix for that as well.