Skip to main content

Unified Hierarchical Annotation Framework for Single-cell Data

Project description

uHAF: Universal Hierarchical Annotation Framework

uHAF is a Python library developed to address the challenges of inconsistent cell type annotations in single-cell transcriptomics, such as varied naming conventions and hierarchical granularity. It integrates organ-specific hierarchical cell type trees (uHAF-T) and a mapping tool (uHAF-GPT) powered by large language models to provide a standardized framework for annotation. By enabling consistent label unification, hierarchical analysis, and integration of diverse datasets, uHAF enhances machine learning applications and facilitates biologically meaningful evaluations. This library is an essential resource for the single-cell research community, fostering collaborative refinement and standardization of cell type annotations.

Explore Online

Installation

Install uHAF via pip:

pip install uhaf

Getting Started

Building uHAF

Start by building a uHAF object for your dataset:

import uhaf as uhaflib

uhaf = uhaflib.build_uhaf(latest=True)
print(len(uhaf.df_uhafs))

This generates a uHAF instance containing annotations for all organs. The example above initializes the uHAF2.2.0 dataset.

Tracing Cell Types

Trace the hierarchical ancestry of a target cell type:

ancestors = uhaf.track_cell_from_uHAF(sheet_name='Lung', cell_type_target='CD8 T cell')
print(ancestors)

Output:

['Cell', 'Lymphocyte', 'T cell', 'CD8 T cell']

Annotation Levels

Retrieve hierarchical annotation levels for cell types. Specify the desired level (e.g., main, middle, or fine).

example_cell_types = ['Pericyte', 'Macrophage', 'Monocyte-derived macrophage', 'Monocyte', 'Dendritic cell']
annotation_level = 2  # Middle cell type level
annotations = uhaf.set_annotation_level(example_cell_types, sheet_name='Heart', annotation_level=annotation_level)
print(annotations)

Example Output:

{'Pericyte': 'Pericyte', 'Macrophage': 'Macrophage', 'Monocyte-derived macrophage': 'Macrophage', 'Monocyte': 'Monocyte', 'Dendritic cell': 'Dendritic cell'}

Mapping Custom Labels

To map custom cell type labels to uHAF:

  1. Prepare unique cell type labels from your dataset:

    original_labels = ['V-CM', 'LA-CM', 'RA-CM', 'Capillary-EC', 'Lymphatic-EC']
    
  2. Generate uHAF-GPT prompts:

    print(uhaf.generate_uhaf_GPTs_prompts('Heart', original_labels))
    

    Copy the output and use it on the uHAF-GPT Mapping Website to get the mapped labels.

  3. Use the mapping dictionary to transform your labels:

    mapping_results = {"V-CM": "Ventricle cardiomyocyte cell", "LA-CM": "Atrial cardiomyocyte cell"}
    transformed_labels = [mapping_results[label] for label in original_labels]
    print(transformed_labels)
    

Generating Nested JSON

Export the uHAF tree for a specific organ in nested JSON format:

print(uhaf.dict_uhafs['Heart'])

Contribution

We welcome contributions to improve and expand the uHAF library. For more details, please refer to our contribution guidelines.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uhaf-0.1.6.tar.gz (427.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uhaf-0.1.6-py3-none-any.whl (425.6 kB view details)

Uploaded Python 3

File details

Details for the file uhaf-0.1.6.tar.gz.

File metadata

  • Download URL: uhaf-0.1.6.tar.gz
  • Upload date:
  • Size: 427.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for uhaf-0.1.6.tar.gz
Algorithm Hash digest
SHA256 af4224dce93c28f774c07536aec8d9084f6af57b7d3522a345ce01f79d9297f9
MD5 f9e4db79d9ab7033e5262ee5030298fd
BLAKE2b-256 336c8bcc7d22f0c7608fba3e7904a061c6b846bf112ea79b47ac7311120ac6f3

See more details on using hashes here.

File details

Details for the file uhaf-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: uhaf-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 425.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for uhaf-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 95cada4f121938d4ad75ee9b6ebeb1bec0c376544232e79866a34652508af72d
MD5 e2472f33f4813e7d99d615fa7b9e589c
BLAKE2b-256 4819aa5596e4713d0f3181cecbd5f0d67223a1c6a9626b236d93c64391660d35

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page