| --- |
| 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 |
| ``` |
|
|
| --- |
|
|
|
|