diff --git a/.github/workflows/apptainer.yml b/.github/workflows/apptainer.yml index d245ab5..0dd19e3 100644 --- a/.github/workflows/apptainer.yml +++ b/.github/workflows/apptainer.yml @@ -16,7 +16,7 @@ jobs: strategy: max-parallel: 5 matrix: - python: [3.8, 3.9, '3.10'] + python: ['3.11'] fail-fast: false @@ -52,6 +52,6 @@ jobs: - name: testing run: | - sequana_multicov --input-directory test/data/ --use-apptainer --reference test/data/JB409847.fa && cd multicov && sh multicov.sh + sequana_multicov --input-directory test/data/ --apptainer-prefix ~/images --reference-file test/data/JB409847.fa --input-pattern "*7.bed" && cd multicov && sh multicov.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 198f05d..f80dba3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: strategy: max-parallel: 5 matrix: - python: [3.8, 3.9, '3.10'] + python: ['3.9', '3.10', '3.11'] fail-fast: false diff --git a/pyproject.toml b/pyproject.toml index 060d3d7..b05bb1e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,9 +19,9 @@ classifiers = [ "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: POSIX :: Linux", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Information Analysis", @@ -33,11 +33,11 @@ packages = [ [tool.poetry.dependencies] -python = ">=3.8,<4.0" -sequana = ">=0.15.1" -sequana_pipetools = ">=0.12.4" -click-completion = "^0.5.2" -sequana-wrappers = "^26.3.20" +python = ">=3.9,<4.0" +sequana = ">=0.17" +sequana_pipetools = ">=1.4.0" +click-completion = ">=0.5.2" +sequana-wrappers = ">=26.3.21" [tool.poetry.scripts] diff --git a/sequana_pipelines/multicov/multicov.rules b/sequana_pipelines/multicov/multicov.rules index 4d876cd..c6996bc 100644 --- a/sequana_pipelines/multicov/multicov.rules +++ b/sequana_pipelines/multicov/multicov.rules @@ -143,9 +143,57 @@ onsuccess: shell("chmod -R g+w .") + from sequana.modules_report.summary import SequanaReport + from sequana import logger + logger.setLevel("INFO") + + manager.teardown() + + # General info table + from sequana_pipelines.multicov import __version__ + df_general = pd.DataFrame({ + "samples": len(manager.samples), + "sequana_multicov_version": __version__, + }, index=["summary"]) + datatable = DataTable(df_general.T, "general", index=True) + datatable.datatable.datatable_options = { + "paging": "false", + "bFilter": "false", + "bInfo": "false", + "bSort": "false", + } + js_general = datatable.create_javascript_function() + html_general = datatable.create_datatable(style="width:30%") + + # Per-sample links table + df_samples = pd.DataFrame({ + "sample": list(manager.samples.keys()), + "link": [f"{s}/sequana_coverage/sequana_coverage.html" for s in manager.samples], + }) + datatable = DataTable(df_samples, "samples", index=False) + datatable.datatable.datatable_options = { + "paging": "false", + "buttons": ["copy", "csv"], + "bSort": "true", + "dom": "BRSPfrti", + } + datatable.datatable.set_links_to_column("link", "sample") + js_samples = datatable.create_javascript_function() + html_samples = datatable.create_datatable() + + contents = f""" +