ylab-hi / ScanNeo

A pipeline for identifying indel derived neoantigens using RNA-Seq data
Other
29 stars 7 forks source link

IOError: [Errno 9] Bad file descriptor when calling IEDB analysis #6

Closed paulhtyang closed 3 years ago

paulhtyang commented 3 years ago

Hello, As shown below, I got some error messages when running Step 3 for neoantigen prediction. I run "predict_binding.py" separately and the example commands in the README file. Everything is working well.

I'm running ScanNeo under conda environment. I wondered the multi-threading (subprocess.py ...) was not working well. Can I set the parameter to turn the "muti-threading" off, or do you have other suggestions? Noted that I'm not good at Python programming.

Thank you very much, Paul (Hsih-Te)

============================== Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Exception in thread Thread-1: Traceback (most recent call last): File "/data/anaconda3/envs/NeoAg/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() File "/data/anaconda3/envs/NeoAg/lib/python2.7/threading.py", line 754, in run self.target(*self.args, **self.kwargs) File "/data/anaconda3/envs/NeoAg/lib/python2.7/site-packages/concurrent/futures/process.py", line 208, in _que ue_management_worker result_item = result_queue.get(block=True) File "/data/anaconda3/envs/NeoAg/lib/python2.7/multiprocessing/queues.py", line 117, in get res = self._recv() TypeError: init__() takes at least 3 arguments (1 given)

Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip() IOError: [Errno 9] Bad file descriptor Traceback (most recent call last): File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 484, in Prediction().main() File "/data/tools/mhc_i/mhc_i/src/predict_binding.py", line 463, in main stdin = sys.stdin.readline().strip()

dolittle007 commented 3 years ago

It seems that the errors came from IEDB tools. In my envs, it works well. First of all, please make sure you are running Python2.7 not Python3. Then, you may need to check whether you have tcsh installed. The tcsh should be available at /bin/tcsh. Otherwise, you have to edit the file "mhc_i/method/netmhc-4.0-executable/netmhc_4_0_executable/netMHC". You need to edit the first line to be "#!/usr/bin/env tcsh". Hope it helps.

paulhtyang commented 3 years ago

Hello, Thanks for your prompt reply. Actually, I had covered the way you proposed before raising this issue. I can successfully run the examples listed in the IEDB readme doc. However, I installed tcsh under the activated conda environment that may cause the errors. Could you please let me know any other solution that I can try? Thanks again. Paul

paulhtyang commented 3 years ago

Hello,

I traced the Python code that I am not familiar with. I found the problem might be due to "stdin" environment under calling subprocess modules. Thus, I edited the "ScanNeo.py" file by modifying the code at the line #359 to


response = subprocess.check_output(cmd, shell=True, stdin=subprocess.PIPE)


The issue was resolved! Paul

dolittle007 commented 3 years ago

Happy New Year. Wow. I reinstalled the IEDB packages, I still cannot reproduce this issue. Thanks a lot. You are a great investigator. I will modify ScanNeo accordingly. Thank you so much. Again.

paulhtyang commented 3 years ago

Happy new year to you! You are such a responsible and professional maintainer/developer of this software package. Actually it is worth to note the version of IEDB I'm using is 2.22.3 released on 2020-03-31. Paul

dolittle007 commented 3 years ago

I am using 2.19.1, the old version in the tests. I find that the latest IEDB version (3.0) begins to support Python3. I also plan to upgrade ScanNeo to Python3 in the near future. The latest IEDB and Python may tend to have fewer bugs. As you suggested, I will also add one parameter to specify the number of threads. Thank you! Tingyou