heartmap


Nameheartmap JSON
Version 1.1.1 PyPI version JSON
download
home_pagehttps://github.com/Tumo505/HeartMap
SummaryHeart Multi-chamber Analysis Platform for single-cell RNA-seq
upload_time2025-08-06 19:39:24
maintainerNone
docs_urlNone
authorTumo Kgabeng, Lulu Wang, Harry Ngwangwa, Thanyani Pandelani
requires_python>=3.8
licenseNone
keywords single-cell rna-seq heart cell-communication bioinformatics spatial-transcriptomics
VCS
bugtrack_url
requirements scanpy pandas numpy matplotlib seaborn anndata cellphonedb liana omnipath plotly networkx scipy scikit-learn notebook jupyterlab ipython ipywidgets tqdm statsmodels
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # HeartMAP: Heart Multi-chamber Analysis Platform

[![PyPI version](https://badge.fury.io/py/heartmap.svg)](https://badge.fury.io/py/heartmap)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![CI Status](https://github.com/Tumo505/HeartMap/workflows/CI/badge.svg)](https://github.com/Tumo505/HeartMap/actions)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.16745118.svg)](https://doi.org/10.5281/zenodo.16745118)

> **A production-ready Python package for comprehensive single-cell heart analysis with chamber-specific insights**

## ๐Ÿซ€ Package Overview

HeartMAP is a specialized bioinformatics package that decodes cellular communication across all four chambers of the human heart. Unlike general single-cell tools, HeartMAP is purpose-built for cardiac biology, offering chamber-specific insights crucial for understanding heart function, disease, and therapeutic opportunities.

**โœจ Key Features:**
- ๐Ÿ”ง **Production Ready**: Fully tested, documented, and deployed on PyPI
- ๐Ÿš€ **Multiple Interfaces**: CLI, Python API, REST API, and Web interface  
- ๐Ÿ“ฆ **Easy Installation**: `pip install heartmap`
- โš™๏ธ **Configurable**: Works on 8GB+ RAM with memory optimization
- ๐Ÿงช **Validated**: Tested on real human heart datasets
- ๐Ÿ“Š **Comprehensive**: From basic QC to advanced communication analysis

## ๐Ÿ“ฆ Quick Installation

```bash
# Install from PyPI
pip install heartmap

# Install with all features
pip install heartmap[all]

# Verify installation
python -c "import heartmap; print('โœ… HeartMAP ready!')"
```

## ๐Ÿš€ Quick Start

### 30-Second Analysis
```bash
# Analyze your heart data with one command
heartmap your_heart_data.h5ad
```

### 2-Minute Python Analysis
```python
from heartmap import Config
from heartmap.pipelines import ComprehensivePipeline

# Quick analysis
config = Config.default()
pipeline = ComprehensivePipeline(config)
results = pipeline.run('your_data.h5ad', 'results/')

print("โœ… Analysis complete! Check 'results/' directory.")
```

## ๐Ÿ“š Documentation

| Document | Description | Use When |
|----------|-------------|----------|
| **[๐Ÿ“– User Guide](USER_GUIDE.md)** | Complete step-by-step tutorials | Learning HeartMAP |
| **[๐Ÿ”ง API Documentation](API_DOCUMENTATION.md)** | Full API reference | Programming with HeartMAP |
| **[๐Ÿ“ฆ Package README](PACKAGE_README.md)** | Package-specific documentation | Installing/using the package |
| **[๐Ÿ“ Original README](README_ORIGINAL.md)** | Development documentation | Contributing to HeartMAP |

## ๐Ÿ”ฌ What HeartMAP Can Do

### Analysis Pipelines

| Pipeline | Purpose | Output | Runtime |
|----------|---------|---------|---------|
| **Basic** | Quality control, cell typing | Cell annotations, QC metrics | 5-10 min |
| **Communication** | Cell-cell interactions | Communication networks, hubs | 10-15 min |
| **Multi-Chamber** | Chamber-specific analysis | Chamber markers, comparisons | 15-20 min |
| **Comprehensive** | Complete analysis | All of the above + reports | 20-30 min |

### Real-World Applications

```python
# Clinical Research: Chamber-specific targets
from heartmap.pipelines import MultiChamberPipeline
pipeline = MultiChamberPipeline(config)
results = pipeline.run('patient_data.h5ad')
lv_targets = results['chamber_markers']['LV']

# Drug Discovery: Communication pathways
from heartmap.pipelines import AdvancedCommunicationPipeline  
pipeline = AdvancedCommunicationPipeline(config)
results = pipeline.run('disease_data.h5ad')
drug_targets = results['communication_hubs']

# Education: Comparative analysis
results1 = pipeline.run('healthy_heart.h5ad')
results2 = pipeline.run('diseased_heart.h5ad')
```

## โšก Performance

| Hardware | Dataset Size | Memory | Runtime | Status |
|----------|-------------|--------|---------|---------|
| 8GB RAM | 30K cells | ~6GB | 15 min | โœ… Recommended |
| 16GB RAM | 50K cells | ~12GB | 25 min | โœ… Optimal |
| 32GB RAM | 100K cells | ~24GB | 45 min | โœ… Production |

## ๐Ÿ› ๏ธ Development

### For Contributors

```bash
# Development setup
git clone https://github.com/Tumo505/HeartMap.git
cd HeartMap
pip install -e .[dev]

# Run tests
python -m pytest tests/
python -m flake8 src/heartmap/
python -m mypy src/heartmap/
```

### For Package Users

The package is production-ready and maintained. See the [User Guide](USER_GUIDE.md) for complete usage instructions.

## ๐Ÿ“Š Scientific Impact

- **๐Ÿฅ Clinical**: Chamber-specific therapeutic strategies
- **๐Ÿ”ฌ Research**: First comprehensive multi-chamber communication atlas  
- **๐Ÿ“š Education**: Accessible cardiac biology analysis platform
- **๐Ÿญ Industry**: Production-ready bioinformatics tool

## ๐ŸŽฏ Use Cases

- **Pharmaceutical Research**: Drug target discovery, safety assessment
- **Clinical Cardiology**: Precision medicine, disease mechanisms
- **Basic Research**: Cardiac development, evolutionary biology
- **Computational Biology**: Method benchmarking, data integration

## ๐Ÿ“‹ Requirements

- **Python**: 3.8+ (tested on 3.8-3.11)
- **Memory**: 8GB+ RAM (configurable)
- **Storage**: 2GB+ for package and results
- **OS**: Linux, macOS, Windows

## ๐Ÿค Contributing

We welcome contributions! See our [development documentation](README_ORIGINAL.md) for details.

## ๐Ÿ“– Citation

```bibtex
@software{heartmap2025,
  title={HeartMAP: Heart Multi-chamber Analysis Platform},
  author={Kgabeng, Tumo and Wang, Lulu and Ngwangwa, Harry and Pandelani, Thanyani},
  year={2025},
  url={https://github.com/Tumo505/HeartMap},
  version={1.0.0}
}
```

## ๐Ÿ“„ License

Apache 2.0 License - see [LICENSE](LICENSE) for details.

## ๐Ÿ†˜ Support

- **๐Ÿ“– Documentation**: [User Guide](USER_GUIDE.md) | [API Docs](API_DOCUMENTATION.md)
- **๐Ÿ’ฌ Community**: [GitHub Discussions](https://github.com/Tumo505/HeartMap/discussions)
- **๐Ÿ› Issues**: [GitHub Issues](https://github.com/Tumo505/HeartMap/issues)
- **๐Ÿ“ง Contact**: 28346416@mylife.unisa.ac.za

---

**๐ŸŽ‰ HeartMAP: Production-ready cardiac single-cell analysis for researchers worldwide** ๐Ÿซ€โœจ

*Install today: `pip install heartmap`*

### Supporting Files

```
โ”œโ”€โ”€ scripts/                 # Setup and utility scripts
โ”‚   โ”œโ”€โ”€ setup.sh            # Automated environment setup
โ”‚   โ”œโ”€โ”€ validate.py         # Installation validation
โ”‚   โ”œโ”€โ”€ migrate.py          # Legacy code migration
โ”‚   โ””โ”€โ”€ deploy_huggingface.sh # HuggingFace deployment
โ”œโ”€โ”€ tests/                   # Comprehensive test suite
โ”œโ”€โ”€ notebooks/               # Jupyter notebook examples
โ”œโ”€โ”€ config.yaml             # Default configuration
โ”œโ”€โ”€ setup.py                # Package installation
โ”œโ”€โ”€ Dockerfile              # Container deployment
โ”œโ”€โ”€ docker-compose.yml      # Multi-service orchestration
โ””โ”€โ”€ app.py                  # Gradio web interface
```

## ๐Ÿš€ Quick Start

### Option 1: Automated Setup (Recommended)

```bash
# Clone the repository
git clone https://github.com/Tumo505/HeartMap.git
cd HeartMap

# Run automated setup script
./scripts/setup.sh

# Activate the environment
source heartmap_env/bin/activate  # Linux/Mac
# OR: heartmap_env\Scripts\activate  # Windows

# Validate installation
python scripts/validate.py

# Start analyzing!
heartmap data/raw/your_data.h5ad --analysis-type comprehensive
```

### Option 2: Manual Installation

```bash
# Create virtual environment
python3 -m venv heartmap_env
source heartmap_env/bin/activate

# Install dependencies
pip install -r requirements-dev.txt

# Install HeartMAP in development mode
pip install -e .[all]

# Validate installation
python scripts/validate.py
```

### Option 3: Package Installation

```bash
# Install from PyPI (when available)
pip install heartmap[all]

# Or install specific features
pip install heartmap[communication]  # Communication analysis only
pip install heartmap[api]            # API features only
```

## ๐Ÿ“Š Usage Examples

### 1. Command Line Interface

```bash
# Basic analysis
heartmap data/raw/heart_data.h5ad

# Comprehensive analysis with custom output
heartmap data/raw/heart_data.h5ad \
    --analysis-type comprehensive \
    --output-dir results/comprehensive \
    --config my_config.yaml

# Specific analysis types
heartmap data/raw/heart_data.h5ad --analysis-type annotation
heartmap data/raw/heart_data.h5ad --analysis-type communication  
heartmap data/raw/heart_data.h5ad --analysis-type multi-chamber

# Memory-optimized for large datasets
heartmap data/raw/large_dataset.h5ad \
    --analysis-type comprehensive \
    --config config_large.yaml
```

### 2. Python API

```python
from heartmap import Config, HeartMapModel
from heartmap.pipelines import ComprehensivePipeline

# Load and customize configuration
config = Config.from_yaml('config.yaml')
config.data.max_cells_subset = 50000  # Optimize for your memory
config.data.max_genes_subset = 5000

# Option A: Use full HeartMAP model
model = HeartMapModel(config)
results = model.analyze('data/raw/heart_data.h5ad')

# Option B: Use specific pipeline
pipeline = ComprehensivePipeline(config)
results = pipeline.run('data/raw/heart_data.h5ad', 'results/')

# Save model for reuse
model.save('models/my_heartmap_model')

# Load and reuse saved model
loaded_model = HeartMapModel.load('models/my_heartmap_model')
new_results = loaded_model.predict(new_data)
```

### 3. REST API

```bash
# Start API server
python scripts/run_api_server.py
# Server available at http://localhost:8000
# API docs at http://localhost:8000/docs

# Use the API
curl -X POST "http://localhost:8000/analyze" \
     -H "Content-Type: multipart/form-data" \
     -F "file=@data/raw/heart_data.h5ad" \
     -F "analysis_type=comprehensive"

# Check available models
curl http://localhost:8000/models

# Update configuration
curl -X POST "http://localhost:8000/config" \
     -H "Content-Type: application/json" \
     -d '{"data": {"max_cells_subset": 30000}}'
```

### 4. Web Interface (Gradio)

```bash
# Start web interface
python app.py
# Access at http://localhost:7860

# Features:
# - Upload .h5ad files
# - Select analysis type
# - Configure memory settings
# - Download results
```

### 5. Jupyter Notebooks

```bash
# Install Jupyter
pip install jupyter

# Start notebook server
jupyter lab

# Open example notebooks:
# - notebooks/01_basic_analysis.ipynb
# - notebooks/02_advanced_communication.ipynb
# - notebooks/03_multi_chamber_analysis.ipynb
# - notebooks/04_comprehensive_analysis.ipynb
```

## โš™๏ธ Configuration

HeartMAP uses YAML configuration files for easy customization:

```yaml
# config.yaml or my_config.yaml
data:
  min_genes: 200
  min_cells: 3
  max_cells_subset: 50000        # Adjust based on your RAM
  max_genes_subset: 5000         # Reduce for faster analysis
  target_sum: 10000.0
  n_top_genes: 2000
  random_seed: 42
  test_mode: false               # Set true for quick testing

analysis:
  n_components_pca: 50
  n_neighbors: 10
  n_pcs: 40
  resolution: 0.5
  n_marker_genes: 25
  use_leiden: true
  use_liana: true                # Cell-cell communication

model:
  model_type: "comprehensive"
  save_intermediate: true
  use_gpu: false                 # Set true if GPU available
  batch_size: null
  max_memory_gb: null            # Auto-detect memory

paths:
  data_dir: "data"
  raw_data_dir: "data/raw"
  processed_data_dir: "data/processed"
  results_dir: "results"
  figures_dir: "figures"
  models_dir: "models"
```

### Memory Optimization Guidelines

| System RAM | max_cells_subset | max_genes_subset | Use Case |
|------------|------------------|------------------|----------|
| 8GB        | 10,000          | 2,000           | Laptop/Desktop |
| 16GB       | 30,000          | 4,000           | Workstation |
| 32GB       | 50,000          | 5,000           | Server |
| 64GB+      | 100,000+        | 10,000+         | HPC/Cloud |

## ๐Ÿ”ฌ Analysis Components

### 1. Basic Pipeline
- **Data Preprocessing**: Quality control, normalization, scaling
- **Cell Type Annotation**: Clustering and cell type identification  
- **Basic Visualization**: UMAP, t-SNE, cluster plots
- **Quality Metrics**: Cell and gene filtering statistics

### 2. Advanced Communication Analysis
- **Cell-Cell Communication**: Ligand-receptor interaction analysis
- **Communication Hubs**: Identification of key signaling cells
- **Pathway Enrichment**: Cardiac development and disease pathways
- **Network Analysis**: Communication network topology

### 3. Multi-Chamber Atlas
- **Chamber-Specific Analysis**: RA, RV, LA, LV specific patterns
- **Marker Identification**: Chamber-specific biomarkers
- **Cross-Chamber Correlations**: Inter-chamber relationship analysis
- **Comparative Analysis**: Chamber-to-chamber differences

### 4. Comprehensive Pipeline
- **Integrated Analysis**: All components combined
- **Advanced Visualizations**: Multi-panel figures and dashboards
- **Comprehensive Reports**: Automated result summaries
- **Model Persistence**: Save complete analysis state

## ๐Ÿš€ Deployment Guide

### Local Development Setup

#### Prerequisites
- Python 3.8+ (recommended: Python 3.10)
- Git
- Docker (optional, for containerized deployment)
- 8GB+ RAM (16GB+ recommended for larger datasets)

#### Quick Setup

```bash
# Clone and setup environment
git clone https://github.com/Tumo505/HeartMap.git
cd HeartMap

# Create virtual environment
python -m venv heartmap_env
source heartmap_env/bin/activate  # On Windows: heartmap_env\Scripts\activate

# Install dependencies
pip install --upgrade pip
pip install -r requirements-dev.txt
pip install -e .[all]

# Configure the platform
cp config.yaml my_config.yaml
# Edit my_config.yaml to match your system resources

# Test installation
python scripts/validate.py
python scripts/run_examples.py
```

### Docker Deployment

```bash
# Single service
docker build -t heartmap .
docker run -p 8000:8000 -v $(pwd)/data:/app/data heartmap

# Multi-service with docker-compose
docker-compose up
# Services:
# - API server: http://localhost:8000  
# - Gradio interface: http://localhost:7860
# - Worker processes for batch analysis
```

### Hugging Face Spaces Deployment

```bash
# Prepare deployment files
./scripts/deploy_huggingface.sh

# Upload to your Hugging Face Space:
# 1. Create new Space at https://huggingface.co/new-space
# 2. Choose Gradio SDK
# 3. Upload generated files:
#    - app.py (Gradio interface)
#    - requirements.txt (Dependencies)
#    - src/ (Source code)
#    - config.yaml (Configuration)
```

### Cloud Platforms

#### AWS Deployment
```bash
# ECS deployment
docker build -t heartmap .
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin $ECR_URI
docker tag heartmap:latest $ECR_URI/heartmap:latest
docker push $ECR_URI/heartmap:latest

# Lambda deployment for serverless
sam build
sam deploy --guided
```

#### Google Cloud Platform
```bash
# Cloud Run deployment
gcloud builds submit --tag gcr.io/$PROJECT_ID/heartmap
gcloud run deploy --image gcr.io/$PROJECT_ID/heartmap --platform managed
```

#### Azure
```bash
# Container Instances
az container create --resource-group myResourceGroup \
    --name heartmap --image myregistry.azurecr.io/heartmap:latest
```

## ๐Ÿ“Š Scientific Results

### Chamber Distribution
- **RA (Right Atrium):** 28.4% of cells
- **LV (Left Ventricle):** 27.0% of cells  
- **LA (Left Atrium):** 26.4% of cells
- **RV (Right Ventricle):** 18.2% of cells

### Chamber-Specific Markers
- **RA:** NPPA, MIR100HG, MYL7, MYL4, PDE4D
- **RV:** NEAT1, MYH7, FHL2, C15orf41, PCDH7
- **LA:** NPPA, ELN, MYL7, EBF2, RORA
- **LV:** CD36, LINC00486, FHL2, RP11-532N4.2, MYH7

### Cross-Chamber Correlations
- **RV vs LV:** r = 0.985 (highest correlation)
- **RA vs LA:** r = 0.960
- **LA vs LV:** r = 0.870 (lowest correlation)

## ๐Ÿงช Testing & Validation

### Run Tests

```bash
# Full test suite
python tests/test_heartmap.py

# Validation suite
python scripts/validate.py

# Example analysis with mock data
python scripts/demo.py
```

### Performance Benchmarks

| Dataset Size | Memory Usage | Processing Time | Output |
|-------------|--------------|-----------------|--------|
| 10K cells   | 2GB RAM     | 5 minutes      | Complete analysis |
| 50K cells   | 8GB RAM     | 15 minutes     | Complete analysis |
| 100K cells  | 16GB RAM    | 30 minutes     | Complete analysis |

## ๐ŸŽฏ Use Cases

### Research Applications
- **Interactive Analysis**: Jupyter notebooks for exploration
- **Batch Processing**: Command-line analysis of multiple datasets
- **Pipeline Integration**: Python API for custom workflows
- **Collaborative Research**: Shared configurations and models

### Production Applications
- **Web Services**: REST API for applications
- **Public Access**: Hugging Face Spaces for community use
- **Microservices**: Containerized deployment in cloud
- **High-Throughput**: Scalable analysis for large cohorts

### Educational Use
- **Teaching Platform**: Web interface for students
- **Reproducible Science**: Containerized environments
- **Method Comparison**: Multiple analysis approaches
- **Best Practices**: Clean, documented codebase

## ๐Ÿ”’ Data Integrity & Reproducibility

### SHA-256 Checksums
- **Purpose**: Ensure data file integrity during storage/transfer
- **Implementation**: Automatic verification before analysis
- **Usage**: `python utils/sha256_checksum.py verify data/raw data/raw/checksums.txt`

### Fixed Random Seeds
- **Purpose**: Ensure reproducible results across runs
- **Implementation**: Fixed seeds in all stochastic processes
- **Scope**: Random sampling, clustering, mock data generation

### Examples of Reproducible Components

1. **Random Sampling**:
   ```python
   np.random.seed(42)
   cell_indices = np.random.choice(adata.n_obs, size=50000, replace=False)
   ```

2. **Clustering**:
   ```python
   kmeans = KMeans(n_clusters=n_clusters, random_state=42)
   ```

3. **LIANA Analysis**:
   ```python
   li.mt.rank_aggregate.by_sample(
       adata, groupby=cell_type_col, resource_name='consensus',
       n_perms=100, seed=42, verbose=True
   )
   ```

## ๐Ÿ”ง Development & Contributing

### Development Setup

```bash
# Development setup
git clone https://github.com/Tumo505/HeartMap.git
cd HeartMap
./scripts/setup.sh
source heartmap_env/bin/activate

# Install development dependencies
pip install -e .[dev]

# Run tests before committing
python tests/test_heartmap.py
python scripts/validate.py

# Code quality checks
black src/ tests/ scripts/  # Code formatting
flake8 src/ --max-line-length=100  # Linting
mypy src/heartmap --ignore-missing-imports  # Type checking
```

### Adding New Features

1. **New Models**: Inherit from `BaseModel` in `src/heartmap/models/`
2. **New Pipelines**: Inherit from `BasePipeline` in `src/heartmap/pipelines/`
3. **API Endpoints**: Add to `src/heartmap/api/rest.py`
4. **Configuration**: Extend dataclasses in `src/heartmap/config/`

### Testing Guidelines

```python
# Test structure
tests/
โ”œโ”€โ”€ test_config.py       # Configuration management
โ”œโ”€โ”€ test_data.py         # Data processing
โ”œโ”€โ”€ test_models.py       # Analysis models
โ”œโ”€โ”€ test_pipelines.py    # Analysis pipelines
โ””โ”€โ”€ test_api.py          # API interfaces
```

## ๐Ÿ†˜ Troubleshooting

### Common Issues

#### Memory Errors
```bash
# Reduce dataset size in config
data:
  max_cells_subset: 10000
  max_genes_subset: 2000
```

#### Import Errors
```bash
# Reinstall with all dependencies
pip install -e .[all]

# Check Python path
python -c "import heartmap; print(heartmap.__file__)"
```

#### Data Loading Issues
```bash
# Verify data format
python -c "import scanpy as sc; print(sc.read_h5ad('data/raw/your_file.h5ad'))"

# Check file permissions
ls -la data/raw/
```

#### Performance Issues
```bash
# Enable test mode for quick validation
test_mode: true  # in config.yaml

# Use GPU acceleration (if available)
model:
  use_gpu: true
```

### Getting Help

1. **Validation**: `python scripts/validate.py`
2. **Logs**: Check logs in `results/` directory
3. **Test Mode**: Set `test_mode: true` in configuration
4. **Mock Data**: `python scripts/demo.py` for testing
5. **Documentation**: Comprehensive docstrings in source code

## ๐Ÿ“‹ Requirements

### System Requirements
- **Python**: 3.8+ (recommended: 3.10)
- **Memory**: 8GB+ recommended (configurable)
- **Storage**: 5GB+ for data and results
- **OS**: Linux, macOS, Windows

### Dependencies
- **Core**: scanpy, pandas, numpy, scipy, scikit-learn
- **Visualization**: matplotlib, seaborn, plotly
- **Communication**: liana, cellphonedb (optional)
- **API**: fastapi, uvicorn (optional)
- **Web**: gradio (optional)

## ๐ŸŽฏ Clinical Applications

- **Personalized Medicine**: Chamber-specific treatment strategies
- **Drug Development**: Chamber-specific therapeutic targets
- **Disease Understanding**: Chamber-specific disease mechanisms
- **Biomarker Discovery**: Chamber and communication-specific markers

## ๐Ÿค Contributing

1. Fork the repository
2. Create a feature branch: `git checkout -b feature-name`
3. Install development dependencies: `pip install -e .[dev]`
4. Run tests: `python tests/test_heartmap.py`
5. Submit a pull request

## ๐Ÿ“„ License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ“– Citation

```bibtex
@software{heartmap2025,
  title={HeartMAP: A Multi-Chamber Spatial Framework for Cardiac Cell-Cell Communication},
  author={Kgabeng, Tumo and Wang, Lulu and Ngwangwa, Harry and Pandelani, Thanyani},
  year={2024},
  url={https://github.com/Tumo505/HeartMap},
  version={1.0.0},
  doi={10.5281/zenodo.16745118}
}
```

## ๐Ÿ†˜ Support

- **Issues**: [GitHub Issues](https://github.com/Tumo505/HeartMap/issues)
- **Discussions**: [GitHub Discussions](https://github.com/Tumo505/HeartMap/discussions)
- **Email**: 28346416@mylife.unisa.ac.za

## ๐ŸŽ‰ Acknowledgments

- Department of Mechanical, Bioresources and Biomedical Engineering, University of South Africa
- Department of Engineering, Reykjavik University
- Single Cell Portal (SCP498) for providing the heart dataset
- The open-source scientific Python community

---

**๐ŸŽ‰ HeartMAP is now production-ready and available for research, deployment, and collaboration!**

Whether you're a researcher exploring cardiac biology, a developer building applications, or an educator teaching single-cell analysis, HeartMAP provides the tools and flexibility you need.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Tumo505/HeartMap",
    "name": "heartmap",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "single-cell, RNA-seq, heart, cell-communication, bioinformatics, spatial-transcriptomics",
    "author": "Tumo Kgabeng, Lulu Wang, Harry Ngwangwa, Thanyani Pandelani",
    "author_email": "28346416@mylife.unisa.ac.za",
    "download_url": "https://files.pythonhosted.org/packages/77/8e/9341cedd9261c2e09f07b65225efab3f518b7491e0b7f1fdde80836923a2/heartmap-1.1.1.tar.gz",
    "platform": null,
    "description": "# HeartMAP: Heart Multi-chamber Analysis Platform\n\n[![PyPI version](https://badge.fury.io/py/heartmap.svg)](https://badge.fury.io/py/heartmap)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![CI Status](https://github.com/Tumo505/HeartMap/workflows/CI/badge.svg)](https://github.com/Tumo505/HeartMap/actions)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.16745118.svg)](https://doi.org/10.5281/zenodo.16745118)\n\n> **A production-ready Python package for comprehensive single-cell heart analysis with chamber-specific insights**\n\n## \ud83e\udec0 Package Overview\n\nHeartMAP is a specialized bioinformatics package that decodes cellular communication across all four chambers of the human heart. Unlike general single-cell tools, HeartMAP is purpose-built for cardiac biology, offering chamber-specific insights crucial for understanding heart function, disease, and therapeutic opportunities.\n\n**\u2728 Key Features:**\n- \ud83d\udd27 **Production Ready**: Fully tested, documented, and deployed on PyPI\n- \ud83d\ude80 **Multiple Interfaces**: CLI, Python API, REST API, and Web interface  \n- \ud83d\udce6 **Easy Installation**: `pip install heartmap`\n- \u2699\ufe0f **Configurable**: Works on 8GB+ RAM with memory optimization\n- \ud83e\uddea **Validated**: Tested on real human heart datasets\n- \ud83d\udcca **Comprehensive**: From basic QC to advanced communication analysis\n\n## \ud83d\udce6 Quick Installation\n\n```bash\n# Install from PyPI\npip install heartmap\n\n# Install with all features\npip install heartmap[all]\n\n# Verify installation\npython -c \"import heartmap; print('\u2705 HeartMAP ready!')\"\n```\n\n## \ud83d\ude80 Quick Start\n\n### 30-Second Analysis\n```bash\n# Analyze your heart data with one command\nheartmap your_heart_data.h5ad\n```\n\n### 2-Minute Python Analysis\n```python\nfrom heartmap import Config\nfrom heartmap.pipelines import ComprehensivePipeline\n\n# Quick analysis\nconfig = Config.default()\npipeline = ComprehensivePipeline(config)\nresults = pipeline.run('your_data.h5ad', 'results/')\n\nprint(\"\u2705 Analysis complete! Check 'results/' directory.\")\n```\n\n## \ud83d\udcda Documentation\n\n| Document | Description | Use When |\n|----------|-------------|----------|\n| **[\ud83d\udcd6 User Guide](USER_GUIDE.md)** | Complete step-by-step tutorials | Learning HeartMAP |\n| **[\ud83d\udd27 API Documentation](API_DOCUMENTATION.md)** | Full API reference | Programming with HeartMAP |\n| **[\ud83d\udce6 Package README](PACKAGE_README.md)** | Package-specific documentation | Installing/using the package |\n| **[\ud83d\udcdd Original README](README_ORIGINAL.md)** | Development documentation | Contributing to HeartMAP |\n\n## \ud83d\udd2c What HeartMAP Can Do\n\n### Analysis Pipelines\n\n| Pipeline | Purpose | Output | Runtime |\n|----------|---------|---------|---------|\n| **Basic** | Quality control, cell typing | Cell annotations, QC metrics | 5-10 min |\n| **Communication** | Cell-cell interactions | Communication networks, hubs | 10-15 min |\n| **Multi-Chamber** | Chamber-specific analysis | Chamber markers, comparisons | 15-20 min |\n| **Comprehensive** | Complete analysis | All of the above + reports | 20-30 min |\n\n### Real-World Applications\n\n```python\n# Clinical Research: Chamber-specific targets\nfrom heartmap.pipelines import MultiChamberPipeline\npipeline = MultiChamberPipeline(config)\nresults = pipeline.run('patient_data.h5ad')\nlv_targets = results['chamber_markers']['LV']\n\n# Drug Discovery: Communication pathways\nfrom heartmap.pipelines import AdvancedCommunicationPipeline  \npipeline = AdvancedCommunicationPipeline(config)\nresults = pipeline.run('disease_data.h5ad')\ndrug_targets = results['communication_hubs']\n\n# Education: Comparative analysis\nresults1 = pipeline.run('healthy_heart.h5ad')\nresults2 = pipeline.run('diseased_heart.h5ad')\n```\n\n## \u26a1 Performance\n\n| Hardware | Dataset Size | Memory | Runtime | Status |\n|----------|-------------|--------|---------|---------|\n| 8GB RAM | 30K cells | ~6GB | 15 min | \u2705 Recommended |\n| 16GB RAM | 50K cells | ~12GB | 25 min | \u2705 Optimal |\n| 32GB RAM | 100K cells | ~24GB | 45 min | \u2705 Production |\n\n## \ud83d\udee0\ufe0f Development\n\n### For Contributors\n\n```bash\n# Development setup\ngit clone https://github.com/Tumo505/HeartMap.git\ncd HeartMap\npip install -e .[dev]\n\n# Run tests\npython -m pytest tests/\npython -m flake8 src/heartmap/\npython -m mypy src/heartmap/\n```\n\n### For Package Users\n\nThe package is production-ready and maintained. See the [User Guide](USER_GUIDE.md) for complete usage instructions.\n\n## \ud83d\udcca Scientific Impact\n\n- **\ud83c\udfe5 Clinical**: Chamber-specific therapeutic strategies\n- **\ud83d\udd2c Research**: First comprehensive multi-chamber communication atlas  \n- **\ud83d\udcda Education**: Accessible cardiac biology analysis platform\n- **\ud83c\udfed Industry**: Production-ready bioinformatics tool\n\n## \ud83c\udfaf Use Cases\n\n- **Pharmaceutical Research**: Drug target discovery, safety assessment\n- **Clinical Cardiology**: Precision medicine, disease mechanisms\n- **Basic Research**: Cardiac development, evolutionary biology\n- **Computational Biology**: Method benchmarking, data integration\n\n## \ud83d\udccb Requirements\n\n- **Python**: 3.8+ (tested on 3.8-3.11)\n- **Memory**: 8GB+ RAM (configurable)\n- **Storage**: 2GB+ for package and results\n- **OS**: Linux, macOS, Windows\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! See our [development documentation](README_ORIGINAL.md) for details.\n\n## \ud83d\udcd6 Citation\n\n```bibtex\n@software{heartmap2025,\n  title={HeartMAP: Heart Multi-chamber Analysis Platform},\n  author={Kgabeng, Tumo and Wang, Lulu and Ngwangwa, Harry and Pandelani, Thanyani},\n  year={2025},\n  url={https://github.com/Tumo505/HeartMap},\n  version={1.0.0}\n}\n```\n\n## \ud83d\udcc4 License\n\nApache 2.0 License - see [LICENSE](LICENSE) for details.\n\n## \ud83c\udd98 Support\n\n- **\ud83d\udcd6 Documentation**: [User Guide](USER_GUIDE.md) | [API Docs](API_DOCUMENTATION.md)\n- **\ud83d\udcac Community**: [GitHub Discussions](https://github.com/Tumo505/HeartMap/discussions)\n- **\ud83d\udc1b Issues**: [GitHub Issues](https://github.com/Tumo505/HeartMap/issues)\n- **\ud83d\udce7 Contact**: 28346416@mylife.unisa.ac.za\n\n---\n\n**\ud83c\udf89 HeartMAP: Production-ready cardiac single-cell analysis for researchers worldwide** \ud83e\udec0\u2728\n\n*Install today: `pip install heartmap`*\n\n### Supporting Files\n\n```\n\u251c\u2500\u2500 scripts/                 # Setup and utility scripts\n\u2502   \u251c\u2500\u2500 setup.sh            # Automated environment setup\n\u2502   \u251c\u2500\u2500 validate.py         # Installation validation\n\u2502   \u251c\u2500\u2500 migrate.py          # Legacy code migration\n\u2502   \u2514\u2500\u2500 deploy_huggingface.sh # HuggingFace deployment\n\u251c\u2500\u2500 tests/                   # Comprehensive test suite\n\u251c\u2500\u2500 notebooks/               # Jupyter notebook examples\n\u251c\u2500\u2500 config.yaml             # Default configuration\n\u251c\u2500\u2500 setup.py                # Package installation\n\u251c\u2500\u2500 Dockerfile              # Container deployment\n\u251c\u2500\u2500 docker-compose.yml      # Multi-service orchestration\n\u2514\u2500\u2500 app.py                  # Gradio web interface\n```\n\n## \ud83d\ude80 Quick Start\n\n### Option 1: Automated Setup (Recommended)\n\n```bash\n# Clone the repository\ngit clone https://github.com/Tumo505/HeartMap.git\ncd HeartMap\n\n# Run automated setup script\n./scripts/setup.sh\n\n# Activate the environment\nsource heartmap_env/bin/activate  # Linux/Mac\n# OR: heartmap_env\\Scripts\\activate  # Windows\n\n# Validate installation\npython scripts/validate.py\n\n# Start analyzing!\nheartmap data/raw/your_data.h5ad --analysis-type comprehensive\n```\n\n### Option 2: Manual Installation\n\n```bash\n# Create virtual environment\npython3 -m venv heartmap_env\nsource heartmap_env/bin/activate\n\n# Install dependencies\npip install -r requirements-dev.txt\n\n# Install HeartMAP in development mode\npip install -e .[all]\n\n# Validate installation\npython scripts/validate.py\n```\n\n### Option 3: Package Installation\n\n```bash\n# Install from PyPI (when available)\npip install heartmap[all]\n\n# Or install specific features\npip install heartmap[communication]  # Communication analysis only\npip install heartmap[api]            # API features only\n```\n\n## \ud83d\udcca Usage Examples\n\n### 1. Command Line Interface\n\n```bash\n# Basic analysis\nheartmap data/raw/heart_data.h5ad\n\n# Comprehensive analysis with custom output\nheartmap data/raw/heart_data.h5ad \\\n    --analysis-type comprehensive \\\n    --output-dir results/comprehensive \\\n    --config my_config.yaml\n\n# Specific analysis types\nheartmap data/raw/heart_data.h5ad --analysis-type annotation\nheartmap data/raw/heart_data.h5ad --analysis-type communication  \nheartmap data/raw/heart_data.h5ad --analysis-type multi-chamber\n\n# Memory-optimized for large datasets\nheartmap data/raw/large_dataset.h5ad \\\n    --analysis-type comprehensive \\\n    --config config_large.yaml\n```\n\n### 2. Python API\n\n```python\nfrom heartmap import Config, HeartMapModel\nfrom heartmap.pipelines import ComprehensivePipeline\n\n# Load and customize configuration\nconfig = Config.from_yaml('config.yaml')\nconfig.data.max_cells_subset = 50000  # Optimize for your memory\nconfig.data.max_genes_subset = 5000\n\n# Option A: Use full HeartMAP model\nmodel = HeartMapModel(config)\nresults = model.analyze('data/raw/heart_data.h5ad')\n\n# Option B: Use specific pipeline\npipeline = ComprehensivePipeline(config)\nresults = pipeline.run('data/raw/heart_data.h5ad', 'results/')\n\n# Save model for reuse\nmodel.save('models/my_heartmap_model')\n\n# Load and reuse saved model\nloaded_model = HeartMapModel.load('models/my_heartmap_model')\nnew_results = loaded_model.predict(new_data)\n```\n\n### 3. REST API\n\n```bash\n# Start API server\npython scripts/run_api_server.py\n# Server available at http://localhost:8000\n# API docs at http://localhost:8000/docs\n\n# Use the API\ncurl -X POST \"http://localhost:8000/analyze\" \\\n     -H \"Content-Type: multipart/form-data\" \\\n     -F \"file=@data/raw/heart_data.h5ad\" \\\n     -F \"analysis_type=comprehensive\"\n\n# Check available models\ncurl http://localhost:8000/models\n\n# Update configuration\ncurl -X POST \"http://localhost:8000/config\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"data\": {\"max_cells_subset\": 30000}}'\n```\n\n### 4. Web Interface (Gradio)\n\n```bash\n# Start web interface\npython app.py\n# Access at http://localhost:7860\n\n# Features:\n# - Upload .h5ad files\n# - Select analysis type\n# - Configure memory settings\n# - Download results\n```\n\n### 5. Jupyter Notebooks\n\n```bash\n# Install Jupyter\npip install jupyter\n\n# Start notebook server\njupyter lab\n\n# Open example notebooks:\n# - notebooks/01_basic_analysis.ipynb\n# - notebooks/02_advanced_communication.ipynb\n# - notebooks/03_multi_chamber_analysis.ipynb\n# - notebooks/04_comprehensive_analysis.ipynb\n```\n\n## \u2699\ufe0f Configuration\n\nHeartMAP uses YAML configuration files for easy customization:\n\n```yaml\n# config.yaml or my_config.yaml\ndata:\n  min_genes: 200\n  min_cells: 3\n  max_cells_subset: 50000        # Adjust based on your RAM\n  max_genes_subset: 5000         # Reduce for faster analysis\n  target_sum: 10000.0\n  n_top_genes: 2000\n  random_seed: 42\n  test_mode: false               # Set true for quick testing\n\nanalysis:\n  n_components_pca: 50\n  n_neighbors: 10\n  n_pcs: 40\n  resolution: 0.5\n  n_marker_genes: 25\n  use_leiden: true\n  use_liana: true                # Cell-cell communication\n\nmodel:\n  model_type: \"comprehensive\"\n  save_intermediate: true\n  use_gpu: false                 # Set true if GPU available\n  batch_size: null\n  max_memory_gb: null            # Auto-detect memory\n\npaths:\n  data_dir: \"data\"\n  raw_data_dir: \"data/raw\"\n  processed_data_dir: \"data/processed\"\n  results_dir: \"results\"\n  figures_dir: \"figures\"\n  models_dir: \"models\"\n```\n\n### Memory Optimization Guidelines\n\n| System RAM | max_cells_subset | max_genes_subset | Use Case |\n|------------|------------------|------------------|----------|\n| 8GB        | 10,000          | 2,000           | Laptop/Desktop |\n| 16GB       | 30,000          | 4,000           | Workstation |\n| 32GB       | 50,000          | 5,000           | Server |\n| 64GB+      | 100,000+        | 10,000+         | HPC/Cloud |\n\n## \ud83d\udd2c Analysis Components\n\n### 1. Basic Pipeline\n- **Data Preprocessing**: Quality control, normalization, scaling\n- **Cell Type Annotation**: Clustering and cell type identification  \n- **Basic Visualization**: UMAP, t-SNE, cluster plots\n- **Quality Metrics**: Cell and gene filtering statistics\n\n### 2. Advanced Communication Analysis\n- **Cell-Cell Communication**: Ligand-receptor interaction analysis\n- **Communication Hubs**: Identification of key signaling cells\n- **Pathway Enrichment**: Cardiac development and disease pathways\n- **Network Analysis**: Communication network topology\n\n### 3. Multi-Chamber Atlas\n- **Chamber-Specific Analysis**: RA, RV, LA, LV specific patterns\n- **Marker Identification**: Chamber-specific biomarkers\n- **Cross-Chamber Correlations**: Inter-chamber relationship analysis\n- **Comparative Analysis**: Chamber-to-chamber differences\n\n### 4. Comprehensive Pipeline\n- **Integrated Analysis**: All components combined\n- **Advanced Visualizations**: Multi-panel figures and dashboards\n- **Comprehensive Reports**: Automated result summaries\n- **Model Persistence**: Save complete analysis state\n\n## \ud83d\ude80 Deployment Guide\n\n### Local Development Setup\n\n#### Prerequisites\n- Python 3.8+ (recommended: Python 3.10)\n- Git\n- Docker (optional, for containerized deployment)\n- 8GB+ RAM (16GB+ recommended for larger datasets)\n\n#### Quick Setup\n\n```bash\n# Clone and setup environment\ngit clone https://github.com/Tumo505/HeartMap.git\ncd HeartMap\n\n# Create virtual environment\npython -m venv heartmap_env\nsource heartmap_env/bin/activate  # On Windows: heartmap_env\\Scripts\\activate\n\n# Install dependencies\npip install --upgrade pip\npip install -r requirements-dev.txt\npip install -e .[all]\n\n# Configure the platform\ncp config.yaml my_config.yaml\n# Edit my_config.yaml to match your system resources\n\n# Test installation\npython scripts/validate.py\npython scripts/run_examples.py\n```\n\n### Docker Deployment\n\n```bash\n# Single service\ndocker build -t heartmap .\ndocker run -p 8000:8000 -v $(pwd)/data:/app/data heartmap\n\n# Multi-service with docker-compose\ndocker-compose up\n# Services:\n# - API server: http://localhost:8000  \n# - Gradio interface: http://localhost:7860\n# - Worker processes for batch analysis\n```\n\n### Hugging Face Spaces Deployment\n\n```bash\n# Prepare deployment files\n./scripts/deploy_huggingface.sh\n\n# Upload to your Hugging Face Space:\n# 1. Create new Space at https://huggingface.co/new-space\n# 2. Choose Gradio SDK\n# 3. Upload generated files:\n#    - app.py (Gradio interface)\n#    - requirements.txt (Dependencies)\n#    - src/ (Source code)\n#    - config.yaml (Configuration)\n```\n\n### Cloud Platforms\n\n#### AWS Deployment\n```bash\n# ECS deployment\ndocker build -t heartmap .\naws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin $ECR_URI\ndocker tag heartmap:latest $ECR_URI/heartmap:latest\ndocker push $ECR_URI/heartmap:latest\n\n# Lambda deployment for serverless\nsam build\nsam deploy --guided\n```\n\n#### Google Cloud Platform\n```bash\n# Cloud Run deployment\ngcloud builds submit --tag gcr.io/$PROJECT_ID/heartmap\ngcloud run deploy --image gcr.io/$PROJECT_ID/heartmap --platform managed\n```\n\n#### Azure\n```bash\n# Container Instances\naz container create --resource-group myResourceGroup \\\n    --name heartmap --image myregistry.azurecr.io/heartmap:latest\n```\n\n## \ud83d\udcca Scientific Results\n\n### Chamber Distribution\n- **RA (Right Atrium):** 28.4% of cells\n- **LV (Left Ventricle):** 27.0% of cells  \n- **LA (Left Atrium):** 26.4% of cells\n- **RV (Right Ventricle):** 18.2% of cells\n\n### Chamber-Specific Markers\n- **RA:** NPPA, MIR100HG, MYL7, MYL4, PDE4D\n- **RV:** NEAT1, MYH7, FHL2, C15orf41, PCDH7\n- **LA:** NPPA, ELN, MYL7, EBF2, RORA\n- **LV:** CD36, LINC00486, FHL2, RP11-532N4.2, MYH7\n\n### Cross-Chamber Correlations\n- **RV vs LV:** r = 0.985 (highest correlation)\n- **RA vs LA:** r = 0.960\n- **LA vs LV:** r = 0.870 (lowest correlation)\n\n## \ud83e\uddea Testing & Validation\n\n### Run Tests\n\n```bash\n# Full test suite\npython tests/test_heartmap.py\n\n# Validation suite\npython scripts/validate.py\n\n# Example analysis with mock data\npython scripts/demo.py\n```\n\n### Performance Benchmarks\n\n| Dataset Size | Memory Usage | Processing Time | Output |\n|-------------|--------------|-----------------|--------|\n| 10K cells   | 2GB RAM     | 5 minutes      | Complete analysis |\n| 50K cells   | 8GB RAM     | 15 minutes     | Complete analysis |\n| 100K cells  | 16GB RAM    | 30 minutes     | Complete analysis |\n\n## \ud83c\udfaf Use Cases\n\n### Research Applications\n- **Interactive Analysis**: Jupyter notebooks for exploration\n- **Batch Processing**: Command-line analysis of multiple datasets\n- **Pipeline Integration**: Python API for custom workflows\n- **Collaborative Research**: Shared configurations and models\n\n### Production Applications\n- **Web Services**: REST API for applications\n- **Public Access**: Hugging Face Spaces for community use\n- **Microservices**: Containerized deployment in cloud\n- **High-Throughput**: Scalable analysis for large cohorts\n\n### Educational Use\n- **Teaching Platform**: Web interface for students\n- **Reproducible Science**: Containerized environments\n- **Method Comparison**: Multiple analysis approaches\n- **Best Practices**: Clean, documented codebase\n\n## \ud83d\udd12 Data Integrity & Reproducibility\n\n### SHA-256 Checksums\n- **Purpose**: Ensure data file integrity during storage/transfer\n- **Implementation**: Automatic verification before analysis\n- **Usage**: `python utils/sha256_checksum.py verify data/raw data/raw/checksums.txt`\n\n### Fixed Random Seeds\n- **Purpose**: Ensure reproducible results across runs\n- **Implementation**: Fixed seeds in all stochastic processes\n- **Scope**: Random sampling, clustering, mock data generation\n\n### Examples of Reproducible Components\n\n1. **Random Sampling**:\n   ```python\n   np.random.seed(42)\n   cell_indices = np.random.choice(adata.n_obs, size=50000, replace=False)\n   ```\n\n2. **Clustering**:\n   ```python\n   kmeans = KMeans(n_clusters=n_clusters, random_state=42)\n   ```\n\n3. **LIANA Analysis**:\n   ```python\n   li.mt.rank_aggregate.by_sample(\n       adata, groupby=cell_type_col, resource_name='consensus',\n       n_perms=100, seed=42, verbose=True\n   )\n   ```\n\n## \ud83d\udd27 Development & Contributing\n\n### Development Setup\n\n```bash\n# Development setup\ngit clone https://github.com/Tumo505/HeartMap.git\ncd HeartMap\n./scripts/setup.sh\nsource heartmap_env/bin/activate\n\n# Install development dependencies\npip install -e .[dev]\n\n# Run tests before committing\npython tests/test_heartmap.py\npython scripts/validate.py\n\n# Code quality checks\nblack src/ tests/ scripts/  # Code formatting\nflake8 src/ --max-line-length=100  # Linting\nmypy src/heartmap --ignore-missing-imports  # Type checking\n```\n\n### Adding New Features\n\n1. **New Models**: Inherit from `BaseModel` in `src/heartmap/models/`\n2. **New Pipelines**: Inherit from `BasePipeline` in `src/heartmap/pipelines/`\n3. **API Endpoints**: Add to `src/heartmap/api/rest.py`\n4. **Configuration**: Extend dataclasses in `src/heartmap/config/`\n\n### Testing Guidelines\n\n```python\n# Test structure\ntests/\n\u251c\u2500\u2500 test_config.py       # Configuration management\n\u251c\u2500\u2500 test_data.py         # Data processing\n\u251c\u2500\u2500 test_models.py       # Analysis models\n\u251c\u2500\u2500 test_pipelines.py    # Analysis pipelines\n\u2514\u2500\u2500 test_api.py          # API interfaces\n```\n\n## \ud83c\udd98 Troubleshooting\n\n### Common Issues\n\n#### Memory Errors\n```bash\n# Reduce dataset size in config\ndata:\n  max_cells_subset: 10000\n  max_genes_subset: 2000\n```\n\n#### Import Errors\n```bash\n# Reinstall with all dependencies\npip install -e .[all]\n\n# Check Python path\npython -c \"import heartmap; print(heartmap.__file__)\"\n```\n\n#### Data Loading Issues\n```bash\n# Verify data format\npython -c \"import scanpy as sc; print(sc.read_h5ad('data/raw/your_file.h5ad'))\"\n\n# Check file permissions\nls -la data/raw/\n```\n\n#### Performance Issues\n```bash\n# Enable test mode for quick validation\ntest_mode: true  # in config.yaml\n\n# Use GPU acceleration (if available)\nmodel:\n  use_gpu: true\n```\n\n### Getting Help\n\n1. **Validation**: `python scripts/validate.py`\n2. **Logs**: Check logs in `results/` directory\n3. **Test Mode**: Set `test_mode: true` in configuration\n4. **Mock Data**: `python scripts/demo.py` for testing\n5. **Documentation**: Comprehensive docstrings in source code\n\n## \ud83d\udccb Requirements\n\n### System Requirements\n- **Python**: 3.8+ (recommended: 3.10)\n- **Memory**: 8GB+ recommended (configurable)\n- **Storage**: 5GB+ for data and results\n- **OS**: Linux, macOS, Windows\n\n### Dependencies\n- **Core**: scanpy, pandas, numpy, scipy, scikit-learn\n- **Visualization**: matplotlib, seaborn, plotly\n- **Communication**: liana, cellphonedb (optional)\n- **API**: fastapi, uvicorn (optional)\n- **Web**: gradio (optional)\n\n## \ud83c\udfaf Clinical Applications\n\n- **Personalized Medicine**: Chamber-specific treatment strategies\n- **Drug Development**: Chamber-specific therapeutic targets\n- **Disease Understanding**: Chamber-specific disease mechanisms\n- **Biomarker Discovery**: Chamber and communication-specific markers\n\n## \ud83e\udd1d Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Install development dependencies: `pip install -e .[dev]`\n4. Run tests: `python tests/test_heartmap.py`\n5. Submit a pull request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\udcd6 Citation\n\n```bibtex\n@software{heartmap2025,\n  title={HeartMAP: A Multi-Chamber Spatial Framework for Cardiac Cell-Cell Communication},\n  author={Kgabeng, Tumo and Wang, Lulu and Ngwangwa, Harry and Pandelani, Thanyani},\n  year={2024},\n  url={https://github.com/Tumo505/HeartMap},\n  version={1.0.0},\n  doi={10.5281/zenodo.16745118}\n}\n```\n\n## \ud83c\udd98 Support\n\n- **Issues**: [GitHub Issues](https://github.com/Tumo505/HeartMap/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/Tumo505/HeartMap/discussions)\n- **Email**: 28346416@mylife.unisa.ac.za\n\n## \ud83c\udf89 Acknowledgments\n\n- Department of Mechanical, Bioresources and Biomedical Engineering, University of South Africa\n- Department of Engineering, Reykjavik University\n- Single Cell Portal (SCP498) for providing the heart dataset\n- The open-source scientific Python community\n\n---\n\n**\ud83c\udf89 HeartMAP is now production-ready and available for research, deployment, and collaboration!**\n\nWhether you're a researcher exploring cardiac biology, a developer building applications, or an educator teaching single-cell analysis, HeartMAP provides the tools and flexibility you need.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Heart Multi-chamber Analysis Platform for single-cell RNA-seq",
    "version": "1.1.1",
    "project_urls": {
        "Documentation": "https://github.com/Tumo505/HeartMap/wiki",
        "Homepage": "https://github.com/Tumo505/HeartMap",
        "Source": "https://github.com/Tumo505/HeartMap",
        "Tracker": "https://github.com/Tumo505/HeartMap/issues"
    },
    "split_keywords": [
        "single-cell",
        " rna-seq",
        " heart",
        " cell-communication",
        " bioinformatics",
        " spatial-transcriptomics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d5a22d951e5a7852263fad8a6b2a20359069a907e92aa818f9c850b4fd2e5dd4",
                "md5": "20fff3854fa489680319bcf9e4ead274",
                "sha256": "decc669a0d6b3d5a148f435e4e3ffb46649cc92b9cad72a8279543de5aa876bf"
            },
            "downloads": -1,
            "filename": "heartmap-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "20fff3854fa489680319bcf9e4ead274",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 28104,
            "upload_time": "2025-08-06T19:39:22",
            "upload_time_iso_8601": "2025-08-06T19:39:22.614188Z",
            "url": "https://files.pythonhosted.org/packages/d5/a2/2d951e5a7852263fad8a6b2a20359069a907e92aa818f9c850b4fd2e5dd4/heartmap-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "778e9341cedd9261c2e09f07b65225efab3f518b7491e0b7f1fdde80836923a2",
                "md5": "7e2da6dec4fa9566f54b028ced0f97e0",
                "sha256": "b405fc8b372d73193094534333436dfe78a1f9e36d046af0d67a9f5616a21198"
            },
            "downloads": -1,
            "filename": "heartmap-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "7e2da6dec4fa9566f54b028ced0f97e0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 35756,
            "upload_time": "2025-08-06T19:39:24",
            "upload_time_iso_8601": "2025-08-06T19:39:24.340766Z",
            "url": "https://files.pythonhosted.org/packages/77/8e/9341cedd9261c2e09f07b65225efab3f518b7491e0b7f1fdde80836923a2/heartmap-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-06 19:39:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Tumo505",
    "github_project": "HeartMap",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "scanpy",
            "specs": [
                [
                    ">=",
                    "1.9.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.5.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.21.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.5.0"
                ]
            ]
        },
        {
            "name": "seaborn",
            "specs": [
                [
                    ">=",
                    "0.11.0"
                ]
            ]
        },
        {
            "name": "anndata",
            "specs": [
                [
                    ">=",
                    "0.8.0"
                ]
            ]
        },
        {
            "name": "cellphonedb",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "liana",
            "specs": [
                [
                    ">=",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "omnipath",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "plotly",
            "specs": [
                [
                    ">=",
                    "5.0.0"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": [
                [
                    ">=",
                    "2.8.0"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.9.0"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    ">=",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "notebook",
            "specs": []
        },
        {
            "name": "jupyterlab",
            "specs": []
        },
        {
            "name": "ipython",
            "specs": []
        },
        {
            "name": "ipywidgets",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": []
        },
        {
            "name": "statsmodels",
            "specs": []
        }
    ],
    "lcname": "heartmap"
}
        
Elapsed time: 0.98505s