cellflow-tools 0.0.2__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 (99) hide show
  1. cellflow_tools-0.0.2/.codecov.yaml +18 -0
  2. cellflow_tools-0.0.2/.cruft.json +29 -0
  3. cellflow_tools-0.0.2/.editorconfig +18 -0
  4. cellflow_tools-0.0.2/.github/ISSUE_TEMPLATE/bug_report.yml +89 -0
  5. cellflow_tools-0.0.2/.github/ISSUE_TEMPLATE/config.yml +5 -0
  6. cellflow_tools-0.0.2/.github/ISSUE_TEMPLATE/feature_request.yml +11 -0
  7. cellflow_tools-0.0.2/.github/workflows/build.yaml +29 -0
  8. cellflow_tools-0.0.2/.github/workflows/lint.yml +54 -0
  9. cellflow_tools-0.0.2/.github/workflows/release.yml +29 -0
  10. cellflow_tools-0.0.2/.github/workflows/test.yaml +68 -0
  11. cellflow_tools-0.0.2/.gitignore +159 -0
  12. cellflow_tools-0.0.2/.pre-commit-config.yaml +19 -0
  13. cellflow_tools-0.0.2/.readthedocs.yaml +19 -0
  14. cellflow_tools-0.0.2/CHANGELOG.md +15 -0
  15. cellflow_tools-0.0.2/LICENSE +71 -0
  16. cellflow_tools-0.0.2/PKG-INFO +120 -0
  17. cellflow_tools-0.0.2/README.md +48 -0
  18. cellflow_tools-0.0.2/docs/Makefile +24 -0
  19. cellflow_tools-0.0.2/docs/_static/.gitkeep +0 -0
  20. cellflow_tools-0.0.2/docs/_static/css/custom.css +4 -0
  21. cellflow_tools-0.0.2/docs/_static/images/cellflow_light.png +0 -0
  22. cellflow_tools-0.0.2/docs/_templates/.gitkeep +0 -0
  23. cellflow_tools-0.0.2/docs/_templates/autosummary/class.rst +34 -0
  24. cellflow_tools-0.0.2/docs/conf.py +171 -0
  25. cellflow_tools-0.0.2/docs/contributing.rst +147 -0
  26. cellflow_tools-0.0.2/docs/developer.rst +20 -0
  27. cellflow_tools-0.0.2/docs/extensions/typed_returns.py +34 -0
  28. cellflow_tools-0.0.2/docs/index.rst +38 -0
  29. cellflow_tools-0.0.2/docs/installation.rst +22 -0
  30. cellflow_tools-0.0.2/docs/notebooks/example.ipynb +101 -0
  31. cellflow_tools-0.0.2/docs/notebooks/index.rst +8 -0
  32. cellflow_tools-0.0.2/docs/references.bib +88 -0
  33. cellflow_tools-0.0.2/docs/references.rst +7 -0
  34. cellflow_tools-0.0.2/docs/user/datasets.rst +8 -0
  35. cellflow_tools-0.0.2/docs/user/external.rst +8 -0
  36. cellflow_tools-0.0.2/docs/user/index.rst +17 -0
  37. cellflow_tools-0.0.2/docs/user/model.rst +8 -0
  38. cellflow_tools-0.0.2/docs/user/networks.rst +14 -0
  39. cellflow_tools-0.0.2/docs/user/plotting.rst +8 -0
  40. cellflow_tools-0.0.2/docs/user/preprocessing.rst +15 -0
  41. cellflow_tools-0.0.2/docs/user/solvers.rst +10 -0
  42. cellflow_tools-0.0.2/docs/user/training.rst +16 -0
  43. cellflow_tools-0.0.2/docs/user/utils.rst +8 -0
  44. cellflow_tools-0.0.2/pyproject.toml +340 -0
  45. cellflow_tools-0.0.2/src/cellflow/__init__.py +4 -0
  46. cellflow_tools-0.0.2/src/cellflow/_constants.py +4 -0
  47. cellflow_tools-0.0.2/src/cellflow/_logging.py +23 -0
  48. cellflow_tools-0.0.2/src/cellflow/_types.py +22 -0
  49. cellflow_tools-0.0.2/src/cellflow/data/__init__.py +15 -0
  50. cellflow_tools-0.0.2/src/cellflow/data/_data.py +205 -0
  51. cellflow_tools-0.0.2/src/cellflow/data/_dataloader.py +210 -0
  52. cellflow_tools-0.0.2/src/cellflow/data/_datamanager.py +937 -0
  53. cellflow_tools-0.0.2/src/cellflow/data/_utils.py +14 -0
  54. cellflow_tools-0.0.2/src/cellflow/datasets.py +69 -0
  55. cellflow_tools-0.0.2/src/cellflow/external/__init__.py +1 -0
  56. cellflow_tools-0.0.2/src/cellflow/external/_scvi.py +163 -0
  57. cellflow_tools-0.0.2/src/cellflow/external/_scvi_utils.py +154 -0
  58. cellflow_tools-0.0.2/src/cellflow/metrics/__init__.py +19 -0
  59. cellflow_tools-0.0.2/src/cellflow/metrics/_metrics.py +128 -0
  60. cellflow_tools-0.0.2/src/cellflow/model/__init__.py +3 -0
  61. cellflow_tools-0.0.2/src/cellflow/model/_cellflow.py +808 -0
  62. cellflow_tools-0.0.2/src/cellflow/model/_utils.py +32 -0
  63. cellflow_tools-0.0.2/src/cellflow/networks/__init__.py +19 -0
  64. cellflow_tools-0.0.2/src/cellflow/networks/_set_encoders.py +673 -0
  65. cellflow_tools-0.0.2/src/cellflow/networks/_velocity_field.py +277 -0
  66. cellflow_tools-0.0.2/src/cellflow/plotting/__init__.py +3 -0
  67. cellflow_tools-0.0.2/src/cellflow/plotting/_plotting.py +172 -0
  68. cellflow_tools-0.0.2/src/cellflow/plotting/_utils.py +95 -0
  69. cellflow_tools-0.0.2/src/cellflow/preprocessing/__init__.py +3 -0
  70. cellflow_tools-0.0.2/src/cellflow/preprocessing/_gene_emb.py +371 -0
  71. cellflow_tools-0.0.2/src/cellflow/preprocessing/_pca.py +204 -0
  72. cellflow_tools-0.0.2/src/cellflow/preprocessing/_preprocessing.py +251 -0
  73. cellflow_tools-0.0.2/src/cellflow/preprocessing/_wknn.py +271 -0
  74. cellflow_tools-0.0.2/src/cellflow/solvers/__init__.py +4 -0
  75. cellflow_tools-0.0.2/src/cellflow/solvers/_genot.py +283 -0
  76. cellflow_tools-0.0.2/src/cellflow/solvers/_otfm.py +203 -0
  77. cellflow_tools-0.0.2/src/cellflow/training/__init__.py +24 -0
  78. cellflow_tools-0.0.2/src/cellflow/training/_callbacks.py +489 -0
  79. cellflow_tools-0.0.2/src/cellflow/training/_trainer.py +140 -0
  80. cellflow_tools-0.0.2/src/cellflow/training/_utils.py +0 -0
  81. cellflow_tools-0.0.2/src/cellflow/utils.py +63 -0
  82. cellflow_tools-0.0.2/src/cfp/__init__.py +1 -0
  83. cellflow_tools-0.0.2/tests/conftest.py +221 -0
  84. cellflow_tools-0.0.2/tests/data/test_cfsampler.py +127 -0
  85. cellflow_tools-0.0.2/tests/data/test_datamanager.py +416 -0
  86. cellflow_tools-0.0.2/tests/external/test_CFJaxSCVI.py +29 -0
  87. cellflow_tools-0.0.2/tests/model/test_cellflow.py +402 -0
  88. cellflow_tools-0.0.2/tests/networks/test_condencoder.py +72 -0
  89. cellflow_tools-0.0.2/tests/networks/test_velocityfield.py +43 -0
  90. cellflow_tools-0.0.2/tests/plotting/conftest.py +24 -0
  91. cellflow_tools-0.0.2/tests/plotting/test_plotting.py +24 -0
  92. cellflow_tools-0.0.2/tests/preprocessing/test_gene_emb.py +71 -0
  93. cellflow_tools-0.0.2/tests/preprocessing/test_pca.py +54 -0
  94. cellflow_tools-0.0.2/tests/preprocessing/test_preprocessing.py +81 -0
  95. cellflow_tools-0.0.2/tests/preprocessing/test_wknn.py +93 -0
  96. cellflow_tools-0.0.2/tests/test_artifacts/ENSG00000169047_emb.pt +0 -0
  97. cellflow_tools-0.0.2/tests/test_artifacts/ENSG00000171105_emb.pt +0 -0
  98. cellflow_tools-0.0.2/tests/trainer/test_callbacks.py +46 -0
  99. cellflow_tools-0.0.2/tests/trainer/test_trainer.py +88 -0
@@ -0,0 +1,18 @@
1
+ codecov:
2
+ require_ci_to_pass: true
3
+ strict_yaml_branch: main
4
+
5
+ coverage:
6
+ range: "80...100"
7
+ status:
8
+ project:
9
+ default:
10
+ target: 75%
11
+ threshold: 1%
12
+ patch: off
13
+
14
+ comment:
15
+ layout: "reach, diff, files"
16
+ behavior: default
17
+ require_changes: true
18
+ branches: [main]
@@ -0,0 +1,29 @@
1
+ {
2
+ "template": "https://github.com/scverse/cookiecutter-scverse",
3
+ "commit": "aa877587e59c855e2464d09ed7678af00999191a",
4
+ "checkout": null,
5
+ "context": {
6
+ "cookiecutter": {
7
+ "project_name": "cell_flow_perturbation",
8
+ "package_name": "cellflow",
9
+ "project_description": "Modeling complex perturbations with flow matching and optimal transport",
10
+ "author_full_name": "Dominik Klein",
11
+ "author_email": "dominik.klein@helmholtz-munich.de",
12
+ "github_user": "MUCDK",
13
+ "project_repo": "https://github.com/theislab/cell_flow_perturbation",
14
+ "license": "BSD 3-Clause License",
15
+ "_copy_without_render": [
16
+ ".github/workflows/build.yaml",
17
+ ".github/workflows/test.yaml",
18
+ "docs/_templates/autosummary/**.rst"
19
+ ],
20
+ "_render_devdocs": false,
21
+ "_jinja2_env_vars": {
22
+ "lstrip_blocks": true,
23
+ "trim_blocks": true
24
+ },
25
+ "_template": "https://github.com/scverse/cookiecutter-scverse"
26
+ }
27
+ },
28
+ "directory": null
29
+ }
@@ -0,0 +1,18 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 4
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [*.{yml,yaml}]
12
+ indent_size = 2
13
+
14
+ [.cruft.json]
15
+ indent_size = 2
16
+
17
+ [Makefile]
18
+ indent_style = tab
@@ -0,0 +1,89 @@
1
+ name: Bug report
2
+ description: Report something that is broken or incorrect
3
+ labels: bug
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ **Note**: Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports)
9
+ detailing how to provide the necessary information for us to reproduce your bug. In brief:
10
+ * Please provide exact steps how to reproduce the bug in a clean Python environment.
11
+ * In case it's not clear what's causing this bug, please provide the data or the data generation procedure.
12
+ * Sometimes it is not possible to share the data, but usually it is possible to replicate problems on publicly
13
+ available datasets or to share a subset of your data.
14
+
15
+ - type: textarea
16
+ id: report
17
+ attributes:
18
+ label: Report
19
+ description: A clear and concise description of what the bug is.
20
+ validations:
21
+ required: true
22
+
23
+ - type: textarea
24
+ id: versions
25
+ attributes:
26
+ label: Version information
27
+ description: |
28
+ Please paste below the output of
29
+
30
+ ```python
31
+ import session_info
32
+ session_info.show(html=False, dependencies=True)
33
+ ```
34
+ placeholder: |
35
+ -----
36
+ anndata 0.8.0rc2.dev27+ge524389
37
+ session_info 1.0.0
38
+ -----
39
+ asttokens NA
40
+ awkward 1.8.0
41
+ backcall 0.2.0
42
+ cython_runtime NA
43
+ dateutil 2.8.2
44
+ debugpy 1.6.0
45
+ decorator 5.1.1
46
+ entrypoints 0.4
47
+ executing 0.8.3
48
+ h5py 3.7.0
49
+ ipykernel 6.15.0
50
+ jedi 0.18.1
51
+ mpl_toolkits NA
52
+ natsort 8.1.0
53
+ numpy 1.22.4
54
+ packaging 21.3
55
+ pandas 1.4.2
56
+ parso 0.8.3
57
+ pexpect 4.8.0
58
+ pickleshare 0.7.5
59
+ pkg_resources NA
60
+ prompt_toolkit 3.0.29
61
+ psutil 5.9.1
62
+ ptyprocess 0.7.0
63
+ pure_eval 0.2.2
64
+ pydev_ipython NA
65
+ pydevconsole NA
66
+ pydevd 2.8.0
67
+ pydevd_file_utils NA
68
+ pydevd_plugins NA
69
+ pydevd_tracing NA
70
+ pygments 2.12.0
71
+ pytz 2022.1
72
+ scipy 1.8.1
73
+ setuptools 62.5.0
74
+ setuptools_scm NA
75
+ six 1.16.0
76
+ stack_data 0.3.0
77
+ tornado 6.1
78
+ traitlets 5.3.0
79
+ wcwidth 0.2.5
80
+ zmq 23.1.0
81
+ -----
82
+ IPython 8.4.0
83
+ jupyter_client 7.3.4
84
+ jupyter_core 4.10.0
85
+ -----
86
+ Python 3.9.13 | packaged by conda-forge | (main, May 27 2022, 16:58:50) [GCC 10.3.0]
87
+ Linux-5.18.6-arch1-1-x86_64-with-glibc2.35
88
+ -----
89
+ Session information updated at 2022-07-07 17:55
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Scverse Community Forum
4
+ url: https://discourse.scverse.org/
5
+ about: If you have questions about “How to do X”, please ask them here.
@@ -0,0 +1,11 @@
1
+ name: Feature request
2
+ description: Propose a new feature for cell_flow_perturbation
3
+ labels: enhancement
4
+ body:
5
+ - type: textarea
6
+ id: description
7
+ attributes:
8
+ label: Description of feature
9
+ description: Please describe your suggestion for a new feature. It might help to describe a problem or use case, plus any alternatives that you have considered.
10
+ validations:
11
+ required: true
@@ -0,0 +1,29 @@
1
+ name: Check Build
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ package:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+ - name: Set up Python 3.10
19
+ uses: actions/setup-python@v4
20
+ with:
21
+ python-version: "3.10"
22
+ cache: "pip"
23
+ cache-dependency-path: "**/pyproject.toml"
24
+ - name: Install build dependencies
25
+ run: python -m pip install --upgrade pip wheel twine build
26
+ - name: Build package
27
+ run: python -m build
28
+ - name: Check package
29
+ run: twine check --strict dist/*.whl
@@ -0,0 +1,54 @@
1
+ name: Lint
2
+
3
+ on:
4
+ schedule:
5
+ - cron: 00 00 * * 1
6
+ push:
7
+ branches: [main]
8
+ pull_request:
9
+ branches: [main]
10
+
11
+ concurrency:
12
+ group: ${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ lint:
17
+ name: Lint ${{ matrix.lint-kind }}
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ lint-kind: [code]
23
+
24
+ steps:
25
+ - uses: actions/checkout@v3
26
+ with:
27
+ submodules: true
28
+ - name: Set up Python 3.10
29
+ uses: actions/setup-python@v4
30
+ with:
31
+ python-version: "3.10"
32
+
33
+ - name: Cache pre-commit
34
+ uses: actions/cache@v3
35
+ if: ${{ matrix.lint-kind == 'code' }}
36
+ with:
37
+ path: ~/.cache/pre-commit
38
+ key: pre-commit-${{ env.pythonLocation }}-${{ hashFiles('**/.pre-commit-config.yaml') }}
39
+
40
+ - name: Install dependencies
41
+ run: |
42
+ python -m pip install --upgrade pip
43
+ python -m pip install tox
44
+
45
+ - name: Install PyEnchant
46
+ if: ${{ matrix.lint-kind == 'docs' }}
47
+ run: |
48
+ sudo apt-get update -y
49
+ sudo apt-get install libenchant-2-dev
50
+ python -m pip install pyenchant
51
+
52
+ - name: Lint ${{ matrix.lint-kind }}
53
+ run: |
54
+ tox -e lint-${{ matrix.lint-kind }}
@@ -0,0 +1,29 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ # Use "trusted publishing", see https://docs.pypi.org/trusted-publishers/
8
+ jobs:
9
+ release:
10
+ name: Upload release to PyPI
11
+ runs-on: ubuntu-latest
12
+ environment:
13
+ name: pypi
14
+ url: https://pypi.org/p/cellflow
15
+ permissions:
16
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ filter: blob:none
21
+ fetch-depth: 0
22
+ - uses: actions/setup-python@v4
23
+ with:
24
+ python-version: "3.x"
25
+ cache: "pip"
26
+ - run: pip install build
27
+ - run: python -m build
28
+ - name: Publish package distributions to PyPI
29
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,68 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ schedule:
9
+ - cron: "0 5 1,15 * *"
10
+
11
+ concurrency:
12
+ group: ${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ test:
17
+ runs-on: ${{ matrix.os }}
18
+ defaults:
19
+ run:
20
+ shell: bash -e {0} # -e to fail on error
21
+
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ include:
26
+ - os: ubuntu-latest
27
+ python: "3.10"
28
+ - os: ubuntu-latest
29
+ python: "3.11"
30
+ - os: ubuntu-latest
31
+ python: "3.12"
32
+ - os: macos-latest
33
+ python: "3.12"
34
+
35
+ name: ${{ matrix.name }} Python ${{ matrix.python }}
36
+
37
+ env:
38
+ OS: ${{ matrix.os }}
39
+ PYTHON: ${{ matrix.python }}
40
+
41
+ steps:
42
+ - uses: actions/checkout@v4
43
+ - name: Set up Python ${{ matrix.python }}
44
+ uses: actions/setup-python@v4
45
+ with:
46
+ python-version: ${{ matrix.python }}
47
+ cache: "pip"
48
+ cache-dependency-path: "**/pyproject.toml"
49
+
50
+ - name: Install test dependencies
51
+ run: |
52
+ python -m pip install --upgrade pip wheel
53
+ - name: Install dependencies
54
+ run: |
55
+ pip install tox
56
+ pip install ${{ matrix.pip-flags }} ".[optional-dependencies.dev,optional-dependencies.test,optional-dependencies.external,optional-dependencies.docs,optional-dependencies.embedding]"
57
+ pip install wandb omegaconf
58
+ - name: Test
59
+ run: |
60
+ tox -e py-${{ matrix.python }}
61
+ env:
62
+ PYTEST_ADDOPTS: -vv -n 2
63
+
64
+ - name: Upload coverage reports to Codecov
65
+ uses: codecov/codecov-action@v5
66
+ with:
67
+ token: ${{ secrets.CODECOV_TOKEN }}
68
+ slug: theislab/cell_flow_perturbation
@@ -0,0 +1,159 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+ *test_save_load_Problem.pkl
54
+ *test_plot.png
55
+
56
+ # Translations
57
+ *.mo
58
+ *.pot
59
+
60
+ # Django stuff:
61
+ *.log
62
+ local_settings.py
63
+ db.sqlite3
64
+ db.sqlite3-journal
65
+
66
+ # Flask stuff:
67
+ instance/
68
+ .webassets-cache
69
+
70
+ # Scrapy stuff:
71
+ .scrapy
72
+
73
+ # Sphinx documentation
74
+ docs/_build/
75
+
76
+ # PyBuilder
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ .python-version
88
+
89
+ # pipenv
90
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
92
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
93
+ # install all needed dependencies.
94
+ #Pipfile.lock
95
+
96
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
97
+ __pypackages__/
98
+
99
+ # Celery stuff
100
+ celerybeat-schedule
101
+ celerybeat.pid
102
+
103
+ # SageMath parsed files
104
+ *.sage.py
105
+
106
+ # Environments
107
+ .env
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+
130
+ # Pyre type checker
131
+ .pyre/
132
+
133
+ # editors
134
+ .idea
135
+
136
+ # docs
137
+ docs/**/genapi
138
+
139
+ # macOS
140
+ *.DS_Store
141
+
142
+ # benchmarks
143
+ notebooks/*.pdf
144
+ *.pickle
145
+ *.h5ad
146
+ *.p
147
+
148
+ # UML generation
149
+ classes.dot
150
+ packages.dot
151
+
152
+ # vscode
153
+ .vscode
154
+
155
+ # plotting tests
156
+ tests/plotting/actual_figures/
157
+
158
+ # huggingface
159
+ hub/
@@ -0,0 +1,19 @@
1
+ repos:
2
+ # Hooks that are run everywhere
3
+ - repo: https://github.com/biomejs/pre-commit
4
+ rev: v1.9.4
5
+ hooks:
6
+ - id: biome-format
7
+ # Hooks that are run for scripts
8
+ - repo: https://github.com/tox-dev/pyproject-fmt
9
+ rev: v2.5.1
10
+ hooks:
11
+ - id: pyproject-fmt
12
+ - repo: https://github.com/astral-sh/ruff-pre-commit
13
+ rev: v0.9.9
14
+ hooks:
15
+ - id: ruff
16
+ args: [--fix, --exit-non-zero-on-fix]
17
+ files: ^(src|tests)/
18
+ - id: ruff-format
19
+ files: ^(src|tests)/
@@ -0,0 +1,19 @@
1
+ # https://docs.readthedocs.io/en/stable/config-file/v2.html
2
+ version: 2
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: "3.10"
7
+ sphinx:
8
+ configuration: docs/conf.py
9
+ # disable this for more lenient docs builds
10
+ fail_on_warning: false
11
+ python:
12
+ install:
13
+ - method: pip
14
+ path: .
15
+ extra_requirements: [docs, external, embedding, dev]
16
+
17
+ submodules:
18
+ include: [docs/notebooks]
19
+ recursive: true
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog][],
6
+ and this project adheres to [Semantic Versioning][].
7
+
8
+ [keep a changelog]: https://keepachangelog.com/en/1.0.0/
9
+ [semantic versioning]: https://semver.org/spec/v2.0.0.html
10
+
11
+ ## [Unreleased]
12
+
13
+ ### Added
14
+
15
+ - Basic tool, preprocessing and plotting functions
@@ -0,0 +1,71 @@
1
+ # PolyForm Noncommercial License 1.0.0
2
+
3
+ <https://polyformproject.org/licenses/noncommercial/1.0.0>
4
+
5
+ ## Acceptance
6
+
7
+ In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
8
+
9
+ ## Copyright License
10
+
11
+ The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license).
12
+
13
+ ## Distribution License
14
+
15
+ The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license).
16
+
17
+ ## Required Notices
18
+
19
+ Copyright © Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH)
20
+
21
+ ## Changes and New Works License
22
+
23
+ The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.
24
+
25
+ ## Patent License
26
+
27
+ The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
28
+
29
+ ## Noncommercial Purposes
30
+
31
+ Any noncommercial purpose is a permitted purpose.
32
+
33
+ ## Personal Uses
34
+
35
+ Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.
36
+
37
+ ## Noncommercial Organizations
38
+
39
+ Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.
40
+
41
+ ## Fair Use
42
+
43
+ You may have "fair use" rights for the software under the law. These terms do not limit them.
44
+
45
+ ## No Other Rights
46
+
47
+ These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
48
+
49
+ ## Patent Defense
50
+
51
+ If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
52
+
53
+ ## Violations
54
+
55
+ The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
56
+
57
+ ## No Liability
58
+
59
+ **_As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim._**
60
+
61
+ ## Definitions
62
+
63
+ The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
64
+
65
+ **You** refers to the individual or entity agreeing to these terms.
66
+
67
+ **Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
68
+
69
+ **Your licenses** are all the licenses granted to you for the software under these terms.
70
+
71
+ **Use** means anything you do with the software requiring one of your licenses.