![FeatureMAP Illustration](./figures/featureMAP.png)
# FeatureMAP: Feature-preserving Manifold Approximation and Projection
Visualizing single-cell data is crucial for understanding cellular heterogeneity and dynamics. Traditional methods like UMAP and t-SNE are effective for clustering but often miss critical gene information. FeatureMAP innovatively combines UMAP and PCA concepts to preserve both clustering structures and gene feature variations within a low-dimensional space.
Z
## Description
FeatureMAP introduces a novel approach by enhancing manifold learning with pairwise tangent space embedding, aiming to retain crucial aspects of cellular data.
We introduce two visualization by FeatureMAP: expression (GEX) and variation (GVA) embedding.
Here is an example over one synthetic dataset ([BEELINE](https://github.com/Murali-group/Beeline)) with bifurcation model. Compared with UMAP, FeatureMAP-GEX better preserves density (similar to densMAP), and FeatureMAP-GVA shows trajectories.
![Bifurcation Embedding](./figures/bifurcation_embedding.png)
Besides the 2-dimensional visualization, FeatureMAP presents three core concepts:
1. **Gene Contribution**: Estimating and projecting gene feature loadings. The arrow represents the direction and magnitude of one gene's change.
![Gene Contribution](./figures/gene_contribution.png)
2. **Gene Variation Trajectory**: Tracking the cell differentiation across states. There are clear paths (transition states) connecting cell states (core states) in a knot-and-thread way.
![Gene Variation Trajectory](./figures/gene_variation_trajectory.png)
[View 3D Plot](https://YYT1002.github.io/FeatureMAP/figures/3d_plot.html)
3. **Core and Transition States**: Defined computationally through cell density and cell variation properties. Core states are cells with higher cell density and smaller cell variation, while transition states are lower cell density and larger cell variation.
![Core and Transition States](./figures/core_trans_states.png)
These enhancements allow for differential gene variation analysis, highlighting key regulatory genes that drive transitions between cellular states. Tested on both synthetic and real single-cell RNA sequencing (scRNA-seq) data, including studies on pancreatic development and T-cell exhaustion, FeatureMAP provides a more detailed understanding of cellular trajectories and regulatory mechanisms.
## Getting Started
### Dependencies
- Python 3.8 or higher
- Required Python libraries: numpy, scipy, matplotlib, umap-learn, scikit-learn
- Operating System: Any (Windows, macOS, Linux)
### Installation
### 1. Install directly using pip:
```bash
pip install featuremap
```
### 2. Installation via Conda
For users who prefer using Conda, especially for managing complex dependencies and environments in scientific computing.
## How to use FeatureMAP
### Data Visualization
For data visualization, FeatureMAP introduces expression embedding and variation embedding:
```
import featuremap:
from sklearn.datasets import fetch_openml
from sklearn.utils import resample
digits = fetch_openml(name='mnist_784')
subsample, subsample_labels = resample(digits.data, digits.target, n_samples=7000, stratify=digits.target, random_state=1)
x_emb = featuremap.featureMAP().fit_transform(subsample)
v_emb = featuremap.featureMAP(output_variation=True).fit_transform(subsample)
```
#### Parameters:
output_variation: bool (False by default). Decide to generate expression embedding or variation embedding.
#### Outputs
x_emb: expession embedding to show the clustering
v_emb: variation embedding to show the trajectory
The tutorial is ??????
## Example data and plots
## Documentation
## Citation
Our FeatureMAP alogrithm is
## License
The FeatureMAP package is under BSD-3-Clause license.
## Contact
### Acknowledgments
Thanks to the researchers and developers who provided insights and code snippets, including:
Raw data
{
"_id": null,
"home_page": "https://github.com/YYT1002/FeatureMAP",
"name": "featuremap",
"maintainer": "Yang Yang",
"docs_url": null,
"requires_python": null,
"maintainer_email": "yangyangnwpu@gmail.com",
"keywords": "dimensionality reduction, manifold learning, tangent space embedding",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/8f/f4/e4b14ba8fe8b45caf8018bef936fe0411ac5b49288e3555028217108a4d3/featuremap-1.0.0.tar.gz",
"platform": null,
"description": "![FeatureMAP Illustration](./figures/featureMAP.png)\n\n# FeatureMAP: Feature-preserving Manifold Approximation and Projection\n\nVisualizing single-cell data is crucial for understanding cellular heterogeneity and dynamics. Traditional methods like UMAP and t-SNE are effective for clustering but often miss critical gene information. FeatureMAP innovatively combines UMAP and PCA concepts to preserve both clustering structures and gene feature variations within a low-dimensional space.\nZ\n## Description\n\nFeatureMAP introduces a novel approach by enhancing manifold learning with pairwise tangent space embedding, aiming to retain crucial aspects of cellular data.\nWe introduce two visualization by FeatureMAP: expression (GEX) and variation (GVA) embedding.\nHere is an example over one synthetic dataset ([BEELINE](https://github.com/Murali-group/Beeline)) with bifurcation model. Compared with UMAP, FeatureMAP-GEX better preserves density (similar to densMAP), and FeatureMAP-GVA shows trajectories.\n![Bifurcation Embedding](./figures/bifurcation_embedding.png)\n\nBesides the 2-dimensional visualization, FeatureMAP presents three core concepts:\n1. **Gene Contribution**: Estimating and projecting gene feature loadings. The arrow represents the direction and magnitude of one gene's change. \n ![Gene Contribution](./figures/gene_contribution.png)\n\n2. **Gene Variation Trajectory**: Tracking the cell differentiation across states. There are clear paths (transition states) connecting cell states (core states) in a knot-and-thread way.\n ![Gene Variation Trajectory](./figures/gene_variation_trajectory.png)\n [View 3D Plot](https://YYT1002.github.io/FeatureMAP/figures/3d_plot.html)\n \n3. **Core and Transition States**: Defined computationally through cell density and cell variation properties. Core states are cells with higher cell density and smaller cell variation, while transition states are lower cell density and larger cell variation.\n ![Core and Transition States](./figures/core_trans_states.png)\n \n\nThese enhancements allow for differential gene variation analysis, highlighting key regulatory genes that drive transitions between cellular states. Tested on both synthetic and real single-cell RNA sequencing (scRNA-seq) data, including studies on pancreatic development and T-cell exhaustion, FeatureMAP provides a more detailed understanding of cellular trajectories and regulatory mechanisms.\n\n\n## Getting Started\n\n### Dependencies\n\n- Python 3.8 or higher\n- Required Python libraries: numpy, scipy, matplotlib, umap-learn, scikit-learn\n- Operating System: Any (Windows, macOS, Linux)\n\n### Installation\n\n### 1. Install directly using pip:\n\n```bash\npip install featuremap\n```\n\n### 2. Installation via Conda\nFor users who prefer using Conda, especially for managing complex dependencies and environments in scientific computing.\n\n## How to use FeatureMAP\n\n### Data Visualization\nFor data visualization, FeatureMAP introduces expression embedding and variation embedding:\n```\nimport featuremap:\nfrom sklearn.datasets import fetch_openml\nfrom sklearn.utils import resample\n\ndigits = fetch_openml(name='mnist_784')\nsubsample, subsample_labels = resample(digits.data, digits.target, n_samples=7000, stratify=digits.target, random_state=1)\n\nx_emb = featuremap.featureMAP().fit_transform(subsample)\nv_emb = featuremap.featureMAP(output_variation=True).fit_transform(subsample)\n\n```\n\n#### Parameters:\noutput_variation: bool (False by default). Decide to generate expression embedding or variation embedding.\n\n#### Outputs\nx_emb: expession embedding to show the clustering\n\nv_emb: variation embedding to show the trajectory\n\nThe tutorial is ??????\n\n## Example data and plots\n\n\n## Documentation\n\n## Citation\nOur FeatureMAP alogrithm is \n\n\n## License\nThe FeatureMAP package is under BSD-3-Clause license.\n\n## Contact\n\n### Acknowledgments\nThanks to the researchers and developers who provided insights and code snippets, including:\n\n",
"bugtrack_url": null,
"license": "GPL",
"summary": "FeatureMAP",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/YYT1002/FeatureMAP"
},
"split_keywords": [
"dimensionality reduction",
" manifold learning",
" tangent space embedding"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "baf1ae126c054b34b8148fc902311075b3e08ddbce7cf1316bba07886fb181ee",
"md5": "9fb55a8395fe8aa01834fa411efc7851",
"sha256": "c9337db0007dafcf8273af9a90c1be692b2c09c1366b91723b629c193f94c877"
},
"downloads": -1,
"filename": "featuremap-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9fb55a8395fe8aa01834fa411efc7851",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 46787,
"upload_time": "2024-05-28T05:50:51",
"upload_time_iso_8601": "2024-05-28T05:50:51.282092Z",
"url": "https://files.pythonhosted.org/packages/ba/f1/ae126c054b34b8148fc902311075b3e08ddbce7cf1316bba07886fb181ee/featuremap-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ff4e4b14ba8fe8b45caf8018bef936fe0411ac5b49288e3555028217108a4d3",
"md5": "f7ee1a64a69f2c37d7853a1697fe0ab5",
"sha256": "d3fd5ce22de7c7c520905985523abb0487b33406380fb973d0e22307e7521b06"
},
"downloads": -1,
"filename": "featuremap-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "f7ee1a64a69f2c37d7853a1697fe0ab5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 46957,
"upload_time": "2024-05-28T05:50:53",
"upload_time_iso_8601": "2024-05-28T05:50:53.483391Z",
"url": "https://files.pythonhosted.org/packages/8f/f4/e4b14ba8fe8b45caf8018bef936fe0411ac5b49288e3555028217108a4d3/featuremap-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-28 05:50:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "YYT1002",
"github_project": "FeatureMAP",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "featuremap"
}