ome-arrow 0.0.2__tar.gz → 0.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 (107) hide show
  1. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/workflows/publish-docs.yml +8 -4
  2. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/workflows/publish-pypi.yml +3 -3
  3. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/workflows/run-tests.yml +6 -6
  4. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.pre-commit-config.yaml +2 -2
  5. ome_arrow-0.0.4/CITATION.cff +131 -0
  6. ome_arrow-0.0.4/PKG-INFO +120 -0
  7. ome_arrow-0.0.4/README.md +88 -0
  8. ome_arrow-0.0.4/docs/src/_static/logo.png +0 -0
  9. ome_arrow-0.0.4/docs/src/_static/references_to_files.png +0 -0
  10. ome_arrow-0.0.4/docs/src/_static/various_ome_arrow_schema.png +0 -0
  11. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/docs/src/conf.py +3 -0
  12. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/docs/src/examples/learning_to_fly_with_ome-arrow.ipynb +94 -21
  13. ome_arrow-0.0.4/docs/src/examples/learning_to_fly_with_ome-arrow.py +97 -0
  14. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/pyproject.toml +6 -2
  15. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/_version.py +3 -3
  16. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/core.py +11 -4
  17. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/ingest.py +16 -42
  18. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/view.py +29 -5
  19. ome_arrow-0.0.4/src/ome_arrow.egg-info/PKG-INFO +120 -0
  20. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow.egg-info/SOURCES.txt +5 -0
  21. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow.egg-info/requires.txt +4 -2
  22. ome_arrow-0.0.4/tests/data/JUMP-BR00117006/BR00117006.ome.parquet +0 -0
  23. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/test_core.py +59 -1
  24. ome_arrow-0.0.4/tests/test_view.py +20 -0
  25. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/uv.lock +16 -9
  26. ome_arrow-0.0.2/CITATION.cff +0 -59
  27. ome_arrow-0.0.2/PKG-INFO +0 -34
  28. ome_arrow-0.0.2/README.md +0 -3
  29. ome_arrow-0.0.2/docs/src/examples/learning_to_fly_with_ome-arrow.py +0 -57
  30. ome_arrow-0.0.2/src/ome_arrow.egg-info/PKG-INFO +0 -34
  31. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  32. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  33. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/dependabot.yml +0 -0
  34. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/release-drafter.yml +0 -0
  35. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.github/workflows/draft-release.yml +0 -0
  36. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.gitignore +0 -0
  37. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/.python-version +0 -0
  38. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/CODE_OF_CONDUCT.md +0 -0
  39. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/CONTRIBUTING.md +0 -0
  40. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/LICENSE +0 -0
  41. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/docs/src/index.md +0 -0
  42. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/docs/src/python-api.md +0 -0
  43. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/setup.cfg +0 -0
  44. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/__init__.py +0 -0
  45. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/export.py +0 -0
  46. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/meta.py +0 -0
  47. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/transform.py +0 -0
  48. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow/utils.py +0 -0
  49. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow.egg-info/dependency_links.txt +0 -0
  50. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/src/ome_arrow.egg-info/top_level.txt +0 -0
  51. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/conftest.py +0 -0
  52. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/examplehuman/AS_09125_050116030001_D03f00d0.tif +0 -0
  53. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/examplehuman/AS_09125_050116030001_D03f00d1.tif +0 -0
  54. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/examplehuman/AS_09125_050116030001_D03f00d2.tif +0 -0
  55. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS000.tif +0 -0
  56. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS001.tif +0 -0
  57. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS002.tif +0 -0
  58. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS003.tif +0 -0
  59. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS004.tif +0 -0
  60. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS005.tif +0 -0
  61. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS006.tif +0 -0
  62. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS007.tif +0 -0
  63. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS008.tif +0 -0
  64. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS009.tif +0 -0
  65. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS010.tif +0 -0
  66. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS011.tif +0 -0
  67. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS012.tif +0 -0
  68. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS013.tif +0 -0
  69. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS014.tif +0 -0
  70. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS015.tif +0 -0
  71. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS016.tif +0 -0
  72. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS017.tif +0 -0
  73. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS018.tif +0 -0
  74. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS019.tif +0 -0
  75. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS020.tif +0 -0
  76. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS021.tif +0 -0
  77. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS000.tif +0 -0
  78. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS001.tif +0 -0
  79. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS002.tif +0 -0
  80. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS003.tif +0 -0
  81. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS004.tif +0 -0
  82. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS005.tif +0 -0
  83. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS006.tif +0 -0
  84. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS007.tif +0 -0
  85. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS008.tif +0 -0
  86. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS009.tif +0 -0
  87. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS010.tif +0 -0
  88. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS011.tif +0 -0
  89. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS012.tif +0 -0
  90. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS013.tif +0 -0
  91. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS014.tif +0 -0
  92. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS015.tif +0 -0
  93. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS016.tif +0 -0
  94. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS017.tif +0 -0
  95. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS018.tif +0 -0
  96. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS019.tif +0 -0
  97. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS020.tif +0 -0
  98. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS021.tif +0 -0
  99. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/4D-series.ome.tiff +0 -0
  100. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/multi-channel-4D-series.ome.tiff +0 -0
  101. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/multi-channel-time-series.ome.tiff +0 -0
  102. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/multi-channel-z-series.ome.tiff +0 -0
  103. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/multi-channel.ome.tiff +0 -0
  104. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/single-channel.ome.tiff +0 -0
  105. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/time-series.ome.tif +0 -0
  106. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/data/ome-artificial-5d-datasets/z-series.ome.tiff +0 -0
  107. {ome_arrow-0.0.2 → ome_arrow-0.0.4}/tests/test_utils.py +0 -0
@@ -10,26 +10,30 @@ on:
10
10
  types:
11
11
  - published
12
12
 
13
+ permissions:
14
+ contents: write
15
+
13
16
  jobs:
14
17
  build:
15
18
  # only build and deploy docs if the actor is not dependabot
16
19
  if: ${{ github.actor != 'dependabot[bot]' }}
17
- runs-on: ubuntu-22.04
20
+ runs-on: ubuntu-24.04
18
21
  steps:
19
22
  - name: Checkout
20
- uses: actions/checkout@v4
23
+ uses: actions/checkout@v6
21
24
  with:
22
25
  fetch-depth: 0
23
- - uses: actions/setup-python@v5
26
+ - uses: actions/setup-python@v6
24
27
  with:
25
28
  python-version: "3.11"
26
29
  - name: Install the latest version of uv
27
- uses: astral-sh/setup-uv@v6
30
+ uses: astral-sh/setup-uv@v7
28
31
  - name: Build documentation
29
32
  run: |
30
33
  mkdir pages
31
34
  touch pages/.nojekyll
32
35
  cd docs
36
+ uv sync --all-extras --all-groups
33
37
  uv run --frozen sphinx-build src build
34
38
  # remove any doctrees dirs which aren't needed for publishing
35
39
  find ./build -type d -name '.doctrees' -exec rm -rf {} +
@@ -16,17 +16,17 @@ jobs:
16
16
  id-token: write
17
17
  steps:
18
18
  - name: Checkout
19
- uses: actions/checkout@v4
19
+ uses: actions/checkout@v6
20
20
  with:
21
21
  fetch-depth: 0
22
22
  - name: Fetch tags
23
23
  run: git fetch --all --tags
24
24
  - name: Python setup
25
- uses: actions/setup-python@v5
25
+ uses: actions/setup-python@v6
26
26
  with:
27
27
  python-version: "3.11"
28
28
  - name: Install the latest version of uv
29
- uses: astral-sh/setup-uv@v6
29
+ uses: astral-sh/setup-uv@v7
30
30
  - name: uv build distribution content
31
31
  run: uv build
32
32
  - name: Publish package distributions to PyPI
@@ -13,14 +13,14 @@ jobs:
13
13
  runs-on: ubuntu-24.04
14
14
  steps:
15
15
  # checks out the repo
16
- - uses: actions/checkout@v4
16
+ - uses: actions/checkout@v6
17
17
  # run pre-commit
18
18
  - name: Python setup
19
- uses: actions/setup-python@v5
19
+ uses: actions/setup-python@v6
20
20
  with:
21
21
  python-version: "3.11"
22
22
  - name: Install the latest version of uv
23
- uses: astral-sh/setup-uv@v6
23
+ uses: astral-sh/setup-uv@v7
24
24
  - uses: pre-commit/action@v3.0.1
25
25
  # run pre-commit ci lite for automated fixes
26
26
  - uses: pre-commit-ci/lite-action@v1.1.0
@@ -35,12 +35,12 @@ jobs:
35
35
  OS: ${{ matrix.os }}
36
36
  steps:
37
37
  - name: Checkout
38
- uses: actions/checkout@v4
38
+ uses: actions/checkout@v6
39
39
  - name: Python setup
40
- uses: actions/setup-python@v5
40
+ uses: actions/setup-python@v6
41
41
  with:
42
42
  python-version: ${{ matrix.python_version }}
43
43
  - name: Install the latest version of uv
44
- uses: astral-sh/setup-uv@v6
44
+ uses: astral-sh/setup-uv@v7
45
45
  - name: Run pytest
46
46
  run: uv run --frozen pytest
@@ -39,12 +39,12 @@ repos:
39
39
  - id: yamllint
40
40
  exclude: pre-commit-config.yaml
41
41
  - repo: https://github.com/astral-sh/ruff-pre-commit
42
- rev: "v0.14.4"
42
+ rev: "v0.14.7"
43
43
  hooks:
44
44
  - id: ruff-format
45
45
  - id: ruff-check
46
46
  - repo: https://github.com/rhysd/actionlint
47
- rev: v1.7.8
47
+ rev: v1.7.9
48
48
  hooks:
49
49
  - id: actionlint
50
50
  - repo: https://gitlab.com/vojko.pribudic.foss/pre-commit-update
@@ -0,0 +1,131 @@
1
+ # This CITATION.cff file was generated with cffinit.
2
+ # Visit https://bit.ly/cffinit to generate yours today!
3
+ ---
4
+ cff-version: 1.2.0
5
+ title: ome_arrow
6
+ message: >-
7
+ If you use this software, please cite it using the
8
+ metadata from the CITATION.cff file.
9
+ type: software
10
+ authors:
11
+ - given-names: Dave
12
+ family-names: Bunten
13
+ orcid: "https://orcid.org/0000-0001-6041-3665"
14
+ - given-names: Jenna
15
+ family-names: Tomkinson
16
+ orcid: 'https://orcid.org/0000-0003-2676-5813'
17
+ - given-names: Michael
18
+ family-names: Lippincott
19
+ orcid: 'https://orcid.org/0000-0002-8637-1448'
20
+ - given-names: Cameron
21
+ family-names: Mattson
22
+ orcid: 'https://orcid.org/0009-0008-4969-779X'
23
+ - given-names: Gregory
24
+ family-names: Way
25
+ orcid: 'https://orcid.org/0000-0002-0503-9348'
26
+ repository-code: "https://github.com/wayscience/ome-arrow"
27
+ abstract: >-
28
+ Using OME specifications with Apache Arrow for fast, queryable, and language agnostic bioimage data.
29
+ keywords:
30
+ - python
31
+ license: BSD-3-Clause
32
+ identifiers:
33
+ - description: Zenodo software DOI
34
+ type: doi
35
+ value: 10.5281/zenodo.17664969
36
+ references:
37
+ - authors:
38
+ - name: "ExampleHuman CellProfiler Data Team"
39
+ date-accessed: "2022-09-01"
40
+ title: ExampleHuman CellProfiler Data
41
+ type: data
42
+ repository-code: "https://github.com/CellProfiler/examples/tree/master/ExampleHuman"
43
+ url: "https://cellprofiler.org/examples"
44
+ scope: "ExampleHuman"
45
+ notes: >-
46
+ ExampleHuman CellProfiler data is used to help validate expected results.
47
+ identifiers:
48
+ - description: "README.md with Citation Information"
49
+ type: url
50
+ value: "https://github.com/CellProfiler/examples/blob/master/ExampleHuman/README.md"
51
+ - authors:
52
+ - name: "Open Microscopy Environment (OME) Team"
53
+ date-accessed: "2025-11-07"
54
+ title: OME-TIFF Sample Data
55
+ type: data
56
+ repository-code: "https://github.com/ome/ome-model"
57
+ url: "https://ome-model.readthedocs.io/en/stable/ome-tiff/data.html"
58
+ scope: "OME-TIFF Example Datasets"
59
+ notes: >-
60
+ The OME-TIFF sample datasets illustrate the structure and metadata conventions
61
+ used in the OME-TIFF format, including images for testing readers, writers,
62
+ and visualization tools.
63
+ identifiers:
64
+ - description: "OME Model Documentation — OME-TIFF Sample Data"
65
+ type: url
66
+ value: "https://ome-model.readthedocs.io/en/stable/ome-tiff/data.html"
67
+ - authors:
68
+ - family-names: Chandrasekaran
69
+ given-names: Srinivas Niranj
70
+ - family-names: Cimini
71
+ given-names: Beth A.
72
+ - family-names: Goodale
73
+ given-names: Amy
74
+ - family-names: Miller
75
+ given-names: Lisa
76
+ - family-names: Kost-Alimova
77
+ given-names: Maria
78
+ - family-names: Jamali
79
+ given-names: Nasim
80
+ - family-names: Doench
81
+ given-names: John G.
82
+ - family-names: Fritchman
83
+ given-names: Briana
84
+ - family-names: Skepner
85
+ given-names: Adam
86
+ - family-names: Melanson
87
+ given-names: Michelle
88
+ - family-names: Kalinin
89
+ given-names: Alexandr A.
90
+ - family-names: Arevalo
91
+ given-names: John
92
+ - family-names: Haghighi
93
+ given-names: Marzieh
94
+ - family-names: Caicedo
95
+ given-names: Juan C.
96
+ - family-names: Kuhn
97
+ given-names: Daniel
98
+ - family-names: Hernandez
99
+ given-names: Desiree
100
+ - family-names: Berstler
101
+ given-names: James
102
+ - family-names: Shafqat-Abbasi
103
+ given-names: Hamdah
104
+ - family-names: Root
105
+ given-names: David E.
106
+ - family-names: Swalley
107
+ given-names: Susanne E.
108
+ - family-names: Garg
109
+ given-names: Sakshi
110
+ - family-names: Singh
111
+ given-names: Shantanu
112
+ - family-names: Carpenter
113
+ given-names: Anne E.
114
+ date-accessed: "2024-08-21"
115
+ title: >-
116
+ Three million images and morphological profiles of cells treated with matched chemical and genetic perturbations
117
+ type: article
118
+ issn: 1548-7105
119
+ issue: 6
120
+ journal: Nature Methods
121
+ pages: 1114-1121
122
+ volume: 21
123
+ url: https://doi.org/10.1038/s41592-024-02241-6
124
+ date-published: "2024-06-01"
125
+ identifiers:
126
+ - type: doi
127
+ value: 10.1038/s41592-024-02241-6
128
+ notes: >-
129
+ JUMP (cpg0000-jump-pilot) was used to help demonstrate CytoDataFrame performance
130
+ with large data. See here for more information:
131
+ https://github.com/broadinstitute/cellpainting-gallery
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.4
2
+ Name: ome-arrow
3
+ Version: 0.0.4
4
+ Summary: Using OME specifications with Apache Arrow for fast, queryable, and language agnostic bioimage data.
5
+ Author: Dave Bunten
6
+ Classifier: Programming Language :: Python :: 3 :: Only
7
+ Classifier: Programming Language :: Python :: 3.11
8
+ Classifier: Programming Language :: Python :: 3.12
9
+ Classifier: Programming Language :: Python :: 3.13
10
+ Classifier: Programming Language :: Python :: 3.14
11
+ Requires-Python: >=3.11
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: bioio>=3
15
+ Requires-Dist: bioio-ome-tiff>=1.4
16
+ Requires-Dist: bioio-ome-zarr>=3.0.3
17
+ Requires-Dist: bioio-tifffile>=1.3
18
+ Requires-Dist: fire>=0.7
19
+ Requires-Dist: matplotlib>=3.10.7
20
+ Requires-Dist: numpy>=2.2.6
21
+ Requires-Dist: pandas>=2.2.3
22
+ Requires-Dist: pillow>=12
23
+ Requires-Dist: pyarrow>=22
24
+ Provides-Extra: viz
25
+ Requires-Dist: ipywidgets>=8.1.8; extra == "viz"
26
+ Requires-Dist: jupyterlab-widgets>=3.0.16; extra == "viz"
27
+ Requires-Dist: pyvista>=0.46.4; extra == "viz"
28
+ Requires-Dist: trame>=3.12; extra == "viz"
29
+ Requires-Dist: trame-vtk>=2.10; extra == "viz"
30
+ Requires-Dist: trame-vuetify>=3.1; extra == "viz"
31
+ Dynamic: license-file
32
+
33
+ <img height="200" src="https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/logo.png?raw=true">
34
+
35
+ ![PyPI - Version](https://img.shields.io/pypi/v/ome-arrow)
36
+ [![Build Status](https://github.com/wayscience/ome-arrow/actions/workflows/run-tests.yml/badge.svg?branch=main)](https://github.com/wayscience/ome-arrow/actions/workflows/run-tests.yml?query=branch%3Amain)
37
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
38
+ [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
39
+ [![Software DOI badge](https://zenodo.org/badge/DOI/10.5281/zenodo.17664969.svg)](https://doi.org/10.5281/zenodo.17664969)
40
+
41
+ # Open, interoperable, and queryable microscopy images with OME Arrow
42
+
43
+ OME-Arrow uses [Open Microscopy Environment (OME)](https://github.com/ome) specifications through [Apache Arrow](https://arrow.apache.org/) for fast, queryable, and language agnostic bioimage data.
44
+
45
+ <img height="200" src="https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/references_to_files.png">
46
+
47
+ __Images are often left behind from the data model, referenced but excluded from databases.__
48
+
49
+ <img height="200" src="https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/various_ome_arrow_schema.png">
50
+
51
+ __OME-Arrow brings images back into the story.__
52
+
53
+ OME Arrow enables image data to be stored alongside metadata or derived data such as single-cell morphology features.
54
+ Images in OME Arrow are composed of mutlilayer [structs](https://arrow.apache.org/docs/python/generated/pyarrow.struct.html) so they may be stored as values within tables.
55
+ This means you can store, query, and build relationships on data from the same location using any system which is compatible with Apache Arrow (including Parquet) through common data interfaces (such as SQL and DuckDB).
56
+
57
+ ## Project focus
58
+
59
+ This package is intentionally dedicated to work at a per-image level and not large batch handling (though it may be used for those purposes by users or in other projects).
60
+
61
+ - For visualizing OME Arrow and OME Parquet data in Napari, please see the [`napari-ome-arrow`](https://github.com/WayScience/napari-ome-arrow) Napari plugin.
62
+ - For more comprehensive handling of many images and features in the context of the OME Parquet format please see the [`CytoDataFrame`](https://github.com/cytomining/CytoDataFrame) project (and relevant [example notebook](https://github.com/cytomining/CytoDataFrame/blob/main/docs/src/examples/cytodataframe_at_a_glance.ipynb)).
63
+
64
+ ## Installation
65
+
66
+ Install OME Arrow from PyPI or from source:
67
+
68
+ ```sh
69
+ # install from pypi
70
+ pip install ome-arrow
71
+
72
+ # install directly from source
73
+ pip install git+https://github.com/wayscience/ome-arrow.git
74
+ ```
75
+
76
+ ## Quick start
77
+
78
+ See below for a quick start guide.
79
+ Please also reference an example notebook: [Learning to fly with OME-Arrow](https://github.com/wayscience/ome-arrow/tree/main/docs/src/examples/learning_to_fly_with_ome-arrow.ipynb).
80
+
81
+ ```python
82
+ from ome_arrow import OMEArrow
83
+
84
+ # Ingest a tif image through a convenient OME Arrow class
85
+ # We can also ingest OME-Zarr or NumPy arrays.
86
+ oa_image = OMEArrow(
87
+ data="your_image.tif"
88
+ )
89
+
90
+ # Access the OME Arrow struct itself
91
+ # (compatible with Arrow-compliant data storage).
92
+ oa_image.data
93
+
94
+ # Show information about the image.
95
+ oa_image.info()
96
+
97
+ # Display the image with matplotlib.
98
+ oa_image.view(how="matplotlib")
99
+
100
+ # Display the image with pyvista
101
+ # (great for ZYX 3D images; install extras: `pip install 'ome-arrow[viz]'`).
102
+ oa_image.view(how="pyvista")
103
+
104
+ # Export to OME-Parquet.
105
+ # We can also export OME-TIFF, OME-Zarr or NumPy arrays.
106
+ oa_image.export(how="ome-parquet", out="your_image.ome.parquet")
107
+ ```
108
+
109
+ ## Contributing, Development, and Testing
110
+
111
+ Please see our [contributing documentation](https://github.com/wayscience/ome-arrow/tree/main/CONTRIBUTING.md) for more details on contributions, development, and testing.
112
+
113
+ ## Related projects
114
+
115
+ OME Arrow is used or inspired by the following projects, check them out!
116
+
117
+ - [`napari-ome-arrow`](https://github.com/WayScience/napari-ome-arrow): enables you to view OME Arrow and related images.
118
+ - [`nViz`](https://github.com/WayScience/nViz): focuses on ingesting and visualizing various 3D image data.
119
+ - [`CytoDataFrame`](https://github.com/cytomining/CytoDataFrame): provides a DataFrame-like experience for viewing feature and microscopy image data within Jupyter notebook interfaces and creating OME Parquet files.
120
+ - [`coSMicQC`](https://github.com/cytomining/coSMicQC): performs quality control on microscopy feature datasets, visualized using CytoDataFrames.
@@ -0,0 +1,88 @@
1
+ <img height="200" src="https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/logo.png?raw=true">
2
+
3
+ ![PyPI - Version](https://img.shields.io/pypi/v/ome-arrow)
4
+ [![Build Status](https://github.com/wayscience/ome-arrow/actions/workflows/run-tests.yml/badge.svg?branch=main)](https://github.com/wayscience/ome-arrow/actions/workflows/run-tests.yml?query=branch%3Amain)
5
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
6
+ [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
7
+ [![Software DOI badge](https://zenodo.org/badge/DOI/10.5281/zenodo.17664969.svg)](https://doi.org/10.5281/zenodo.17664969)
8
+
9
+ # Open, interoperable, and queryable microscopy images with OME Arrow
10
+
11
+ OME-Arrow uses [Open Microscopy Environment (OME)](https://github.com/ome) specifications through [Apache Arrow](https://arrow.apache.org/) for fast, queryable, and language agnostic bioimage data.
12
+
13
+ <img height="200" src="https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/references_to_files.png">
14
+
15
+ __Images are often left behind from the data model, referenced but excluded from databases.__
16
+
17
+ <img height="200" src="https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/various_ome_arrow_schema.png">
18
+
19
+ __OME-Arrow brings images back into the story.__
20
+
21
+ OME Arrow enables image data to be stored alongside metadata or derived data such as single-cell morphology features.
22
+ Images in OME Arrow are composed of mutlilayer [structs](https://arrow.apache.org/docs/python/generated/pyarrow.struct.html) so they may be stored as values within tables.
23
+ This means you can store, query, and build relationships on data from the same location using any system which is compatible with Apache Arrow (including Parquet) through common data interfaces (such as SQL and DuckDB).
24
+
25
+ ## Project focus
26
+
27
+ This package is intentionally dedicated to work at a per-image level and not large batch handling (though it may be used for those purposes by users or in other projects).
28
+
29
+ - For visualizing OME Arrow and OME Parquet data in Napari, please see the [`napari-ome-arrow`](https://github.com/WayScience/napari-ome-arrow) Napari plugin.
30
+ - For more comprehensive handling of many images and features in the context of the OME Parquet format please see the [`CytoDataFrame`](https://github.com/cytomining/CytoDataFrame) project (and relevant [example notebook](https://github.com/cytomining/CytoDataFrame/blob/main/docs/src/examples/cytodataframe_at_a_glance.ipynb)).
31
+
32
+ ## Installation
33
+
34
+ Install OME Arrow from PyPI or from source:
35
+
36
+ ```sh
37
+ # install from pypi
38
+ pip install ome-arrow
39
+
40
+ # install directly from source
41
+ pip install git+https://github.com/wayscience/ome-arrow.git
42
+ ```
43
+
44
+ ## Quick start
45
+
46
+ See below for a quick start guide.
47
+ Please also reference an example notebook: [Learning to fly with OME-Arrow](https://github.com/wayscience/ome-arrow/tree/main/docs/src/examples/learning_to_fly_with_ome-arrow.ipynb).
48
+
49
+ ```python
50
+ from ome_arrow import OMEArrow
51
+
52
+ # Ingest a tif image through a convenient OME Arrow class
53
+ # We can also ingest OME-Zarr or NumPy arrays.
54
+ oa_image = OMEArrow(
55
+ data="your_image.tif"
56
+ )
57
+
58
+ # Access the OME Arrow struct itself
59
+ # (compatible with Arrow-compliant data storage).
60
+ oa_image.data
61
+
62
+ # Show information about the image.
63
+ oa_image.info()
64
+
65
+ # Display the image with matplotlib.
66
+ oa_image.view(how="matplotlib")
67
+
68
+ # Display the image with pyvista
69
+ # (great for ZYX 3D images; install extras: `pip install 'ome-arrow[viz]'`).
70
+ oa_image.view(how="pyvista")
71
+
72
+ # Export to OME-Parquet.
73
+ # We can also export OME-TIFF, OME-Zarr or NumPy arrays.
74
+ oa_image.export(how="ome-parquet", out="your_image.ome.parquet")
75
+ ```
76
+
77
+ ## Contributing, Development, and Testing
78
+
79
+ Please see our [contributing documentation](https://github.com/wayscience/ome-arrow/tree/main/CONTRIBUTING.md) for more details on contributions, development, and testing.
80
+
81
+ ## Related projects
82
+
83
+ OME Arrow is used or inspired by the following projects, check them out!
84
+
85
+ - [`napari-ome-arrow`](https://github.com/WayScience/napari-ome-arrow): enables you to view OME Arrow and related images.
86
+ - [`nViz`](https://github.com/WayScience/nViz): focuses on ingesting and visualizing various 3D image data.
87
+ - [`CytoDataFrame`](https://github.com/cytomining/CytoDataFrame): provides a DataFrame-like experience for viewing feature and microscopy image data within Jupyter notebook interfaces and creating OME Parquet files.
88
+ - [`coSMicQC`](https://github.com/cytomining/coSMicQC): performs quality control on microscopy feature datasets, visualized using CytoDataFrames.
@@ -83,3 +83,6 @@ autodoc_preserve_defaults = True
83
83
 
84
84
  # enable anchor creation
85
85
  myst_heading_anchors = 3
86
+
87
+ # disable notebook execution
88
+ nb_execution_mode = "off"