martinpacesa / martinpacesa/BindCraft

Pandas EmptyDataError While Fixing Interface Residues

Open
#99 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Python
Stars
1.2k
Forks
278
PR merge metrics
No merged PRs in 30d

Description

Hi, I was running multiple runs parallelly on multiple GPUs with the same output folder and one of the runs exited with the error below when fixing interface residues.

The runs continued for more than 3 days without an error, and this error has only occurred once. Given the infrequency of the error, is it possible that it is caused by a race condition where one run tries to read a file while the other one is using it?

Traceback (most recent call last):
  File "[BindCraft_path]/bindcraft.py", line 396, in <module>
    failure_df = pd.read_csv(failure_csv)
  File "[miniforge3_path]/envs/BindCraft_old/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 1026, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "[miniforge3_path]/envs/BindCraft_old/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 620, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "[miniforge3_path]/envs/BindCraft_old/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 1620, in __init__
    self._engine = self._make_engine(f, self.engine)
  File "[miniforge3_path]/envs/BindCraft_old/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 1898, in _make_engine
    return mapping[engine](f, **self.options)
  File "[miniforge3_path]/envs/BindCraft_old/lib/python3.10/site-packages/pandas/io/parsers/c_parser_wrapper.py", line 93, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "parsers.pyx", line 581, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at bindcraft.py line 396, where pandas reads failure_csv, and inspect how that file is created and accessed when parallel runs share an output folder. Reproduce the shared-folder scenario if possible and determine what behavior should occur when the CSV is temporarily empty; done means the intermittent EmptyDataError is prevented or handled and the parallel workflow remains usable.

Written by the indexing model from the issue text.

Assessment

Tech stack
pandas, python
Domain
data, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.