mampok 3.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. mampok-3.0.4/.gitignore +40 -0
  2. mampok-3.0.4/.gitlab-ci.yml +96 -0
  3. mampok-3.0.4/LICENSE +21 -0
  4. mampok-3.0.4/PKG-INFO +114 -0
  5. mampok-3.0.4/README.md +94 -0
  6. mampok-3.0.4/docs/Makefile +22 -0
  7. mampok-3.0.4/docs/make.bat +36 -0
  8. mampok-3.0.4/docs/source/_static/custom.css +142 -0
  9. mampok-3.0.4/docs/source/advanced.rst +289 -0
  10. mampok-3.0.4/docs/source/commands.rst +934 -0
  11. mampok-3.0.4/docs/source/concepts.rst +197 -0
  12. mampok-3.0.4/docs/source/conf.py +73 -0
  13. mampok-3.0.4/docs/source/configuration.rst +290 -0
  14. mampok-3.0.4/docs/source/getting_started.rst +176 -0
  15. mampok-3.0.4/docs/source/images/LOGO.png +0 -0
  16. mampok-3.0.4/docs/source/images/architecture_overview.png +0 -0
  17. mampok-3.0.4/docs/source/images/config_structure.png +0 -0
  18. mampok-3.0.4/docs/source/images/deploy_sequence.png +0 -0
  19. mampok-3.0.4/docs/source/images/mamplan_mamplate_flow.png +0 -0
  20. mampok-3.0.4/docs/source/index.rst +66 -0
  21. mampok-3.0.4/docs/source/mamplans.rst +362 -0
  22. mampok-3.0.4/docs/source/mamplates.rst +414 -0
  23. mampok-3.0.4/docs/source/python_api.rst +316 -0
  24. mampok-3.0.4/docs/source/selection.rst +162 -0
  25. mampok-3.0.4/docs/uml_classes.png +0 -0
  26. mampok-3.0.4/docs/uml_packages.png +0 -0
  27. mampok-3.0.4/examples/mamplates/cellxgene-mamplate.json +35 -0
  28. mampok-3.0.4/examples/mamplates/sleep-init-mamplate.json +16 -0
  29. mampok-3.0.4/examples/my-cellxgene-project-mamplan.json +29 -0
  30. mampok-3.0.4/markdowns/auth_503_findings.md +114 -0
  31. mampok-3.0.4/markdowns/awscli_vs_rclone.md +276 -0
  32. mampok-3.0.4/markdowns/direct_s3_access.md +386 -0
  33. mampok-3.0.4/markdowns/lifetime_analysis.md +204 -0
  34. mampok-3.0.4/markdowns/lifetime_impl.md +381 -0
  35. mampok-3.0.4/markdowns/shprojects-update.md +362 -0
  36. mampok-3.0.4/markdowns/stop-progress-track.md +341 -0
  37. mampok-3.0.4/pyproject.toml +46 -0
  38. mampok-3.0.4/src/mampok/__init__.py +8 -0
  39. mampok-3.0.4/src/mampok/config/__init__.py +5 -0
  40. mampok-3.0.4/src/mampok/config/config.py +272 -0
  41. mampok-3.0.4/src/mampok/config/schemas/config_schema.json +149 -0
  42. mampok-3.0.4/src/mampok/interfaces/__init__.py +1 -0
  43. mampok-3.0.4/src/mampok/interfaces/api.py +523 -0
  44. mampok-3.0.4/src/mampok/interfaces/cli.py +1820 -0
  45. mampok-3.0.4/src/mampok/kubernetes/__init__.py +16 -0
  46. mampok-3.0.4/src/mampok/kubernetes/builder.py +613 -0
  47. mampok-3.0.4/src/mampok/kubernetes/client.py +342 -0
  48. mampok-3.0.4/src/mampok/kubernetes/config.py +203 -0
  49. mampok-3.0.4/src/mampok/kubernetes/manager.py +755 -0
  50. mampok-3.0.4/src/mampok/kubernetes/validator.py +88 -0
  51. mampok-3.0.4/src/mampok/mamplan/__init__.py +6 -0
  52. mampok-3.0.4/src/mampok/mamplan/base.py +405 -0
  53. mampok-3.0.4/src/mampok/mamplan/mamplan.py +119 -0
  54. mampok-3.0.4/src/mampok/mamplan/mamplate.py +83 -0
  55. mampok-3.0.4/src/mampok/mamplan/metadata.py +96 -0
  56. mampok-3.0.4/src/mampok/mamplan/schemas/mamplan_schema.json +180 -0
  57. mampok-3.0.4/src/mampok/mamplan/schemas/mamplate_schema.json +256 -0
  58. mampok-3.0.4/src/mampok/mamplan/schemas/shmamplan_schema.json +45 -0
  59. mampok-3.0.4/src/mampok/mamplan/shmamplan.py +104 -0
  60. mampok-3.0.4/src/mampok/mampok/__init__.py +5 -0
  61. mampok-3.0.4/src/mampok/mampok/mampok.py +701 -0
  62. mampok-3.0.4/src/mampok/s3/__init__.py +5 -0
  63. mampok-3.0.4/src/mampok/s3/s3.py +205 -0
  64. mampok-3.0.4/tests/conftest.py +6 -0
  65. mampok-3.0.4/tests/test_config/__init__.py +0 -0
  66. mampok-3.0.4/tests/test_config/test_config.py +358 -0
  67. mampok-3.0.4/tests/test_interfaces/__init__.py +1 -0
  68. mampok-3.0.4/tests/test_interfaces/test_api.py +514 -0
  69. mampok-3.0.4/tests/test_interfaces/test_cli.py +339 -0
  70. mampok-3.0.4/tests/test_kubernetes/__init__.py +1 -0
  71. mampok-3.0.4/tests/test_kubernetes/conftest.py +63 -0
  72. mampok-3.0.4/tests/test_kubernetes/test_builder.py +1126 -0
  73. mampok-3.0.4/tests/test_kubernetes/test_client.py +215 -0
  74. mampok-3.0.4/tests/test_kubernetes/test_manager.py +542 -0
  75. mampok-3.0.4/tests/test_mamplan/__init__.py +1 -0
  76. mampok-3.0.4/tests/test_mamplan/test_mamplan.py +795 -0
  77. mampok-3.0.4/tests/test_mamplan/test_metadata.py +151 -0
  78. mampok-3.0.4/tests/test_mampok/__init__.py +1 -0
  79. mampok-3.0.4/tests/test_mampok/conftest.py +145 -0
  80. mampok-3.0.4/tests/test_mampok/test_mampok.py +534 -0
  81. mampok-3.0.4/tests/test_s3/__init__.py +1 -0
  82. mampok-3.0.4/tests/test_s3/test_s3.py +260 -0
  83. mampok-3.0.4/tools/archive_old_mamplans.py +190 -0
  84. mampok-3.0.4/tools/copy_downloads_folders.py +162 -0
  85. mampok-3.0.4/tools/find_url_changes.py +206 -0
  86. mampok-3.0.4/tools/fix_mamplan_auth.py +239 -0
  87. mampok-3.0.4/tools/update_lifetime.py +73 -0
  88. mampok-3.0.4/tools/url_changes.csv +47 -0
  89. mampok-3.0.4/tools/url_changes.tsv +47 -0
  90. mampok-3.0.4/tst1-mamplan.json +34 -0
@@ -0,0 +1,40 @@
1
+ # Python
2
+ __pycache__/
3
+ *.pyc
4
+ *.py[cod]
5
+ *.pyo
6
+ *.pyd
7
+ .Python
8
+ *.egg-info/
9
+ dist/
10
+ build/
11
+ *.egg
12
+
13
+ # Virtual environments
14
+ .venv/
15
+ venv/
16
+ env/
17
+
18
+ # Distribution / packaging
19
+ *.whl
20
+ *.tar.gz
21
+
22
+ # Testing
23
+ .pytest_cache/
24
+ .coverage
25
+ htmlcov/
26
+ .tox/
27
+
28
+ # IDEs
29
+ .idea/
30
+ .vscode/
31
+ *.swp
32
+ *.swo
33
+
34
+ # OS
35
+ .DS_Store
36
+ Thumbs.db
37
+
38
+ # Mampok-specific
39
+ *.log
40
+ mampok_log_*.yml
@@ -0,0 +1,96 @@
1
+ variables:
2
+ GIT_SUBMODULE_STRATEGY: normal
3
+
4
+ stages: # List of stages for jobs, and their order of execution
5
+ - pages
6
+
7
+ # Build documentation
8
+ build-pages:
9
+ image: python:3.12
10
+ stage: pages
11
+ script:
12
+ - apt-get update -qq && apt-get install -qq -y pandoc # system install of pandoc is needed
13
+ - pip install --upgrade pip # carsten 20251208: just to remove warning; no other effect?
14
+ - pip install "sphinx<9" sphinx-rtd-theme sphinx-toolbox myst_parser nbsphinx nbsphinx_link sphinx-design sphinxcontrib-youtube sphinxcontrib.images
15
+ - cd docs
16
+ - make html
17
+ artifacts:
18
+ paths:
19
+ - docs/build/html/
20
+ rules:
21
+ - if: $CI_COMMIT_BRANCH == "main" # always for commits to main
22
+ - if: $CI_COMMIT_BRANCH == "dev" # always for commits to dev
23
+ - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "dev"
24
+ when: never # but not again for any merge requests coming from dev
25
+ - when: manual # otherwise manual
26
+ allow_failure: True # manual is not required
27
+
28
+ # Deploy pages for a MR - needs to be separate from deploy-pages-commit due to
29
+ # $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_BRANCH
30
+ deploy-pages-MR:
31
+ stage: pages
32
+ needs:
33
+ - job: build-pages
34
+ artifacts: True
35
+ inherit:
36
+ default: false
37
+ environment:
38
+ name: pages/$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
39
+ url: "https://loosolab.pages.gwdg.de/-/software/mampok_v2/-/jobs/$CI_JOB_ID/artifacts/docs/build/html/index.html"
40
+ artifacts:
41
+ paths:
42
+ - docs/build/html/
43
+ script:
44
+ - ls -l docs/
45
+ - echo "deploy"
46
+ artifacts:
47
+ paths:
48
+ - docs/build/html/
49
+ rules:
50
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != "dev" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != "main" # dev/main are built automatically
51
+ allow_failure: True
52
+
53
+ # Deploy pages for a commit without a MR
54
+ deploy-pages-commit:
55
+ stage: pages
56
+ needs:
57
+ - job: build-pages
58
+ artifacts: True
59
+ inherit:
60
+ default: false
61
+ environment:
62
+ name: pages/$CI_COMMIT_BRANCH
63
+ url: "https://loosolab.pages.gwdg.de/-/software/mampok_v2/-/jobs/$CI_JOB_ID/artifacts/docs/build/html/index.html"
64
+ script:
65
+ - ls -l docs/
66
+ - echo "deploy" #mv docs/build/html/ public/
67
+ artifacts:
68
+ paths:
69
+ - docs/build/html/
70
+ rules:
71
+ - if: $CI_PIPELINE_SOURCE != "merge_request_event"
72
+ allow_failure: True
73
+
74
+ # Deploy documentation to public pages if it was the main branch
75
+ pages:
76
+ stage: pages
77
+ needs:
78
+ - job: build-pages
79
+ artifacts: True
80
+ inherit:
81
+ default: false
82
+ script:
83
+ - mv docs/build/html/ public/
84
+ artifacts:
85
+ paths:
86
+ - public
87
+ rules:
88
+ - if: $CI_COMMIT_BRANCH == "main" # after accepted MR to main
89
+ allow_failure: False # main not allowed to fail
90
+
91
+
92
+
93
+
94
+
95
+
96
+
mampok-3.0.4/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Loosolab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
mampok-3.0.4/PKG-INFO ADDED
@@ -0,0 +1,114 @@
1
+ Metadata-Version: 2.4
2
+ Name: mampok
3
+ Version: 3.0.4
4
+ Summary: Kubernetes deployment manager for bioinformatics tools
5
+ Author-email: Jasmin Walter <Jasmin.Walter@mpi-bn.mpg.de>, Noah Knoppik <Noah.Knoppik@mpi-bn.mpg.de>, Philipp Goymann <Philipp.Goymann@mpi-bn.mpg.de>
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.11
8
+ Requires-Dist: boto3
9
+ Requires-Dist: jsonschema
10
+ Requires-Dist: kubernetes<36.0.0
11
+ Requires-Dist: packaging
12
+ Requires-Dist: pyjwt
13
+ Requires-Dist: pyyaml
14
+ Requires-Dist: referencing
15
+ Requires-Dist: typer
16
+ Provides-Extra: dev
17
+ Requires-Dist: pytest; extra == 'dev'
18
+ Requires-Dist: pytest-cov; extra == 'dev'
19
+ Description-Content-Type: text/markdown
20
+
21
+ <p align="center">
22
+ <img width=400 src="https://raw.githubusercontent.com/loosolab/MAMPOK/main/docs/source/images/LOGO.png">
23
+ </p>
24
+
25
+ [![Release](https://img.shields.io/github/v/release/loosolab/MAMPOK)](https://github.com/loosolab/MAMPOK/releases)
26
+ [![PyPI](https://img.shields.io/pypi/v/mampok)](https://pypi.org/project/mampok/)
27
+ [![Documentation](https://img.shields.io/badge/documentation-online-blue)](https://loosolab.pages.gwdg.de/software/mampok_v2/)
28
+
29
+ **Mampok** (**Ma**naging **M**ultiple **P**rojects **O**n **K**ubernetes) deploys
30
+ containerized bioinformatics tools — Cellxgene, Jupyter, RStudio, IGV, and more — on a
31
+ Kubernetes cluster backed by S3-compatible object storage. You describe your project in a
32
+ JSON file (a *Mamplan*); Mampok handles S3 uploads, Kubernetes resource creation, pod
33
+ readiness checks, and lifecycle management.
34
+
35
+ For more information about Mampok, please see the [documentation](https://loosolab.pages.gwdg.de/software/mampok_v2/).
36
+
37
+ ## How to install
38
+
39
+ ### Via Python package
40
+
41
+ Mampok is published in the Python Package Index (PyPI) under the name [mampok](https://pypi.org/project/mampok/).
42
+ It can be installed with the following command:
43
+
44
+ ```bash
45
+ pip install mampok
46
+ ```
47
+
48
+ ### Via repository
49
+
50
+ You can install Mampok directly from the repository with the following commands:
51
+
52
+ 1. Clone the repository:
53
+
54
+ ```bash
55
+ git clone https://github.com/loosolab/MAMPOK
56
+ ```
57
+
58
+ 2. Move to the new repository directory:
59
+
60
+ ```bash
61
+ cd MAMPOK
62
+ ```
63
+
64
+ 3. Install:
65
+
66
+ ```bash
67
+ pip install .
68
+ ```
69
+
70
+ ## Quick start
71
+
72
+ **1. Create a config file** (pass its path to every command via `--config`):
73
+
74
+ ```json
75
+ {
76
+ "cluster": {
77
+ "MY_CLUSTER": {
78
+ "host": "ingress.example.com",
79
+ "namespace": "mampok",
80
+ "kubeconfig_path": "/home/user/.kube/my-cluster-config"
81
+ }
82
+ },
83
+ "s3": {
84
+ "endpoint": "https://s3.example.com",
85
+ "access_key": "my-access-key",
86
+ "secret_key": "my-secret-key",
87
+ "secretname": "s3-credentials",
88
+ "prefix": "mampok"
89
+ },
90
+ "mamplates_path": "/path/to/mamplates/",
91
+ "lifetime_days": 30,
92
+ "mampok_version": ">=2.0.0,<3.0.0"
93
+ }
94
+ ```
95
+
96
+ **2. Create a Mamplan:**
97
+
98
+ ```bash
99
+ mampok create-mamplan \
100
+ --project-id my-project \
101
+ --tool cellxgene \
102
+ --cluster MY_CLUSTER \
103
+ --owner jdoe \
104
+ --datatype scRNA-seq \
105
+ --files data.h5ad \
106
+ --output ~/mamplans/ \
107
+ --config /path/to/config.json
108
+ ```
109
+
110
+ **3. Deploy:**
111
+
112
+ ```bash
113
+ mampok deploy ~/mamplans/my-project-mamplan.json --config /path/to/config.json
114
+ ```
mampok-3.0.4/README.md ADDED
@@ -0,0 +1,94 @@
1
+ <p align="center">
2
+ <img width=400 src="https://raw.githubusercontent.com/loosolab/MAMPOK/main/docs/source/images/LOGO.png">
3
+ </p>
4
+
5
+ [![Release](https://img.shields.io/github/v/release/loosolab/MAMPOK)](https://github.com/loosolab/MAMPOK/releases)
6
+ [![PyPI](https://img.shields.io/pypi/v/mampok)](https://pypi.org/project/mampok/)
7
+ [![Documentation](https://img.shields.io/badge/documentation-online-blue)](https://loosolab.pages.gwdg.de/software/mampok_v2/)
8
+
9
+ **Mampok** (**Ma**naging **M**ultiple **P**rojects **O**n **K**ubernetes) deploys
10
+ containerized bioinformatics tools — Cellxgene, Jupyter, RStudio, IGV, and more — on a
11
+ Kubernetes cluster backed by S3-compatible object storage. You describe your project in a
12
+ JSON file (a *Mamplan*); Mampok handles S3 uploads, Kubernetes resource creation, pod
13
+ readiness checks, and lifecycle management.
14
+
15
+ For more information about Mampok, please see the [documentation](https://loosolab.pages.gwdg.de/software/mampok_v2/).
16
+
17
+ ## How to install
18
+
19
+ ### Via Python package
20
+
21
+ Mampok is published in the Python Package Index (PyPI) under the name [mampok](https://pypi.org/project/mampok/).
22
+ It can be installed with the following command:
23
+
24
+ ```bash
25
+ pip install mampok
26
+ ```
27
+
28
+ ### Via repository
29
+
30
+ You can install Mampok directly from the repository with the following commands:
31
+
32
+ 1. Clone the repository:
33
+
34
+ ```bash
35
+ git clone https://github.com/loosolab/MAMPOK
36
+ ```
37
+
38
+ 2. Move to the new repository directory:
39
+
40
+ ```bash
41
+ cd MAMPOK
42
+ ```
43
+
44
+ 3. Install:
45
+
46
+ ```bash
47
+ pip install .
48
+ ```
49
+
50
+ ## Quick start
51
+
52
+ **1. Create a config file** (pass its path to every command via `--config`):
53
+
54
+ ```json
55
+ {
56
+ "cluster": {
57
+ "MY_CLUSTER": {
58
+ "host": "ingress.example.com",
59
+ "namespace": "mampok",
60
+ "kubeconfig_path": "/home/user/.kube/my-cluster-config"
61
+ }
62
+ },
63
+ "s3": {
64
+ "endpoint": "https://s3.example.com",
65
+ "access_key": "my-access-key",
66
+ "secret_key": "my-secret-key",
67
+ "secretname": "s3-credentials",
68
+ "prefix": "mampok"
69
+ },
70
+ "mamplates_path": "/path/to/mamplates/",
71
+ "lifetime_days": 30,
72
+ "mampok_version": ">=2.0.0,<3.0.0"
73
+ }
74
+ ```
75
+
76
+ **2. Create a Mamplan:**
77
+
78
+ ```bash
79
+ mampok create-mamplan \
80
+ --project-id my-project \
81
+ --tool cellxgene \
82
+ --cluster MY_CLUSTER \
83
+ --owner jdoe \
84
+ --datatype scRNA-seq \
85
+ --files data.h5ad \
86
+ --output ~/mamplans/ \
87
+ --config /path/to/config.json
88
+ ```
89
+
90
+ **3. Deploy:**
91
+
92
+ ```bash
93
+ mampok deploy ~/mamplans/my-project-mamplan.json --config /path/to/config.json
94
+ ```
@@ -0,0 +1,22 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
21
+
22
+
@@ -0,0 +1,36 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
36
+
@@ -0,0 +1,142 @@
1
+ .red {
2
+ color:red;
3
+ }
4
+
5
+ .blue {
6
+ color:blue;
7
+ }
8
+
9
+ /* Table appearance */
10
+ .wy-table-responsive table td, .wy-table-responsive table th {
11
+ /* !important prevents the common CSS stylesheets from
12
+ overriding this as on RTD they are loaded after this stylesheet */
13
+ white-space: normal !important;
14
+ }
15
+
16
+ /* disabled 20260223 to test fixing missing scroll bar in table; see "FEATURE-COUNT (RNA-Seq only)" table */
17
+ /* .wy-table-responsive {
18
+ overflow: visible !important;
19
+ } */
20
+
21
+
22
+ /* Custom table class with reduced spacings */
23
+ .small-table1 {
24
+ /* Extend the wy-table-responsive class */
25
+ @extend .wy-table-responsive;
26
+
27
+ font-size: 16px !important; /* Table title */
28
+
29
+ td, td p {
30
+ font-size: 8px !important;
31
+ margin: 0; /* Remove extra spacing */
32
+ word-break: break-word; /* break long words if needed */
33
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
34
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
35
+ }
36
+
37
+ th {
38
+ font-size: 32px !important;
39
+ font-weight: normal; /* Optional: Reduce boldness */
40
+ word-break: break-word; /* break long words if needed */
41
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
42
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
43
+ }
44
+ }
45
+
46
+ /* Custom table class with reduced spacing */
47
+ .small-table2 {
48
+ /* Extend the wy-table-responsive class */
49
+ @extend .wy-table-responsive;
50
+
51
+ font-size: 16px !important; /* Table title */
52
+
53
+ td, td p {
54
+ font-size: 10px !important;
55
+ margin: 0; /* Remove extra spacing */
56
+ word-break: break-word; /* break long words if needed */
57
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
58
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
59
+ }
60
+
61
+ th {
62
+ font-size: 32px !important;
63
+ font-weight: normal; /* Optional: Reduce boldness */
64
+ word-break: break-word; /* break long words if needed */
65
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
66
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
67
+ }
68
+ }
69
+
70
+
71
+ /* Custom table class with reduced spacing */
72
+ .small-table3 {
73
+ /* Extend the wy-table-responsive class */
74
+ @extend .wy-table-responsive;
75
+
76
+ font-size: 16px !important; /* Table title */
77
+
78
+ td, td p {
79
+ font-size: 12px !important;
80
+ margin: 0; /* Remove extra spacing */
81
+ word-break: break-word; /* break long words if needed */
82
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
83
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
84
+ }
85
+
86
+ th {
87
+ font-size: 32px !important;
88
+ font-weight: normal; /* Optional: Reduce boldness */
89
+ word-break: break-word; /* break long words if needed */
90
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
91
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
92
+ }
93
+ }
94
+
95
+
96
+ /* Custom table class with reduced spacing */
97
+ .small-table4 {
98
+ /* Extend the wy-table-responsive class */
99
+ @extend .wy-table-responsive;
100
+
101
+ font-size: 16px !important; /* Table title */
102
+
103
+ td, td p {
104
+ font-size: 14px !important;
105
+ margin: 0; /* Remove extra spacing */
106
+ word-break: break-word; /* break long words if needed */
107
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
108
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
109
+ }
110
+
111
+ th {
112
+ font-size: 32px !important;
113
+ font-weight: normal; /* Optional: Reduce boldness */
114
+ word-break: break-word; /* break long words if needed */
115
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
116
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
117
+ }
118
+ }
119
+
120
+ /* Custom table class with reduced spacing */
121
+ .small-table5 {
122
+ /* Extend the wy-table-responsive class */
123
+ @extend .wy-table-responsive;
124
+
125
+ font-size: 16px !important; /* Table title */
126
+
127
+ td, td p {
128
+ font-size: 16px !important;
129
+ margin: 0; /* Remove extra spacing */
130
+ word-break: break-word; /* break long words if needed */
131
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
132
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
133
+ }
134
+
135
+ th {
136
+ font-size: 32px !important;
137
+ font-weight: normal; /* Optional: Reduce boldness */
138
+ word-break: break-word; /* break long words if needed */
139
+ overflow-wrap: anywhere; /* handle very long tokens/URLs */
140
+ padding: 0.1em 0.2em !important; /* Adjust these values as needed */
141
+ }
142
+ }