Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
a9fefd7
all work I have done untill the midterm: tumor replicated from the na…
salva24 Aug 15, 2025
4667d1f
cleaned comments to follow Doxygen-style
salva24 Aug 16, 2025
69c73e2
Update README.md
salva24 Aug 16, 2025
9ef971c
Update src/cart_cell.cc
salva24 Aug 16, 2025
05cb370
changed comments to follow doxygen-style
salva24 Aug 16, 2025
84d0473
Remove draft_code_my_own_analysis/ from tracking and add to .gitignore
salva24 Aug 16, 2025
c6b7620
remove draft_code_my_own_analysis
salva24 Aug 16, 2025
f08333c
add to gitignore draft_code_my_own_analysis
salva24 Aug 16, 2025
8ae6f23
fixing comments
salva24 Aug 16, 2025
07ed3cd
Add missing include
vgvassilev Aug 21, 2025
e716582
Midterm code push (#1)
salva24 Aug 22, 2025
382137e
Adjust checks
vgvassilev Aug 22, 2025
dcd68b3
commit trial
salva24 Aug 22, 2025
723f673
add missing include again
salva24 Aug 22, 2025
3366052
solving some clang-tidy issues
salva24 Aug 22, 2025
4d6cab9
one more include
salva24 Aug 22, 2025
c9761b0
files formated
salva24 Aug 22, 2025
e9fe588
formated
salva24 Aug 22, 2025
debccdf
more clang tidy comments
salva24 Aug 22, 2025
611b78d
Update src/cart_cell.cc
salva24 Aug 22, 2025
34e11ef
Update src/cart_cell.cc
salva24 Aug 22, 2025
71de309
more tidy
salva24 Aug 22, 2025
f40e768
Merge branch 'ci-salva' of github.com:vgvassilev/CARTopiaX into ci-salva
salva24 Aug 22, 2025
6ecf5d1
includes cleaned
salva24 Aug 22, 2025
a70137d
includes order for clang format
salva24 Aug 22, 2025
858ba08
resolved clang tidy?
salva24 Aug 26, 2025
b30d84c
Revert "resolved clang tidy?"
salva24 Aug 27, 2025
66e4fff
solved clang tidy cart_cell.h and cart_tumor.h
salva24 Aug 27, 2025
5c341c6
diffusion_thomas_algorithm.h tidy
salva24 Aug 27, 2025
d674533
hyperameters.h tidy
salva24 Aug 27, 2025
e4e77d2
tidy more files: tumor_cell.h
salva24 Aug 28, 2025
522dc33
progress on cart_cell.cc
salva24 Aug 28, 2025
9627cd6
cart_cell.cc
salva24 Aug 28, 2025
8cff6c5
tidy forces_tumor_cart.cc
salva24 Aug 28, 2025
ae65e49
forces_tumor_cart.cc
salva24 Aug 28, 2025
1010b14
forces_tumor_cart.cc
salva24 Aug 28, 2025
ee39008
diffusion_thomas_algorithm.cc refactorized tidy
salva24 Aug 29, 2025
b176206
diffusion_thomas_algorithm.cc refactorized tidy
salva24 Aug 29, 2025
705cd8e
tumor_cell.cc tidy
salva24 Aug 29, 2025
9eb4f47
utils_aux.cc tidy
salva24 Aug 29, 2025
126bdec
tidy and clang format on everything
salva24 Aug 29, 2025
4af9f96
tidy and format
salva24 Aug 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ Checks: >
openmp-*
performance-*,
portability-*,
readability-*
readability-*,
-modernize-use-trailing-return-type,
-readability-identifier-length

CheckOptions:
- key: google-readability-braces-around-statements.ShortStatementLines
Expand Down
83 changes: 83 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,86 @@

# debug information files
*.dwo

build/
output/

**/.DS_Store

#----------------- intellij -----------------
.idea
cx3d-cpp.iml

#----------------- eclipse ------------------
.project
.cproject
.settings/

#----------------- VS Code ------------------
.vscode/*

#----------------- GNU global ------------------
GPATH
GRTAGS
GTAGS

#------------------- C++ --------------------
# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll
*.jnilib

# Fortran module files
*.mod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

#------------------- CMake --------------------
CMakeCache.txt
CMakeFiles
CMakeScripts
Makefile
cmake_install.cmake
install_manifest.txt

#------------------- Doxygen files --------------------
Doxyfile
doc/html
doc/latex

#------------------- Paraview --------------------
*.vtu
*.vti
*.pvtu
*.pvti


#Debugging files
*.csv

# Result files
*.xyz
*.dat

# Draft code for comparing models
draft_code_my_own_analysis/
46 changes: 46 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# -----------------------------------------------------------------------------
#
# Copyright (C) 2021 CERN & University of Surrey for the benefit of the
# BioDynaMo collaboration. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
#
# See the LICENSE file distributed with this work for details.
# See the NOTICE file distributed with this work for additional information
# regarding copyright ownership.
#
# -----------------------------------------------------------------------------
cmake_minimum_required(VERSION 3.19.3)
project(cart_tumor)


# BioDynaMo curretly uses the C++17 standard.
set(CMAKE_CXX_STANDARD 17)

# Use BioDynaMo in this project.
find_package(BioDynaMo REQUIRED)

# See UseBioDynaMo.cmake in your BioDynaMo build folder for details.
# Note that BioDynaMo provides gtest header/libraries in its include/lib dir.
include(${BDM_USE_FILE})

# Consider all files in src/ for BioDynaMo simulation.
include_directories("src")
file(GLOB_RECURSE PROJECT_HEADERS src/*.h)
file(GLOB_RECURSE PROJECT_SOURCES src/*.cc)

bdm_add_executable(${CMAKE_PROJECT_NAME}
HEADERS ${PROJECT_HEADERS}
SOURCES ${PROJECT_SOURCES}
LIBRARIES ${BDM_REQUIRED_LIBRARIES})

# Consider all files in test/ for GoogleTests.
include_directories("test")
file(GLOB_RECURSE TEST_SOURCES test/*.cc)
file(GLOB_RECURSE TEST_HEADERS test/*.h)

bdm_add_test(${CMAKE_PROJECT_NAME}-test
SOURCES ${TEST_SOURCES}
HEADERS ${TEST_HEADERS}
LIBRARIES ${BDM_REQUIRED_LIBRARIES} ${CMAKE_PROJECT_NAME})
131 changes: 130 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,130 @@
# CARTopiaX
# CARTopiaX

This repository provides an **agent-based simulation** of tumour-derived organoids and their interaction with **CAR T-cell therapy**.
Developed as part of Google Summer of Code 2025, the project is released under the **Apache License 2.0**.

The simulation integrates computational modeling and biological insights to explore tumour–immune dynamics and assess treatment outcomes under various scenarios.

---

## Table of Contents

1. [Project Overview](#project-overview)
2. [Dependencies](#dependencies)
3. [Installation](#installation)
4. [Building the Simulation](#building-the-simulation)
5. [Running the Simulation](#running-the-simulation)
6. [Visualizing Results](#results)
7. [Acknowledgments](#acknowledgments)
8. [License](#license)


---

## Project Overview

This project implements an **agent-based model** to simulate the behavior of *tumour-derived organoids* (lab-grown tumour models) and their response to **CAR T-cell therapy**.

With this simulation, researchers can:
- Recreate in vitro conditions for tumour growth.
- Introduce CAR T-cells and analyze their effectiveness in solid tumor microenvironments.
- Explore different treatment strategies and parameter variations.
- Evaluate outcomes such as tumour reduction, elimination, or relapse risk.

By adjusting biological and therapeutic parameters, the model enables **in silico experimentation** to complement laboratory research.

---

## Dependencies

- [BioDynaMo](https://biodynamo.org/) (tested with version 1.05.132)
- CMake ≥ 3.13
- GCC or Clang with C++17 support
- GoogleTest (for unit testing)

**Note:** Ensure BioDynaMo is installed and sourced before running the simulation.

---

## Installation

Clone the repository:
```bash
git clone https://github.com/compiler-research/CARTopiaX.git
cd CARTopiaX

```

---

## Building the Simulation

**Option 1:**
Use BioDynaMo’s build system:
```bash
biodynamo build
```

**Option 2:**
Manual build:
```bash
mkdir build && cd build
cmake ..
make -j <number_of_processes>
```

---

## Running the Simulation

After building, run the simulation using one of the following methods:

**Option 1:**
With BioDynaMo:
```bash
biodynamo run
```

**Option 2:**
Directly from the build directory:
```bash

./build/CARTopiaX
```

---

## Results

Data about tumor growth and diffrent types of cell populations is output in ./output/final_data.csv

To visualize the results in paraview use:
```bash
paraview ./output/CARTopiaX/CARTopiaX.pvsm

```

---

## Acknowledgments

This project builds upon the BioDynaMo simulation framework.

> Lukas Breitwieser, Ahmad Hesam, Jean de Montigny, Vasileios Vavourakis, Alexandros Iosif, Jack Jennings, Marcus Kaiser, Marco Manca, Alberto Di Meglio, Zaid Al-Ars, Fons Rademakers, Onur Mutlu, Roman Bauer.
> *BioDynaMo: a modular platform for high-performance agent-based simulation*.
> Bioinformatics, Volume 38, Issue 2, January 2022, Pages 453–460.
> [https://doi.org/10.1093/bioinformatics/btab649](https://doi.org/10.1093/bioinformatics/btab649)

Some of the mathematical models and solver implementations are based on the research of
Luciana Melina Luque and collaborators, as described in:

> Luque, L.M., Carlevaro, C.M., Rodriguez-Lomba, E. et al.
> *In silico study of heterogeneous tumour-derived organoid response to CAR T-cell therapy*.
> Scientific Reports 14, 12307 (2024).
> [https://doi.org/10.1038/s41598-024-63125-5](https://doi.org/10.1038/s41598-024-63125-5)

---

## License

This project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.
14 changes: 14 additions & 0 deletions bdm.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[visualization]
export = true
interval = 7200

[[visualize_agent]]
name = "TumorCell"
additional_data_members = [
{name = "diameter_", function = "diameter_"},
{name = "volume_", function = "volume_"},
{name = "cell_type", function = "GetTypeAsInt"}
]

[[visualize_diffusion]]
name = "oxygen"
Loading