karel-brinda / Phylign

Alignment against all pre-2019 bacteria on laptops within a few hours (former MOF-Search)
http://brinda.eu/mof
Other
25 stars 6 forks source link

LFS cluster mode: only snakemake 7.32.4 worked, 6.x or 8.x failed. #264

Open shenwei356 opened 7 months ago

shenwei356 commented 7 months ago

There are some API changes between snakemake versions.

With 8.5.2

snakemake: error: unrecognized arguments: --cluster=/homes/shenwei/.config/snakemake/lsf/lsf_submit.py --cluster-status=/homes/shenwei/.config/snakemake/lsf/lsf_status.py --cluster-cancel=/homes/shenwei/.config/snakemake/lsf/lsf_cancel.py

With 6.2.0

snakemake: error: unrecognized arguments: --cluster-cancel=lsf_cancel.py

With 7.0

Building DAG of jobs...
The code used to generate one or several output files has changed:
    To inspect which output files have changes, run 'snakemake --list-code-changes'.
    To trigger a re-run, use 'snakemake -R $(snakemake --list-code-changes)'.
The input used to generate one or several output files has changed:
    To inspect which output files have changes, run 'snakemake --list-input-changes'.
    To trigger a re-run, use 'snakemake -R $(snakemake --list-input-changes)'.
The params used to generate one or several output files has changed:
    To inspect which output files have changes, run 'snakemake --list-params-changes'.
    To trigger a re-run, use 'snakemake -R $(snakemake --list-params-changes)'.
Using shell: /usr/local/bin/bash
Provided cluster nodes: 8
Provided resources: max_download_threads=10000000, max_io_heavy_threads=10000000, max_ram_mb=1000000000
Traceback (most recent call last):
  File "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/site-packages/snakemake/__init__.py", line 714, in snakemake
    success = workflow.execute(
  File "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/site-packages/snakemake/workflow.py", line 1071, in execute
    logger.run_info("\n".join(dag.stats()))
  File "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/site-packages/snakemake/dag.py", line 2234, in stats
    yield tabulate(rows, headers="keys")
  File "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/site-packages/tabulate/__init__.py", line 2048, in tabulate
    list_of_lists, headers = _normalize_tabular_data(
  File "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/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 "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/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 "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/site-packages/tabulate/__init__.py", line 107, in _is_separating_line
    (len(row) >= 1 and row[0] == SEPARATING_LINE)
  File "/homes/shenwei/ws/app/miniconda3/envs/mof7/lib/python3.9/site-packages/snakemake/rules.py", line 1168, in __eq__
    return self.name == other.name and self.output == other.output
AttributeError: 'str' object has no attribute 'name'
make[1]: *** [Makefile:38: test] Error 1

Only 7.32.4 worked (I mean just without above API incompatibility errors)

karel-brinda commented 7 months ago

Thanks for the report. This seems to be affecting only the cluster subcommands, which @leoisl should know how to fix.