Metadata-Version: 2.3
Name: scmorph
Version: 0.2.1
Summary: Single-cell morphological analysis
Project-URL: Documentation, https://scmorph.readthedocs.io/
Project-URL: Homepage, https://github.com/edbiomedai/scmorph
Project-URL: Source, https://github.com/edbiomedai/scmorph
Author: Jesko Wagner
Maintainer-email: Jesko Wagner <35219306+jeskowagner@users.noreply.github.ccom>
License: MIT License
        
        Copyright (c) 2024 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.
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: anndata>=0.8
Requires-Dist: certifi
Requires-Dist: formulaic
Requires-Dist: matplotlib>=3.6
Requires-Dist: numba>=0.56
Requires-Dist: numpy>=1.23
Requires-Dist: pandas>=1.5
Requires-Dist: patsy
Requires-Dist: pyarrow
Requires-Dist: pyod
Requires-Dist: scanpy
Requires-Dist: scikit-learn>=1.1
Requires-Dist: seaborn
Requires-Dist: session-info
Requires-Dist: tqdm
Provides-Extra: dev
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: setuptools-scm; extra == 'dev'
Requires-Dist: twine>=4.0.2; extra == 'dev'
Provides-Extra: doc
Requires-Dist: docutils!=0.18.*,!=0.19.*,>=0.8; extra == 'doc'
Requires-Dist: ipykernel; extra == 'doc'
Requires-Dist: ipython; extra == 'doc'
Requires-Dist: myst-nb>=1.1; extra == 'doc'
Requires-Dist: pandas; extra == 'doc'
Requires-Dist: sphinx-autodoc-typehints; extra == 'doc'
Requires-Dist: sphinx-book-theme>=1; extra == 'doc'
Requires-Dist: sphinx-copybutton; extra == 'doc'
Requires-Dist: sphinx-tabs; extra == 'doc'
Requires-Dist: sphinx>=4; extra == 'doc'
Requires-Dist: sphinxcontrib-bibtex>=1; extra == 'doc'
Requires-Dist: sphinxext-opengraph; extra == 'doc'
Provides-Extra: test
Requires-Dist: coverage; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Description-Content-Type: text/markdown

[![Stars](https://img.shields.io/github/stars/edbiomedai/scmorph?style=flat&logo=GitHub&color=yellow)](https://github.com/edbiomedai/scmorph/stargazers)
[![PyPI](https://img.shields.io/pypi/v/scmorph?logo=PyPI)](https://pypi.org/project/scmorph)
[![Downloads](https://static.pepy.tech/badge/scmorph)](https://pepy.tech/project/scmorph)
[![Conda](https://img.shields.io/conda/dn/conda-forge/scmorph?logo=Anaconda)](https://anaconda.org/conda-forge/scmorph)
[![Docs](https://readthedocs.org/projects/scmorph/badge/?version=latest)](https://scmorph.readthedocs.io)
[![Chat](https://img.shields.io/badge/zulip-join_chat-%2367b08f.svg)](https://scverse.zulipchat.com)

# 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](https://github.com/cytomining/pycytominer) package in the
following ways:

-   **Single-cell**: Enables efficient analysis of single-cell data
-   **Batch-correction**: Natively integrates a [batch correction
    technique](https://doi.org/10.1016/j.cels.2019.03.010) widely used
    for scRNA-seq.
-   **Enhanced feature selection**: Removes non-linearly correlated
    features using an adapted [Chatterjee correlation
    coefficient](https://doi.org/10.48550/arXiv.2108.06828), 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/>
