Skip to content

Error when checking dependencies in mdmcleaner makedb  #54

Open
@danpal96

Description

@danpal96

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions