# Profiler Desktop — v1.2.0

**Multi-omics analysis platform — Desktop Edition**  
© 2025 PRISM U1192 Laboratory – INSERM / CHU de Lille / Université de Lille

---

## Overview

Profiler is a Streamlit-based desktop application for multi-omics data analysis, including:
- Raw mass-spectrometry data conversion (Thermo, Waters, Bruker)
- Data loading, binning, and normalisation (15+ methods)
-Time series and longitudinal data analysis
- Supervised ML & Deep Learning classification (MLP, CNN, RNN)
- Unsupervised analysis (PCA, UMAP, clustering)
- Feature importance (SHAP, LIME)
- Gene enrichment analysis (ORA, GSEA — online and offline)
- Survival analysis, longitudinal analysis, RT analysis
- Structured data (MaxQuant, proteomics tables)
- Interactive HTML report export

---

## Project Structure

```
Profiler/
│
├── install_profiler.bat        ← Windows installer (calls install_profiler.ps1)
├── install_profiler.ps1        ← PowerShell conda environment setup
├── run_profiler.bat            ← Launch Profiler Desktop on Windows
├── requirements.txt            ← Python dependencies
│
├── app/
│   ├── main.py                 ← Entry point (replaces profiler_desktop.py)
│   │
│   ├── gui/
│   │   └── Profiler_Desktop_Gui.py   ← Main Streamlit UI
│   │
│   ├── core/
│   │   ├── profiler_preprocessing.py ← Normalisation & binning
│   │   ├── profiler_DL.py            ← MLP / CNN / RNN training
│   │   └── profiler_training.py      ← Classical ML training
│   │
│   ├── analysis/
│   │   ├── profiler_features_importance.py
│   │   ├── profiler_genes_enrichment.py
│   │   ├── offline_enrichr.py
│   │   ├── profiler_survival.py
│   │   ├── profiler_unsupervised.py
│   │   ├── profiler_visualization.py
│   │   ├── profiler_normality.py
│   │   ├── profiler_longitudinal.py
│   │   ├── profiler_rt.py
│   │   └── profiler_sampling.py
│   │
│   ├── data/
│   │   ├── profiler_data_loading.py
│   │   ├── profiler_data_exploration.py
│   │   ├── profiler_conversion.py
│   │   └── profiler_structured_data_file.py
│   │
│   ├── utils/
│   │   ├── profiler_imports.py       ← Centralised third-party imports
│   │   ├── session_store.py          ← Disk-based session persistence
│   │   └── reset_data_session.py     ← Session state reset helper
│   │
│   └── assets/
│       ├── profiler_logo.png
│       ├── profiler.ico
│       └── profiler_icons.ttf
│
└── docs/
    ├── LICENSE.txt
    ├── README.md                ← This file
    └── CHANGELOG.md
```

---

## Installation (Windows)

1. Install [Miniconda](https://docs.conda.io/en/latest/miniconda.html) or Anaconda.
2. Double-click **`install_profiler.bat`** — this creates the `profiler` conda environment and installs all dependencies.
3. Double-click **`run_profiler.bat`** to launch the application. A browser window will open automatically.

> **First launch** may take 30–60 seconds while Streamlit initialises.

---

## Quick Start (manual)

```bash
conda activate profiler
python app/main.py
```

Or, to run Streamlit directly:
```bash
conda activate profiler
streamlit run app/gui/Profiler_Desktop_Gui.py
```

---

## Citation

If you use Profiler in a publication, please cite:

> Zirem, Y. (2025). *Profiler: an open web platform for multi-omics analysis*.  
> Journal of Bioinformatics. [DOI / Zenodo link available in the article]

---

## License

Profiler is proprietary software registered with the Agence pour la Protection des Programmes (APP).  
**IDDN Certificate:** `IDDN.FR.001.300044.000.S6.C7.2025.0009.3123010`

All rights reserved. See `docs/LICENSE.txt` for full terms.

For licensing or collaboration: **yanis.zirem@univ-lille.fr**
