mdmcleaner
mdmcleaner copied to clipboard
Error when checking dependencies in mdmcleaner makedb
Installation with conda: python=3.11.3 mdmcleaner=0.8.7
I got the next error when running mdmcleaner makedb
You are running the following MDMcleaner command:
'/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/bin/mdmcleaner makedb -o mdmcleaner'
reading settings from configfile: "/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/lib/python3.11/site-packages/mdmcleaner/mdmcleaner.config"
settings:
threads = '1'
db_type = '['gtdb']'
blacklistfile = '['/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/lib/python3.11/site-packages/mdmcleaner/blacklist.list']'
blastn = 'blastn'
blastp = 'blastp'
makeblastdb = 'makeblastdb'
blastdbcmd = 'blastdbcmd'
diamond = 'diamond'
barrnap = 'barrnap'
hmmsearch = 'hmmsearch'
aragorn = 'aragorn'
prodigal = 'prodigal'
checking dependencies...
makeblastdb...2.13.0 --> OK!
diamond...2.1.6 --> OK!
wget...Traceback (most recent call last):
File "/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/bin/mdmcleaner", line 10, in <module>
sys.exit(main())
^^^^^^
File "/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/lib/python3.11/site-packages/mdmcleaner/mdmcleaner.py", line 230, in main
check_dependencies.check_dependencies("makeblastdb", "diamond", "wget", configs=configs)
File "/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/lib/python3.11/site-packages/mdmcleaner/check_dependencies.py", line 115, in check_dependencies
check_external_dependency(*toolnames, configs=configs)
File "/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/lib/python3.11/site-packages/mdmcleaner/check_dependencies.py", line 128, in check_external_dependency
isttool = version_object(get_external_dependency_version_string(tool))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/lib/python3.11/site-packages/mdmcleaner/check_dependencies.py", line 86, in get_external_dependency_version_string
output = proc.stdout.readline().strip()
^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/extra/home/danielpalma/mambaforge/envs/mdmcleaner/lib/python3.11/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
For some reason it is decoding the wget --version
text as ascii but in my version of wget the text contains some non-ascii characters.
I solved this by replacing the next line of get_external_dependency_version_string
:
proc = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, text = True, universal_newlines=True)
with:
proc = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, text = True, universal_newlines=True, errors="ignore")
The errors
parameter is explained here https://docs.python.org/3/library/io.html#io.TextIOWrapper. I don't think that setting it to ignore
would cause any unexpected behaviour but I'm not sure.