Harmony-Pytorch
---------------
|PyPI| |Conda| |Python| |License|
.. |PyPI| image:: https://img.shields.io/pypi/v/harmony-pytorch.svg
:target: https://pypi.org/project/harmony-pytorch
.. |Conda| image:: https://img.shields.io/conda/v/bioconda/harmony-pytorch
:target: https://anaconda.org/bioconda/harmony-pytorch
.. |Python| image:: https://img.shields.io/pypi/pyversions/harmony-pytorch.svg
:target: https://pypi.org/project/harmony-pytorch
.. |License| image:: https://img.shields.io/github/license/lilab-bcb/harmony-pytorch
:target: https://github.com/lilab-bcb/harmony-pytorch/blob/master/LICENSE
This is a Pytorch implementation of Harmony algorithm on single-cell sequencing data integration. Please see `Ilya Korsunsky et al., 2019 <https://www.nature.com/articles/s41592-019-0619-0>`_ for details.
Installation
^^^^^^^^^^^^^
This package is published on PyPI::
pip install harmony-pytorch
Usage
^^^^^^^^
General Case
##############
Given an embedding ``X`` as a N-by-d matrix in numpy array structure (N for number of cells, d for embedding components) and cell attributes as a Data Frame ``df_metadata``, use Harmony for data integration as the following::
from harmony import harmonize
Z = harmonize(X, df_metadata, batch_key = 'Channel')
where ``Channel`` is the attribute in ``df_metadata`` for batches.
Alternatively, if there are multiple attributes for batches, write::
Z = harmonize(X, df_metadata, batch_key = ['Lab', 'Date'])
Input as MultimodalData Object
###############################
It's easy for Harmony-pytorch to work with count matrix data structure from `PegasusIO <https://pegasusio.readthedocs.io>`_ package. Let ``data`` be a MultimodalData object in Python::
from harmony import harmonize
Z = harmonize(data.obsm['X_pca'], data.obs, batch_key = 'Channel')
data.obsm['X_pca_harmony'] = Z
This will calculate the harmonized PCA matrix for the default UnimodalData of ``data``.
Given a UnimodalData object ``unidata``, you can also use the code above to perform Harmony algorithm: simply substitute ``unidata`` for ``data`` there.
Input as AnnData Object
##########################
It's easy for Harmony-pytorch to work with annotated count matrix data structure from `anndata <https://icb-anndata.readthedocs-hosted.com/en/stable/index.html>`_ package. Let ``adata`` be an AnnData object in Python::
from harmony import harmonize
Z = harmonize(adata.obsm['X_pca'], adata.obs, batch_key = '<your-batch-key>')
adata.obsm['X_harmony'] = Z
where ``<your-batch-key>`` should be replaced by the actual batch key attribute name in your data.
For details about ``AnnData`` data structure, please refer to its `documentation <https://icb-anndata.readthedocs-hosted.com/en/stable/anndata.AnnData.html>`_.
Raw data
{
"_id": null,
"home_page": "https://github.com/lilab-bcb/harmony-pytorch",
"name": "harmony-pytorch",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.8",
"maintainer_email": "",
"keywords": "single-cell genomics data integration",
"author": "Yiming Yang, Bo Li",
"author_email": "yang.yihming@gmail.com, lijiganjun@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8d/df/71fe694d70ff148db2364c4118a6bbd37e598be269be471ed3d2f6bfee1a/harmony-pytorch-0.1.8.tar.gz",
"platform": null,
"description": "Harmony-Pytorch\n---------------\n\n|PyPI| |Conda| |Python| |License|\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/harmony-pytorch.svg\n :target: https://pypi.org/project/harmony-pytorch\n\n.. |Conda| image:: https://img.shields.io/conda/v/bioconda/harmony-pytorch\n :target: https://anaconda.org/bioconda/harmony-pytorch\n\n.. |Python| image:: https://img.shields.io/pypi/pyversions/harmony-pytorch.svg\n :target: https://pypi.org/project/harmony-pytorch\n\n.. |License| image:: https://img.shields.io/github/license/lilab-bcb/harmony-pytorch\n :target: https://github.com/lilab-bcb/harmony-pytorch/blob/master/LICENSE\n\nThis is a Pytorch implementation of Harmony algorithm on single-cell sequencing data integration. Please see `Ilya Korsunsky et al., 2019 <https://www.nature.com/articles/s41592-019-0619-0>`_ for details.\n\nInstallation\n^^^^^^^^^^^^^\n\nThis package is published on PyPI::\n\n\tpip install harmony-pytorch\n\n\nUsage\n^^^^^^^^\n\nGeneral Case\n##############\n\nGiven an embedding ``X`` as a N-by-d matrix in numpy array structure (N for number of cells, d for embedding components) and cell attributes as a Data Frame ``df_metadata``, use Harmony for data integration as the following::\n\n\tfrom harmony import harmonize\n\tZ = harmonize(X, df_metadata, batch_key = 'Channel')\n\n\nwhere ``Channel`` is the attribute in ``df_metadata`` for batches.\n\nAlternatively, if there are multiple attributes for batches, write::\n\n\tZ = harmonize(X, df_metadata, batch_key = ['Lab', 'Date'])\n\nInput as MultimodalData Object\n###############################\n\nIt's easy for Harmony-pytorch to work with count matrix data structure from `PegasusIO <https://pegasusio.readthedocs.io>`_ package. Let ``data`` be a MultimodalData object in Python::\n\n from harmony import harmonize\n Z = harmonize(data.obsm['X_pca'], data.obs, batch_key = 'Channel')\n data.obsm['X_pca_harmony'] = Z\n\nThis will calculate the harmonized PCA matrix for the default UnimodalData of ``data``.\n\nGiven a UnimodalData object ``unidata``, you can also use the code above to perform Harmony algorithm: simply substitute ``unidata`` for ``data`` there.\n\nInput as AnnData Object\n##########################\n\nIt's easy for Harmony-pytorch to work with annotated count matrix data structure from `anndata <https://icb-anndata.readthedocs-hosted.com/en/stable/index.html>`_ package. Let ``adata`` be an AnnData object in Python::\n\n\tfrom harmony import harmonize\n\tZ = harmonize(adata.obsm['X_pca'], adata.obs, batch_key = '<your-batch-key>')\n\tadata.obsm['X_harmony'] = Z\n\nwhere ``<your-batch-key>`` should be replaced by the actual batch key attribute name in your data.\n\nFor details about ``AnnData`` data structure, please refer to its `documentation <https://icb-anndata.readthedocs-hosted.com/en/stable/anndata.AnnData.html>`_.\n",
"bugtrack_url": null,
"license": "",
"summary": "Pytorch implementation of Harmony algorithm on single-cell sequencing data integration",
"version": "0.1.8",
"project_urls": {
"Homepage": "https://github.com/lilab-bcb/harmony-pytorch"
},
"split_keywords": [
"single-cell",
"genomics",
"data",
"integration"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "75da42486f1c79b6f2db9140ee23161791e5b25d9369f30c1d9f67b67f3eb4bf",
"md5": "0a96f6dbae1a65574d9e6d71d61c75df",
"sha256": "1f92f6145ea93225b0226fda9da5bdd442e411d14ff402052afae0fde7fd1452"
},
"downloads": -1,
"filename": "harmony_pytorch-0.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0a96f6dbae1a65574d9e6d71d61c75df",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.8",
"size": 8474,
"upload_time": "2024-01-07T21:36:54",
"upload_time_iso_8601": "2024-01-07T21:36:54.488914Z",
"url": "https://files.pythonhosted.org/packages/75/da/42486f1c79b6f2db9140ee23161791e5b25d9369f30c1d9f67b67f3eb4bf/harmony_pytorch-0.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ddf71fe694d70ff148db2364c4118a6bbd37e598be269be471ed3d2f6bfee1a",
"md5": "6c97161169f87d576716e03dd1c0ab08",
"sha256": "1b097906d49c6ed9dde6cf234f7d987fb49a3b649b8a1323d99e6ea71b5b7df2"
},
"downloads": -1,
"filename": "harmony-pytorch-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "6c97161169f87d576716e03dd1c0ab08",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 8373,
"upload_time": "2024-01-07T21:36:56",
"upload_time_iso_8601": "2024-01-07T21:36:56.059462Z",
"url": "https://files.pythonhosted.org/packages/8d/df/71fe694d70ff148db2364c4118a6bbd37e598be269be471ed3d2f6bfee1a/harmony-pytorch-0.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-07 21:36:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lilab-bcb",
"github_project": "harmony-pytorch",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "harmony-pytorch"
}