Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add abstract T cell classes and modules #147

Merged
merged 76 commits into from
Feb 20, 2025

Conversation

allison-li-1016
Copy link
Contributor

@allison-li-1016 allison-li-1016 commented Jan 14, 2025

Addresses #40

Estimated Time: XLarge

Overview of major changes:
This PR is meant to set the stage for the incoming CART agents and actions from CARCADE.

  • Added switch statements to setState() function for PatchCellCART to accommodate for T cell specific states
  • Added antigens to cancer and tissue cells
  • Added PatchCellCART abstract class
  • Added PatchProcessInflammation abstract class
  • Added CART metabolism

Detailed breakdown of changes

Patch Cell Classes

PatchCell class:

  • moved step() method down a level to subclasses. The purpose of this is to allow for non-tissue agents to have unique rules that does not necessarily follow existing rule set.
  • some fields are now protected instead of private to allow subclass visibility since step() function is now in subclasses.
  • addition of inflammation module option when assigning processes
  • addition of isStopped() method that returns whether or not this cell has stopped stepping. This is important for the kill and reset action in subsequent PRs.

PatchCellTissue class:

  • Addition of CAR antigens field that represents the number of CAR antigens on the cell.
  • Addition of PDL1 antigens field that represents the number of PDL1 antigens on the cell.
  • Binding field that stores the binding status of this cell (ex. bound, unbound, etc.)
  • step() method has moved from PatchCell class to this class. Everything inside the step() method remains the same as before.

PatchCellCancer class:

  • Addition of CAR antigens field that represents the number of CAR antigens on the cell.

PatchCellTest class:

  • Moved step() function related tests down to PatchCellTissueTest class

PatchCellTissueTest class:

  • refactored unit tests that relate to the step() function

CART Agents and associated classes

PatchCellCART

  • Abstract class for T cells
  • Has bindTarget() method that determines if the cell can bind to a target depending on target cell surface antigens, and number of receptors on T cell

PatchCellCARTTest

  • added unit tests for aforementioned agents

Files changed to accommodate new agent:

PatchModuleProliferation

  • While splitting added update to inflammation module for new T cells

PatchEnums

  • Added T cell states to state enums
  • Added inflammation to domain enums
  • Added new AntigenFlag enum to record cell binding status

PatchEnumsTest

  • added a test for fetching antigen enum

Inflammation Modules

PatchProcessInflammation class:

  • Abstract class for inflammation process
  • Implementation of inflammation ODEs in which IL-2 is taken up by T cells, and T cell can undertake cytotoxic or stimulatory functions

PatchProcessInflammationTest class:

  • added unit tests for each class to verify functionality

Metabolism Modules

PatchProcess Metabolism class:

  • added CART option in make() method to allow for new metabolism type

PatchProcessMetabolismCART class:

  • As implemented in original CARCADE model
  • There is an up-regulated glucose uptake rate and metabolic preference depending on the activation status of the cell. The activation status of the cell is determined by the inflammation process.

PatchProcessMetabolismCARTTest class:

  • added unit tests to verify functionality of the CART metabolism class

Parameters

parameter.patch.xml

  • T cell agent parameter values
  • CART metabolism rates
  • Inflammation module default values
  • Treat action default values

@allison-li-1016 allison-li-1016 marked this pull request as draft January 14, 2025 21:19
@allison-li-1016 allison-li-1016 marked this pull request as ready for review January 14, 2025 21:22
@allison-li-1016 allison-li-1016 self-assigned this Jan 14, 2025
@allison-li-1016 allison-li-1016 requested review from a team, cainja, jessicasyu, jacob-evarts, Jannetty, pohaoc2 and daniellevahdat and removed request for a team January 14, 2025 21:23
@allison-li-1016 allison-li-1016 added package: patch Related to the patch implementation migration: v2 to v3 Aligning v2 and v3 category: agent Related to the agent subpackages size: xlarge Estimated size of issue or PR is xlarge labels Jan 15, 2025
@allison-li-1016 allison-li-1016 merged commit 234eb9a into main Feb 20, 2025
6 checks passed
@allison-li-1016 allison-li-1016 deleted the allison/carcade-cell-classes branch February 20, 2025 19:05
@jessicasyu jessicasyu changed the title CARCADE Refactor Step 1: Abstract T cell classes and modules Add abstract T cell classes and modules Mar 5, 2025
@jessicasyu jessicasyu added the type: feature Improvement or additions to the code base label Mar 5, 2025
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
category: agent Related to the agent subpackages migration: v2 to v3 Aligning v2 and v3 package: patch Related to the patch implementation size: xlarge Estimated size of issue or PR is xlarge type: feature Improvement or additions to the code base
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants