Shape2Force / README.md
kaveh's picture
added yaml tag for HF model card
c006407
---
tags:
- biology
- microscopy
- traction-force
- pytorch
- pix2pix
- gan
license: mit
---
# Shape2Force (S2F)
Predict force maps from bright-field microscopy images of single-cell or spheroid.
If you find this software useful, please cite:
Lautaro Baro#, Kaveh Shahhosseini#, Amparo Andrés-Bordería, Claudio Angione*, and Maria Angeles Juanes*. **"Shape-to-force (S2F): Predicting Cell Traction Forces from LabelFree Imaging"**, 2026.
---
## Ways to Use S2F
### 1. Web App (local)
Run the Streamlit GUI from `S2FApp/`:
```bash
git clone https://github.com/Angione-Lab/Shape2Force.git
cd Shape2Force/S2FApp
pip install -r requirements.txt
streamlit run app.py
```
1. Choose Model type: Single cell or Spheroid
2. Place checkpoints (`.pth`) in `S2FApp/ckp/` for local use.
3. Select a Checkpoint from `ckp/`
4. For single-cell: pick Substrate (e.g. fibroblasts_PDMS)
5. Upload an image or pick from `samples/`
6. Click Run prediction
---
### 2. Web App Online
Use the [online app](https://huggingface.co/spaces/Angione-Lab/Shape2force) on Hugging Face.
<p align="center">
<img src="./S2FApp/res/ss.png" width="450" alt="Shape2Force Web App" />
</p>
---
### 3. Jupyter Notebooks
For interactive usage and custom analysis, use the notebooks in `notebooks/`:
- **`notebooks/Singlecell_inference.ipynb`** – Load a folder of brightfield images, run single-cell predictions, plot samples, and save all predictions with metrics.
- **`notebooks/Singlecell_evaluation.ipynb`** – Evaluate single-cell model on a dataset with ground truth; compute metrics and plot predictions.
- **`notebooks/Spheroid_inference.ipynb`** – Run spheroid predictions on brightfield images, plot samples, and save predictions.
- **`notebooks/Spheroid_evaluation.ipynb`** – Evaluate spheroid model on as dataset with ground truth; compute metrics and plot predictions.
Once cloned, open a notebook in Jupyter and adjust the configuration cell (paths, model type, substrate).
---
### 4. Training & Fine-Tuning
**Dataset layout:** A folder with `train/` and `test/` subfolders. Each subfolder has:
- `BF_001.tif` (bright-field image)
- `*_gray.jpg` (force map / heatmap)
- Optional `.txt` (cell_area, sum_force)
**Single-cell:**
```bash
python -m training.train \
--data path/to/dataset \
--model single_cell \
--epochs 100 \
--substrate fibroblasts_PDMS
```
**Spheroid:**
```bash
python -m training.train \
--data path/to/dataset \
--model spheroid \
--epochs 100
```
**Resume / fine-tune from checkpoint:**
```bash
python -m training.train \
--data path/to/dataset \
--model single_cell \
--resume ckp/last_checkpoint.pth \
--epochs 150
```
---