Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snakemake v8.25.0 error #1

Open
hschult opened this issue Nov 1, 2024 · 2 comments
Open

Snakemake v8.25.0 error #1

hschult opened this issue Nov 1, 2024 · 2 comments
Assignees

Comments

@hschult
Copy link
Collaborator

hschult commented Nov 1, 2024

DENIS hits an error with snakemake v8.25.0:

rule all:
    input:
        output_files
    message: f"Pipeline done. Started {start_time}"    

^ Seems to be from line 54 of the Snakefile.

Downgrading snakemake to v7.3.7 resolves the error.

@hschult hschult self-assigned this Nov 1, 2024
@CebolaLab
Copy link

Workflow exits with the following error:

Running on a PBS system:

Building DAG of jobs...
Creating conda environment environments/bigwig.yml...
Downloading and installing remote packages.
Environment for /xxxxxxxxx/denis/snakefiles/../environments/bigwig.yml created (location: .snakemake/conda/8b761192e7c474111471a21e65fd14b7)
Creating conda environment environments/motif.yml...
Downloading and installing remote packages.
Environment for /xxxxxxxx/denis/snakefiles/../environments/motif.yml created (location: .snakemake/conda/024f814690ea462e2d5954805d1047d6)
Using shell: /bin/bash
Provided cores: 64
Rules claiming more threads will be scaled down.
Traceback (most recent call last):
  File "/xxxxxxxx/anaconda3/envs/snakemake-denis/lib/python3.10/site-packages/snakemake/__init__.py", line 722, in snakemake
    success = workflow.execute(
  File "/xxxxxxxx/anaconda3/envs/snakemake-denis/lib/python3.10/site-packages/snakemake/workflow.py", line 1092, in execute
    logger.run_info("\n".join(dag.stats()))
  File "/xxxxxxxx/anaconda3/envs/snakemake-denis/lib/python3.10/site-packages/snakemake/dag.py", line 2248, in stats
    yield tabulate(rows, headers="keys")
  File "/xxxxxxxx/anaconda3/envs/snakemake-denis/lib/python3.10/site-packages/tabulate/__init__.py", line 2048, in tabulate
    list_of_lists, headers = _normalize_tabular_data(
  File "/xxxxxxxx/anaconda3/envs/snakemake-denis/lib/python3.10/site-packages/tabulate/__init__.py", line 1471, in _normalize_tabular_data
    rows = list(map(lambda r: r if _is_separating_line(r) else list(r), rows))
  File "/xxxxxxxx/envs/snakemake-denis/lib/python3.10/site-packages/tabulate/__init__.py", line 1471, in <lambda>
    rows = list(map(lambda r: r if _is_separating_line(r) else list(r), rows))
  File "/xxxxxxxx/anaconda3/envs/snakemake-denis/lib/python3.10/site-packages/tabulate/__init__.py", line 107, in _is_separating_line
    (len(row) >= 1 and row[0] == SEPARATING_LINE)
  File "/xxxxxxxx/anaconda3/envs/snakemake-denis/lib/python3.10/site-packages/snakemake/rules.py", line 1213, in __eq__
    return self.name == other.name and self.output == other.output
AttributeError: 'str' object has no attribute 'name'

Using conda environment:

name: snakemake-denis
channels:
  - conda-forge
  - mathieu
  - bioconda
  - r
  - imperial-college-research-computing
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - aioeasywebdav=2.4.0=pyha770c72_0
  - aiohappyeyeballs=2.4.3=pyhd8ed1ab_0
  - aiohttp=3.10.10=py310h89163eb_0
  - aiosignal=1.3.1=pyhd8ed1ab_0
  - amply=0.1.6=pyhd8ed1ab_0
  - annotated-types=0.7.0=pyhd8ed1ab_0
  - appdirs=1.4.4=pyh9f0ad1d_0
  - async-timeout=4.0.3=pyhd8ed1ab_0
  - attrs=24.2.0=pyh71513ae_0
  - bcrypt=4.2.0=py310h505e2c1_1
  - boto3=1.35.52=pyhd8ed1ab_0
  - botocore=1.35.53=pyge310_1234567_0
  - brotli-python=1.1.0=py310hf71b8c6_2
  - bzip2=1.0.8=h4bc722e_7
  - c-ares=1.34.2=heb4867d_0
  - ca-certificates=2024.8.30=hbcca054_0
  - cachetools=5.5.0=pyhd8ed1ab_0
  - certifi=2024.8.30=pyhd8ed1ab_0
  - cffi=1.17.1=py310h8deb56e_0
  - charset-normalizer=3.4.0=pyhd8ed1ab_0
  - click=8.1.7=unix_pyh707e725_0
  - coin-or-cbc=2.10.12=h8b142ea_1
  - coin-or-cgl=0.60.9=h1d3f3f2_0
  - coin-or-clp=1.17.10=h07f2a63_0
  - coin-or-osi=0.108.11=h6514dde_1
  - coin-or-utils=2.11.12=h99da652_1
  - coincbc=2.10.12=1_metapackage
  - colorama=0.4.6=pyhd8ed1ab_0
  - coloredlogs=15.0.1=pyhd8ed1ab_3
  - configargparse=1.7=pyhd8ed1ab_0
  - connection_pool=0.0.3=pyhd3deb0d_0
  - cryptography=43.0.3=py310h6c63255_0
  - datrie=0.8.2=py310ha75aee5_8
  - decorator=5.1.1=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - docutils=0.21.2=pyhd8ed1ab_0
  - dpath=2.2.0=pyha770c72_0
  - dropbox=11.36.2=pyhd8ed1ab_0
  - exceptiongroup=1.2.2=pyhd8ed1ab_0
  - filechunkio=1.8=py_2
  - filelock=3.16.1=pyhd8ed1ab_0
  - frozenlist=1.5.0=py310ha75aee5_0
  - ftputil=5.1.0=pyhd8ed1ab_0
  - gitdb=4.0.11=pyhd8ed1ab_0
  - gitpython=3.1.43=pyhd8ed1ab_0
  - google-api-core=2.22.0=pyhd8ed1ab_0
  - google-api-python-client=2.151.0=pyhff2d567_0
  - google-auth=2.35.0=pyhff2d567_0
  - google-auth-httplib2=0.2.0=pyhd8ed1ab_0
  - google-cloud-core=2.4.1=pyhd8ed1ab_0
  - google-cloud-storage=2.18.2=pyhff2d567_0
  - google-crc32c=1.1.2=py310hd027165_6
  - google-resumable-media=2.7.2=pyhd8ed1ab_1
  - googleapis-common-protos=1.65.0=pyhd8ed1ab_0
  - grpcio=1.67.1=py310h1a6248f_0
  - h2=4.1.0=pyhd8ed1ab_0
  - hpack=4.0.0=pyh9f0ad1d_0
  - httplib2=0.22.0=pyhd8ed1ab_0
  - humanfriendly=10.0=pyhd8ed1ab_6
  - hyperframe=6.0.1=pyhd8ed1ab_0
  - idna=3.10=pyhd8ed1ab_0
  - importlib_resources=6.4.5=pyhd8ed1ab_0
  - iniconfig=2.0.0=pyhd8ed1ab_0
  - jinja2=3.1.4=pyhd8ed1ab_0
  - jmespath=1.0.1=pyhd8ed1ab_0
  - jsonschema=4.23.0=pyhd8ed1ab_0
  - jsonschema-specifications=2024.10.1=pyhd8ed1ab_0
  - jupyter_core=5.7.2=pyh31011fe_1
  - ld_impl_linux-64=2.43=h712a8e2_2
  - libabseil=20240722.0=cxx17_h5888daf_1
  - libblas=3.9.0=25_linux64_openblas
  - libcblas=3.9.0=25_linux64_openblas
  - libcrc32c=1.1.2=h9c3ff4c_0
  - libffi=3.4.2=h7f98852_5
  - libgcc=14.2.0=h77fa898_1
  - libgcc-ng=14.2.0=h69a702a_1
  - libgfortran=14.2.0=h69a702a_1
  - libgfortran-ng=14.2.0=h69a702a_1
  - libgfortran5=14.2.0=hd5240d6_1
  - libgomp=14.2.0=h77fa898_1
  - libgrpc=1.67.1=hc2c308b_0
  - liblapack=3.9.0=25_linux64_openblas
  - liblapacke=3.9.0=25_linux64_openblas
  - libnsl=2.0.1=hd590300_0
  - libopenblas=0.3.28=pthreads_h94d23a6_0
  - libprotobuf=5.28.2=h5b01275_0
  - libre2-11=2024.07.02=hbbce691_1
  - libsodium=1.0.20=h4ab18f5_0
  - libsqlite=3.47.0=hadc24fc_1
  - libstdcxx=14.2.0=hc0a3c3a_1
  - libstdcxx-ng=14.2.0=h4852527_1
  - libuuid=2.38.1=h0b41bf4_0
  - libxcrypt=4.4.36=hd590300_1
  - libzlib=1.3.1=hb9d3cd8_2
  - logmuse=0.2.8=pyhd8ed1ab_0
  - markdown-it-py=3.0.0=pyhd8ed1ab_0
  - markupsafe=3.0.2=py310h89163eb_0
  - mdurl=0.1.2=pyhd8ed1ab_0
  - multidict=6.1.0=py310h89163eb_1
  - nbformat=5.10.4=pyhd8ed1ab_0
  - ncurses=6.5=he02047a_1
  - numpy=2.1.2=py310hd6e36ab_0
  - oauth2client=4.1.3=pyhd8ed1ab_1
  - openssl=3.3.2=hb9d3cd8_0
  - packaging=24.1=pyhd8ed1ab_0
  - pandas=2.2.3=py310h5eaa309_1
  - paramiko=3.5.0=pyhd8ed1ab_0
  - pephubclient=0.4.4=pyhd8ed1ab_0
  - peppy=0.40.7=pyhd8ed1ab_1
  - pip=24.3.1=pyh8b19718_0
  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1
  - plac=1.4.3=pyhd8ed1ab_0
  - platformdirs=4.3.6=pyhd8ed1ab_0
  - pluggy=1.5.0=pyhd8ed1ab_0
  - ply=3.11=pyhd8ed1ab_2
  - prettytable=3.12.0=pyhd8ed1ab_0
  - propcache=0.2.0=py310ha75aee5_2
  - proto-plus=1.25.0=pyhd8ed1ab_0
  - protobuf=5.28.2=py310hf71b8c6_0
  - psutil=6.1.0=py310ha75aee5_0
  - pulp=2.7.0=py310hff52083_1
  - py=1.11.0=pyh6c4a22f_0
  - pyasn1=0.6.1=pyhd8ed1ab_1
  - pyasn1-modules=0.4.1=pyhd8ed1ab_0
  - pycparser=2.22=pyhd8ed1ab_0
  - pydantic=2.9.2=pyhd8ed1ab_0
  - pydantic-core=2.23.4=py310h505e2c1_0
  - pygments=2.18.0=pyhd8ed1ab_0
  - pynacl=1.5.0=py310ha75aee5_4
  - pyopenssl=24.2.1=pyhd8ed1ab_2
  - pyparsing=3.2.0=pyhd8ed1ab_1
  - pysftp=0.2.9=py_1
  - pysocks=1.7.1=pyha2e5f31_6
  - pytest=8.3.3=pyhd8ed1ab_0
  - python=3.10.15=h4a871b0_2_cpython
  - python-dateutil=2.9.0=pyhd8ed1ab_0
  - python-fastjsonschema=2.20.0=pyhd8ed1ab_0
  - python-irodsclient=2.1.0=pyhd8ed1ab_0
  - python-tzdata=2024.2=pyhd8ed1ab_0
  - python_abi=3.10=5_cp310
  - pytz=2024.1=pyhd8ed1ab_0
  - pyu2f=0.1.5=pyhd8ed1ab_0
  - pyyaml=6.0.2=py310ha75aee5_1
  - ratelimiter=1.2.0=pyhd8ed1ab_1003
  - re2=2024.07.02=h77b4e00_1
  - readline=8.2=h8228510_1
  - referencing=0.35.1=pyhd8ed1ab_0
  - requests=2.32.3=pyhd8ed1ab_0
  - retry=0.9.2=py_0
  - rich=13.9.3=pyhd8ed1ab_0
  - rpds-py=0.20.0=py310h505e2c1_1
  - rsa=4.9=pyhd8ed1ab_0
  - s3transfer=0.10.3=pyhd8ed1ab_0
  - setuptools=75.3.0=pyhd8ed1ab_0
  - setuptools-scm=8.1.0=pyhd8ed1ab_0
  - shellingham=1.5.4=pyhd8ed1ab_0
  - six=1.16.0=pyh6c4a22f_0
  - slacker=0.14.0=py_0
  - smart_open=7.0.5=pyhd8ed1ab_1
  - smmap=5.0.0=pyhd8ed1ab_0
  - snakemake=7.3.7=hdfd78af_0
  - snakemake-minimal=7.3.7=pyhdfd78af_0
  - stone=3.3.8=pyhd8ed1ab_0
  - stopit=1.1.2=py_0
  - tabulate=0.9.0=pyhd8ed1ab_1
  - tk=8.6.13=noxft_h4845f30_101
  - tomli=2.0.2=pyhd8ed1ab_0
  - toposort=1.10=pyhd8ed1ab_0
  - traitlets=5.14.3=pyhd8ed1ab_0
  - typer=0.12.5=pyhd8ed1ab_0
  - typer-slim=0.12.5=pyhd8ed1ab_0
  - typer-slim-standard=0.12.5=hd8ed1ab_0
  - typing-extensions=4.12.2=hd8ed1ab_0
  - typing_extensions=4.12.2=pyha770c72_0
  - tzdata=2024b=hc8b5060_0
  - ubiquerg=0.8.0=pyhd8ed1ab_0
  - uritemplate=4.1.1=pyhd8ed1ab_0
  - urllib3=2.2.3=pyhd8ed1ab_0
  - veracitools=0.1.3=py_0
  - wcwidth=0.2.13=pyhd8ed1ab_0
  - wheel=0.44.0=pyhd8ed1ab_0
  - wrapt=1.16.0=py310ha75aee5_1
  - xz=5.2.6=h166bdaf_0
  - yaml=0.2.5=h7f98852_2
  - yarl=1.16.0=py310ha75aee5_0
  - yte=1.5.4=pyha770c72_0
  - zipp=3.20.2=pyhd8ed1ab_0
  - zstandard=0.23.0=py310ha39cb0e_1
  - zstd=1.5.6=ha6fb4c9_0
prefix: /xxxxxxxx/anaconda3/envs/snakemake-denis

@hschult
Copy link
Collaborator Author

hschult commented Nov 12, 2024

Please excuse the wait time, this turned out to be three different issues at once, which resulted in a lot of trial and error on my side.

The first error did occur because of a missing new line at the end of my Snakefile. Older versions of Snakemake were fine with this but newer versions (e.g. Snakemake 8.25.0) are not. This is fixed and already on the main branch (#2).
The second error, which you reported for Snakemake 7.3.7 is a known bug caused by a dependency (see here). It can be manually fixed by installing tabulate=0.8.10 but is also fixed in Snakemake >=7.15.2. Upgrading Snakemake to 8.25.0 led me to the third bug, which is discussed here. From what I can tell, this was introduced with Snakemake 8 and unfortunately does not have a solution, yet. My recommendation is to use Snakemake >=7.15.2,<8.

Tldr: This pipeline is broken in Snakemake >=8. Use one installed with e.g. this: mamba install "snakemake>=7.15.2,<8".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants