From 9e07e6040ffbcf8813ae1972cb5ee7ec7114fa9d Mon Sep 17 00:00:00 2001 From: d33bs Date: Mon, 13 Oct 2025 12:47:46 -0600 Subject: [PATCH 1/4] enhance readme for clarity --- readme.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/readme.md b/readme.md index 2bf512d8..e3991fb5 100644 --- a/readme.md +++ b/readme.md @@ -13,9 +13,12 @@ _Diagram showing data flow relative to this project._ ## Summary -CytoTable enables single-cell morphology data analysis by cleaning and transforming CellProfiler (`.csv` or `.sqlite`), cytominer-database (`.sqlite`), and DeepProfiler (`.npz`), and other sources such as IN Carta output data at scale. -CytoTable creates parquet files for both independent analysis and for input into [Pycytominer](https://github.com/cytomining/pycytominer). -The output files (such as [Parquet](https://parquet.apache.org/) and [anndata](https://github.com/scverse/anndata) file formats) have a documented data model, including referenceable schema where appropriate (for validation within Pycytominer or other image-based profiling projects). +Image-based profiling often entails preparing data for analysis by transforming the outputs of image analysis tools into a consistent, analysis-ready format. +CytoTable streamlines analyses by harmonizing CellProfiler (`.csv` or `.sqlite`), cytominer-database (`.sqlite`), DeepProfiler (`.npz`), or other sources such as IN Carta output data at scale. +This helps biologists by lowering the barrier between image acquisition and data interpretation, enabling them to focus on biological insights rather than file formats or data wrangling. + +CytoTable creates Parquet or AnnData files for both independent analysis and for input into [Pycytominer](https://github.com/cytomining/pycytominer). +The output files (such as [Parquet](https://parquet.apache.org/) and [AnnData](https://github.com/scverse/anndata) file formats) have a documented data model, including referenceable schema where appropriate (for validation within Pycytominer or other image-based profiling projects). > 📔🧑‍🏫 Check out our demonstration notebook for a one-stop reference of how to use CytoTable. > [CytoTable mise en place (general overview)](https://cytomining.github.io/CytoTable/examples/cytotable_mise_en_place_general_overview.html) From f9f9d0d8c10c3a57b77593d2a73fdf45a85d8fee Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 18:54:11 +0000 Subject: [PATCH 2/4] [pre-commit.ci lite] apply automatic fixes --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3f824540..3324d3e2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -56,7 +56,7 @@ repos: args: ["-c", "pyproject.toml"] additional_dependencies: ["bandit[toml]"] - repo: https://github.com/PyCQA/isort - rev: 6.1.0 + rev: 7.0.0 hooks: - id: isort - repo: https://github.com/jendrikseipp/vulture @@ -82,7 +82,7 @@ repos: hooks: - id: almanack-check - repo: https://github.com/PyCQA/pylint - rev: v3.3.9 + rev: v4.0.0 hooks: - id: pylint name: pylint From d62830df5fca93503da190141565d7259f5d52a5 Mon Sep 17 00:00:00 2001 From: d33bs Date: Mon, 13 Oct 2025 13:38:23 -0600 Subject: [PATCH 3/4] linting --- .pre-commit-config.yaml | 4 ++-- .pylintrc | 4 ---- .../in-carta/colas-lab/shrink_colas_lab_data_for_tests.py | 6 +++--- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3f824540..3324d3e2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -56,7 +56,7 @@ repos: args: ["-c", "pyproject.toml"] additional_dependencies: ["bandit[toml]"] - repo: https://github.com/PyCQA/isort - rev: 6.1.0 + rev: 7.0.0 hooks: - id: isort - repo: https://github.com/jendrikseipp/vulture @@ -82,7 +82,7 @@ repos: hooks: - id: almanack-check - repo: https://github.com/PyCQA/pylint - rev: v3.3.9 + rev: v4.0.0 hooks: - id: pylint name: pylint diff --git a/.pylintrc b/.pylintrc index 19a310c3..ff8adac7 100644 --- a/.pylintrc +++ b/.pylintrc @@ -54,10 +54,6 @@ persistent=yes # the version used to run pylint. py-version=3.8 -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages. -suggestion-mode=yes - # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no diff --git a/tests/data/in-carta/colas-lab/shrink_colas_lab_data_for_tests.py b/tests/data/in-carta/colas-lab/shrink_colas_lab_data_for_tests.py index 71425ae1..f5bc0d21 100644 --- a/tests/data/in-carta/colas-lab/shrink_colas_lab_data_for_tests.py +++ b/tests/data/in-carta/colas-lab/shrink_colas_lab_data_for_tests.py @@ -50,7 +50,7 @@ # as a pyarrow table then output to a new and # smaller csv for testing purposes. - OUTPUT_FILENAME = ( + output_filename = ( f"Test 0 Day{idx} Test Test_2024_Jan-0{idx+1}-{idx+12}-12-12_Test.csv" ) @@ -68,10 +68,10 @@ ).fetch_arrow_table(), # output the filtered data as a CSV to a new location output_file=( - f"{TARGET_DATA_DIR}/{OUTPUT_FILENAME}" + f"{TARGET_DATA_DIR}/{output_filename}" # For some files lowercase the first letter of the file # as a simulation of the source data. if idx < 3 - else f"{TARGET_DATA_DIR}/{OUTPUT_FILENAME[0].lower() + OUTPUT_FILENAME[1:]}" + else f"{TARGET_DATA_DIR}/{output_filename[0].lower() + output_filename[1:]}" ), ) From 6dcd6d5f30f66467bebc50daec86712340d42fcc Mon Sep 17 00:00:00 2001 From: d33bs Date: Thu, 16 Oct 2025 10:02:36 -0600 Subject: [PATCH 4/4] Update .pre-commit-config.yaml --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3324d3e2..411d71fb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,7 +16,7 @@ repos: hooks: - id: poetry-check - repo: https://github.com/tox-dev/pyproject-fmt - rev: "v2.10.0" + rev: "v2.11.0" hooks: - id: pyproject-fmt - repo: https://github.com/codespell-project/codespell @@ -82,7 +82,7 @@ repos: hooks: - id: almanack-check - repo: https://github.com/PyCQA/pylint - rev: v4.0.0 + rev: v4.0.1 hooks: - id: pylint name: pylint