Ecogenomics / CheckM

Assess the quality of microbial genomes recovered from isolates, single cells, and metagenomes
https://ecogenomics.github.io/CheckM/
GNU General Public License v3.0
347 stars 73 forks source link

fail to run if AF_UNIX path is > 108 characters - #395

Closed handibles closed 4 months ago

handibles commented 5 months ago

Thanks as ever to the devs for the great tool.

Running checkM -v _____ as part of metaWRAP (-v _____), and came across the following error: AF_UNIX path too long , as a result of the full path to my working dir being longer than 108 characters in length.

In my case I had privileges to move the whole thing to a higher point in the filetree and it worked fine - I can imagine that this might not always be possible (or obvious..).

Possibly, symlinking the dir to a new dir in /tmp (i..eln -s /my/loooooongdir/path /tmp/shortdir` ) would have worked as well, but not sure if there's a better way to catch this from within metawrap / checkM?

------------------------------------------------------------------------------------------------------------------------
-----                            Running CheckM on best bins (reassembled and original)                            -----
------------------------------------------------------------------------------------------------------------------------

mkdir: cannot create directory ‘/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/fhi__enzcip_mag/8__reassemble/tmp’: File exists
[2024-06-07 18:24:19] INFO: CheckM v1.0.18
[2024-06-07 18:24:19] INFO: checkm lineage_wf -x fa /data/JPL/event_UAPs/nhi_host/sequencesandreversebio/fhi__enzcip_mag/8__reassemble/reassembled_bins /data/JPL/event_UAPs/nhi_host/sequencesandreversebio/fhi__enzcip_mag/8__r>
[2024-06-07 18:24:19] INFO: [CheckM - tree] Placing bins in reference genome tree.
[2024-06-07 18:24:20] INFO: Identifying marker genes in 12 bins with 24 threads:
Process SyncManager-1:
Traceback (most recent call last):
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
    self.run()
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/managers.py", line 550, in _run_server
    server = cls._Server(registry, address, authkey, serializer)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/managers.py", line 162, in __init__
    self.listener = Listener(address=address, backlog=16)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/connection.py", line 132, in __init__
    self._listener = SocketListener(address, family, backlog)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/connection.py", line 256, in __init__
    self._socket.bind(address)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: AF_UNIX path too long

Unexpected error: <type 'exceptions.EOFError'>
Traceback (most recent call last):
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/bin/checkm", line 714, in <module>
    checkmParser.parseOptions(args)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/site-packages/checkm/main.py", line 1138, in parseOptions
    self.tree(options)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/site-packages/checkm/main.py", line 133, in tree
    options.bCalledGenes)
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/site-packages/checkm/markerGeneFinder.py", line 67, in find
    binIdToModels = mp.Manager().dict()
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/__init__.py", line 99, in Manager
    m.start()
  File "/data/JPL/event_UAPs/nhi_host/sequencesandreversebio/bin/miniforge3/envs/mw.i/lib/python2.7/multiprocessing/managers.py", line 528, in start
    self._address = reader.recv()
EOFError

************************************************************************************************************************
*****                             Something went wrong with running CheckM. Exiting...                             *****
************************************************************************************************************************
donovan-h-parks commented 4 months ago

Hi. I'm closing this ticket as CheckM is now on v1.2.2 and has been ported to Python 3.