scmorph

scmorph: a Python package for analysing single-cell morphological profiles - Published in JOSS (2025)

https://github.com/edbiomedai/scmorph

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README and JOSS metadata
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

high-content morphological-profiling single-cell

Scientific Fields

Biochemistry, Genetics and Molecular Biology Life Sciences - 83% confidence
Artificial Intelligence and Machine Learning Computer Science - 83% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Single-cell morphological analysis

Basic Info
Statistics
  • Stars: 9
  • Watchers: 1
  • Forks: 2
  • Open Issues: 1
  • Releases: 5
Topics
high-content morphological-profiling single-cell
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing Funding License Citation

README.md

Stars PyPI Downloads Conda Docs Chat

scmorph - Single-cell morphological analysis

scmorph is a Python library to process CellPainting or any morphological data. It unlocks single-cell data to model heterogenity.

scmorph differs from the popular PyCytominer package in the following ways:

  • Single-cell: Enables efficient analysis of single-cell data
  • Batch-correction: Natively integrates a batch correction technique widely used for scRNA-seq.
  • Enhanced feature selection: Removes non-linearly correlated features using an adapted Chatterjee correlation coefficient, which results in fewer, more meaningful features.
  • Enhanced aggregation: Offers statistically robust aggregation methods to derive meaningful distances to a control sample.

It provides tools to make single-cell data analysis easier and more reproducible. For example, it can be used to:

  • Load in data from csv files, e.g. generated by CellProfiler.
  • Remove batch effects to compare conditions across batches.
  • QC both cells and images.
  • Remove redundant features based on correlation.
  • Reduce dimensionality to gain quick intuition about the data\'s spread.
  • Perform statistically robust aggregate analysis to quickly identify hits.

Installation

Install scmorph via pip or conda:

```bash pip install scmorph

or:

conda install -c conda-forge scmorph ```

Usage

For documentation on the usage of scmorph, please see https://scmorph.readthedocs.io/en/latest/

Citation

If you use scmorph in your work, please cite the scmorph publication as follows:

scmorph: a Python package for analysing single-cell morphological profiles

Jesko Wagner, Hugh Warden, Ava Khamseh, Sjoerd Viktor Beentjes,

JOSS 2025 Aug 22. doi: 10.21105/joss.08324.

Owner

  • Name: EdBiomedAI
  • Login: edbiomedai
  • Kind: organization

Ava Khamseh and Sjoerd Beentjes groups developing and applying causal inference methodologies for biomedical discovery

JOSS Publication

scmorph: a Python package for analysing single-cell morphological profiles
Published
August 22, 2025
Volume 10, Issue 112, Page 8324
Authors
Jesko Wagner ORCID
MRC Human Genetics Unit, Institute of Genetics and Cancer, University of Edinburgh, Edinburgh EH4 2XU, United Kingdom
Hugh Warden ORCID
MRC Human Genetics Unit, Institute of Genetics and Cancer, University of Edinburgh, Edinburgh EH4 2XU, United Kingdom
Ava Khamseh ORCID
MRC Human Genetics Unit, Institute of Genetics and Cancer, University of Edinburgh, Edinburgh EH4 2XU, United Kingdom, School of Informatics, University of Edinburgh, Edinburgh EH8 9AB, United Kingdom
Sjoerd Viktor Beentjes ORCID
MRC Human Genetics Unit, Institute of Genetics and Cancer, University of Edinburgh, Edinburgh EH4 2XU, United Kingdom, School of Mathematics and Maxwell Institute for Mathematical Sciences, University of Edinburgh, Edinburgh EH9 3FD, United Kingdom
Editor
Charlotte Soneson ORCID
Tags
biology drug discovery morphological profiling single-cell

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Wagner
  given-names: Jesko
  orcid: "https://orcid.org/0000-0001-9805-7192"
- family-names: Warden
  given-names: Hugh
  orcid: "https://orcid.org/0000-0002-4308-7316"
- family-names: Khamseh
  given-names: Ava
  orcid: "https://orcid.org/0000-0001-5203-2205"
- family-names: Beentjes
  given-names: Sjoerd Viktor
  orcid: "https://orcid.org/0000-0002-7998-4262"
contact:
- family-names: Khamseh
  given-names: Ava
  orcid: "https://orcid.org/0000-0001-5203-2205"
- family-names: Beentjes
  given-names: Sjoerd Viktor
  orcid: "https://orcid.org/0000-0002-7998-4262"
doi: 10.5281/zenodo.16890402
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Wagner
    given-names: Jesko
    orcid: "https://orcid.org/0000-0001-9805-7192"
  - family-names: Warden
    given-names: Hugh
    orcid: "https://orcid.org/0000-0002-4308-7316"
  - family-names: Khamseh
    given-names: Ava
    orcid: "https://orcid.org/0000-0001-5203-2205"
  - family-names: Beentjes
    given-names: Sjoerd Viktor
    orcid: "https://orcid.org/0000-0002-7998-4262"
  date-published: 2025-08-22
  doi: 10.21105/joss.08324
  issn: 2475-9066
  issue: 112
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 8324
  title: "scmorph: a Python package for analysing single-cell
    morphological profiles"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.08324"
  volume: 10
title: "scmorph: a Python package for analysing single-cell
  morphological profiles"

GitHub Events

Total
  • Create event: 5
  • Issues event: 9
  • Release event: 4
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 14
  • Public event: 1
  • Push event: 79
  • Pull request event: 7
  • Fork event: 1
Last Year
  • Create event: 5
  • Issues event: 9
  • Release event: 4
  • Watch event: 5
  • Delete event: 1
  • Issue comment event: 14
  • Public event: 1
  • Push event: 79
  • Pull request event: 7
  • Fork event: 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 6
  • Total pull requests: 9
  • Average time to close issues: 13 days
  • Average time to close pull requests: 19 minutes
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 3.83
  • Average comments per pull request: 0.67
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 6
  • Pull requests: 6
  • Average time to close issues: 13 days
  • Average time to close pull requests: 29 minutes
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 3.83
  • Average comments per pull request: 0.83
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tushardave26 (3)
  • Armavica (2)
  • jenna-tomkinson (1)
Pull Request Authors
  • jeskowagner (6)
  • flying-sheep (2)
  • scverse-bot (1)
Top Labels
Issue Labels
enhancement (6)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 126 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 7
  • Total maintainers: 1
pypi.org: scmorph

Single-cell morphological analysis

  • Homepage: https://github.com/edbiomedai/scmorph
  • Documentation: https://scmorph.readthedocs.io/
  • License: MIT License Copyright (c) 2025 Jesko Wagner Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • Latest release: 0.4.0
    published 5 months ago
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 126 Last month
Rankings
Dependent packages count: 4.8%
Dependent repos count: 6.3%
Average: 10.4%
Downloads: 19.9%
Maintainers (1)
Last synced: 4 months ago
conda-forge.org: scmorph
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Average: 42.6%
Dependent packages count: 51.2%
Last synced: 4 months ago

Dependencies

.github/workflows/build.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/release.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test.yaml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
pyproject.toml pypi
  • anndata >=0.8
  • certifi *
  • formulaic *
  • matplotlib >=3.6
  • numba >=0.56
  • numpy >=1.23
  • pandas >=1.5
  • patsy *
  • pyarrow *
  • pyod *
  • scanpy *
  • scikit-learn >=1.1
  • seaborn *
  • session-info *
  • tqdm *