treedata 0.0.1__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 (44) hide show
  1. treedata-0.0.1/.codecov.yaml +16 -0
  2. treedata-0.0.1/.cruft.json +29 -0
  3. treedata-0.0.1/.editorconfig +18 -0
  4. treedata-0.0.1/.github/ISSUE_TEMPLATE/bug_report.yml +89 -0
  5. treedata-0.0.1/.github/ISSUE_TEMPLATE/config.yml +5 -0
  6. treedata-0.0.1/.github/ISSUE_TEMPLATE/feature_request.yml +11 -0
  7. treedata-0.0.1/.github/workflows/build.yaml +29 -0
  8. treedata-0.0.1/.github/workflows/release.yaml +29 -0
  9. treedata-0.0.1/.github/workflows/test.yaml +67 -0
  10. treedata-0.0.1/.gitignore +31 -0
  11. treedata-0.0.1/.pre-commit-config.yaml +42 -0
  12. treedata-0.0.1/.readthedocs.yaml +16 -0
  13. treedata-0.0.1/CHANGELOG.md +15 -0
  14. treedata-0.0.1/LICENSE +29 -0
  15. treedata-0.0.1/PKG-INFO +129 -0
  16. treedata-0.0.1/README.md +60 -0
  17. treedata-0.0.1/docs/Makefile +20 -0
  18. treedata-0.0.1/docs/_static/.gitkeep +0 -0
  19. treedata-0.0.1/docs/_static/css/custom.css +4 -0
  20. treedata-0.0.1/docs/_static/img/treedata_schema.svg +205 -0
  21. treedata-0.0.1/docs/_templates/.gitkeep +0 -0
  22. treedata-0.0.1/docs/_templates/autosummary/class.rst +61 -0
  23. treedata-0.0.1/docs/api.md +49 -0
  24. treedata-0.0.1/docs/changelog.md +3 -0
  25. treedata-0.0.1/docs/conf.py +141 -0
  26. treedata-0.0.1/docs/contributing.md +160 -0
  27. treedata-0.0.1/docs/extensions/typed_returns.py +32 -0
  28. treedata-0.0.1/docs/index.md +15 -0
  29. treedata-0.0.1/docs/notebooks/getting-started.ipynb +705 -0
  30. treedata-0.0.1/docs/references.bib +10 -0
  31. treedata-0.0.1/docs/references.md +5 -0
  32. treedata-0.0.1/pyproject.toml +138 -0
  33. treedata-0.0.1/src/treedata/__init__.py +7 -0
  34. treedata-0.0.1/src/treedata/_core/__init__.py +0 -0
  35. treedata-0.0.1/src/treedata/_core/aligned_mapping.py +259 -0
  36. treedata-0.0.1/src/treedata/_core/merge.py +122 -0
  37. treedata-0.0.1/src/treedata/_core/read.py +86 -0
  38. treedata-0.0.1/src/treedata/_core/treedata.py +394 -0
  39. treedata-0.0.1/src/treedata/_utils.py +61 -0
  40. treedata-0.0.1/tests/test_base.py +193 -0
  41. treedata-0.0.1/tests/test_merge.py +101 -0
  42. treedata-0.0.1/tests/test_readwrite.py +113 -0
  43. treedata-0.0.1/tests/test_utils.py +36 -0
  44. treedata-0.0.1/tests/test_views.py +126 -0
@@ -0,0 +1,16 @@
1
+ # Based on pydata/xarray
2
+ codecov:
3
+ require_ci_to_pass: no
4
+
5
+ coverage:
6
+ status:
7
+ project:
8
+ default:
9
+ target: 85
10
+ patch: false
11
+ changes: false
12
+
13
+ comment:
14
+ layout: diff, flags, files
15
+ behavior: once
16
+ require_base: no
@@ -0,0 +1,29 @@
1
+ {
2
+ "template": "https://github.com/scverse/cookiecutter-scverse",
3
+ "commit": "586b1652162ff7994b0070a034023d64289ae416",
4
+ "checkout": "v0.3.1",
5
+ "context": {
6
+ "cookiecutter": {
7
+ "project_name": "treedata",
8
+ "package_name": "treedata",
9
+ "project_description": "anndata with trees",
10
+ "author_full_name": "William Colgan",
11
+ "author_email": "wcolgan@mit.edu",
12
+ "github_user": "colganwi",
13
+ "project_repo": "https://github.com/YosefLab/treedata",
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 treedata
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,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/treedata
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,67 @@
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.9"
28
+ - os: ubuntu-latest
29
+ python: "3.11"
30
+ - os: ubuntu-latest
31
+ python: "3.11"
32
+ pip-flags: "--pre"
33
+ name: PRE-RELEASE DEPENDENCIES
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@v3
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 ${{ matrix.pip-flags }} ".[dev,test]"
56
+ - name: Test
57
+ env:
58
+ MPLBACKEND: agg
59
+ PLATFORM: ${{ matrix.os }}
60
+ DISPLAY: :42
61
+ run: |
62
+ coverage run -m pytest -v --color=yes
63
+ - name: Report coverage
64
+ run: |
65
+ coverage report
66
+ - name: Upload coverage
67
+ uses: codecov/codecov-action@v3
@@ -0,0 +1,31 @@
1
+ # Temp files
2
+ .DS_Store
3
+ *~
4
+ buck-out/
5
+
6
+ # Compiled files
7
+ .venv/
8
+ __pycache__/
9
+ .mypy_cache/
10
+ .ruff_cache/
11
+
12
+ # Distribution / packaging
13
+ /build/
14
+ /dist/
15
+ /*.egg-info/
16
+
17
+ # Tests and coverage
18
+ /.pytest_cache/
19
+ /.cache/
20
+ /data/
21
+
22
+ # docs
23
+ /docs/generated/
24
+ /docs/_build/
25
+
26
+ # IDEs
27
+ /.idea/
28
+ /.vscode/
29
+
30
+ # Prettier
31
+ /node_modules/
@@ -0,0 +1,42 @@
1
+ fail_fast: false
2
+ default_language_version:
3
+ python: python3
4
+ default_stages:
5
+ - commit
6
+ - push
7
+ minimum_pre_commit_version: 2.16.0
8
+ repos:
9
+ - repo: https://github.com/pre-commit/mirrors-prettier
10
+ rev: v4.0.0-alpha.8
11
+ hooks:
12
+ - id: prettier
13
+ - repo: https://github.com/astral-sh/ruff-pre-commit
14
+ rev: v0.4.4
15
+ hooks:
16
+ - id: ruff
17
+ types_or: [python, pyi, jupyter]
18
+ args: [--fix, --exit-non-zero-on-fix]
19
+ - id: ruff-format
20
+ types_or: [python, pyi, jupyter]
21
+ - repo: https://github.com/pre-commit/pre-commit-hooks
22
+ rev: v4.6.0
23
+ hooks:
24
+ - id: detect-private-key
25
+ - id: check-ast
26
+ - id: end-of-file-fixer
27
+ - id: mixed-line-ending
28
+ args: [--fix=lf]
29
+ - id: trailing-whitespace
30
+ - id: check-case-conflict
31
+ # Check that there are no merge conflicts (could be generated by template sync)
32
+ - id: check-merge-conflict
33
+ args: [--assume-in-merge]
34
+ - repo: local
35
+ hooks:
36
+ - id: forbid-to-commit
37
+ name: Don't commit rej files
38
+ entry: |
39
+ Cannot commit .rej files. These indicate merge conflicts that arise during automated template updates.
40
+ Fix the merge conflicts manually and remove the .rej files.
41
+ language: fail
42
+ files: '.*\.rej$'
@@ -0,0 +1,16 @@
1
+ # https://docs.readthedocs.io/en/stable/config-file/v2.html
2
+ version: 2
3
+ build:
4
+ os: ubuntu-20.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:
16
+ - doc
@@ -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
treedata-0.0.1/LICENSE ADDED
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2024, William Colgan
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,129 @@
1
+ Metadata-Version: 2.3
2
+ Name: treedata
3
+ Version: 0.0.1
4
+ Summary: anndata with trees
5
+ Project-URL: Documentation, https://treedata.readthedocs.io/
6
+ Project-URL: Source, https://github.com/YosefLab/treedata
7
+ Project-URL: Home-page, https://github.com/YosefLab/treedata
8
+ Author: William Colgan
9
+ Maintainer-email: William Colgan <wcolgan@mit.edu>
10
+ License: BSD 3-Clause License
11
+
12
+ Copyright (c) 2024, William Colgan
13
+ All rights reserved.
14
+
15
+ Redistribution and use in source and binary forms, with or without
16
+ modification, are permitted provided that the following conditions are met:
17
+
18
+ 1. Redistributions of source code must retain the above copyright notice, this
19
+ list of conditions and the following disclaimer.
20
+
21
+ 2. Redistributions in binary form must reproduce the above copyright notice,
22
+ this list of conditions and the following disclaimer in the documentation
23
+ and/or other materials provided with the distribution.
24
+
25
+ 3. Neither the name of the copyright holder nor the names of its
26
+ contributors may be used to endorse or promote products derived from
27
+ this software without specific prior written permission.
28
+
29
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
30
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
32
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
33
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
36
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
37
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39
+ License-File: LICENSE
40
+ Requires-Python: >=3.9
41
+ Requires-Dist: anndata
42
+ Requires-Dist: networkx
43
+ Requires-Dist: numpy
44
+ Requires-Dist: pandas
45
+ Requires-Dist: pyarrow
46
+ Requires-Dist: session-info
47
+ Requires-Dist: zarr
48
+ Provides-Extra: dev
49
+ Requires-Dist: pre-commit; extra == 'dev'
50
+ Requires-Dist: twine>=4.0.2; extra == 'dev'
51
+ Provides-Extra: doc
52
+ Requires-Dist: docutils!=0.18.*,!=0.19.*,>=0.8; extra == 'doc'
53
+ Requires-Dist: ipykernel; extra == 'doc'
54
+ Requires-Dist: ipython; extra == 'doc'
55
+ Requires-Dist: myst-nb; extra == 'doc'
56
+ Requires-Dist: pandas; extra == 'doc'
57
+ Requires-Dist: sphinx-autodoc-typehints; extra == 'doc'
58
+ Requires-Dist: sphinx-book-theme>=1.0.0; extra == 'doc'
59
+ Requires-Dist: sphinx-copybutton; extra == 'doc'
60
+ Requires-Dist: sphinx>=4; extra == 'doc'
61
+ Requires-Dist: sphinxcontrib-bibtex>=1.0.0; extra == 'doc'
62
+ Requires-Dist: sphinxext-opengraph; extra == 'doc'
63
+ Provides-Extra: test
64
+ Requires-Dist: coverage; extra == 'test'
65
+ Requires-Dist: joblib; extra == 'test'
66
+ Requires-Dist: pytest; extra == 'test'
67
+ Requires-Dist: scanpy; extra == 'test'
68
+ Description-Content-Type: text/markdown
69
+
70
+ [![Tests][badge-tests]][link-tests]
71
+ [![Documentation][badge-docs]][link-docs]
72
+
73
+ [badge-tests]: https://img.shields.io/github/actions/workflow/status/colganwi/treedata/test.yaml?branch=main
74
+ [link-tests]: https://github.com/YosefLab/treedata/actions/workflows/test.yml
75
+ [badge-docs]: https://img.shields.io/readthedocs/treedata
76
+
77
+ <img
78
+ src="https://raw.githubusercontent.com/YosefLab/treedata/main/docs/_static/img/treedata_schema.svg"
79
+ class="dark-light" align="right" width="350" alt="image"
80
+ />
81
+
82
+ # TreeData - AnnData with trees
83
+
84
+ TreeData is a lightweight wrapper around AnnData which adds two additional attributes, `obst` and `vart`, to store [nx.DiGraph] trees for observations and variables. TreeData has the same interface as AnnData and is fully compatible with [scverse] packages like [scanpy].
85
+
86
+ To learn more about TreeData, please refer to the [documentation][link-docs] or checkout the [getting started guide][link-getting-started].
87
+
88
+ ## Installation
89
+
90
+ You need to have Python 3.9 or newer installed on your system. If you don't have
91
+ Python installed, we recommend installing [Mambaforge](https://github.com/conda-forge/miniforge#mambaforge).
92
+
93
+ There are several alternative options to install treedata:
94
+
95
+ <!--
96
+ 1) Install the latest release of `treedata` from `PyPI <https://pypi.org/project/treedata/>`_:
97
+
98
+ ```bash
99
+ pip install treedata
100
+ ```
101
+ -->
102
+
103
+ 1. Install the latest development version:
104
+
105
+ ```bash
106
+ pip install git+https://github.com/YosefLab/treedata.git@main
107
+ ```
108
+
109
+ ## Release notes
110
+
111
+ See the [changelog][changelog].
112
+
113
+ ## Contact
114
+
115
+ For questions and bug reports please use the [issue tracker][issue-tracker].
116
+
117
+ ## Citation
118
+
119
+ > t.b.a
120
+
121
+ [scverse]: https://scverse.org/
122
+ [scanpy]: https://scanpy.readthedocs.io/
123
+ [nx.DiGraph]: https://networkx.org/documentation/stable/reference/classes/digraph.html
124
+ [scverse-discourse]: https://discourse.scverse.org/
125
+ [issue-tracker]: https://github.com/YosefLab/treedata/issues
126
+ [changelog]: https://treedata.readthedocs.io/latest/changelog.html
127
+ [link-docs]: https://treedata.readthedocs.io
128
+ [link-getting-started]: https://treedata.readthedocs.io/en/latest/notebooks/getting-started.html
129
+ [link-api]: https://treedata.readthedocs.io/latest/api.html
@@ -0,0 +1,60 @@
1
+ [![Tests][badge-tests]][link-tests]
2
+ [![Documentation][badge-docs]][link-docs]
3
+
4
+ [badge-tests]: https://img.shields.io/github/actions/workflow/status/colganwi/treedata/test.yaml?branch=main
5
+ [link-tests]: https://github.com/YosefLab/treedata/actions/workflows/test.yml
6
+ [badge-docs]: https://img.shields.io/readthedocs/treedata
7
+
8
+ <img
9
+ src="https://raw.githubusercontent.com/YosefLab/treedata/main/docs/_static/img/treedata_schema.svg"
10
+ class="dark-light" align="right" width="350" alt="image"
11
+ />
12
+
13
+ # TreeData - AnnData with trees
14
+
15
+ TreeData is a lightweight wrapper around AnnData which adds two additional attributes, `obst` and `vart`, to store [nx.DiGraph] trees for observations and variables. TreeData has the same interface as AnnData and is fully compatible with [scverse] packages like [scanpy].
16
+
17
+ To learn more about TreeData, please refer to the [documentation][link-docs] or checkout the [getting started guide][link-getting-started].
18
+
19
+ ## Installation
20
+
21
+ You need to have Python 3.9 or newer installed on your system. If you don't have
22
+ Python installed, we recommend installing [Mambaforge](https://github.com/conda-forge/miniforge#mambaforge).
23
+
24
+ There are several alternative options to install treedata:
25
+
26
+ <!--
27
+ 1) Install the latest release of `treedata` from `PyPI <https://pypi.org/project/treedata/>`_:
28
+
29
+ ```bash
30
+ pip install treedata
31
+ ```
32
+ -->
33
+
34
+ 1. Install the latest development version:
35
+
36
+ ```bash
37
+ pip install git+https://github.com/YosefLab/treedata.git@main
38
+ ```
39
+
40
+ ## Release notes
41
+
42
+ See the [changelog][changelog].
43
+
44
+ ## Contact
45
+
46
+ For questions and bug reports please use the [issue tracker][issue-tracker].
47
+
48
+ ## Citation
49
+
50
+ > t.b.a
51
+
52
+ [scverse]: https://scverse.org/
53
+ [scanpy]: https://scanpy.readthedocs.io/
54
+ [nx.DiGraph]: https://networkx.org/documentation/stable/reference/classes/digraph.html
55
+ [scverse-discourse]: https://discourse.scverse.org/
56
+ [issue-tracker]: https://github.com/YosefLab/treedata/issues
57
+ [changelog]: https://treedata.readthedocs.io/latest/changelog.html
58
+ [link-docs]: https://treedata.readthedocs.io
59
+ [link-getting-started]: https://treedata.readthedocs.io/en/latest/notebooks/getting-started.html
60
+ [link-api]: https://treedata.readthedocs.io/latest/api.html
@@ -0,0 +1,20 @@
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 = .
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)
File without changes
@@ -0,0 +1,4 @@
1
+ /* Reduce the font size in data frames - See https://github.com/scverse/cookiecutter-scverse/issues/193 */
2
+ div.cell_output table.dataframe {
3
+ font-size: 0.8em;
4
+ }