Skip to content

Add Flystem Cells#220

Open
Jannetty wants to merge 21 commits intomainfrom
feature/flystem-mergebranch
Open

Add Flystem Cells#220
Jannetty wants to merge 21 commits intomainfrom
feature/flystem-mergebranch

Conversation

@Jannetty
Copy link
Copy Markdown
Member

@Jannetty Jannetty commented Apr 12, 2026

Note: Please review #218 and #219 before reviewing this PR. This branch includes those changes, so they should be merged into main first. Once that happens, the diff in this PR will be significantly smaller.

Estimated time to review: Large (sorry)

Summary of changes:
This code adds the fly neuroblast code into the codebase. The changes include:

  • Adding fly stem cell classes to the potts cell container convert method so convert can call the PottsCellFlyStem constructor when the stem cell classes are specified in the constructor.
  • Adding PottsCellFlyStem class (and test class)
  • Adding PottsCellFlyStemProliferation module which includes all plane of division logic, growth rate regulation logic, differentiation logic (and tests)
  • Made getUniqueIDs a public function for all implementations so that the PottsCellFlyStemProliferation module can use it to determine the identities of neighboring cells
  • Adding parameters needed for PottsCellFlyStem and PottsCellFlyStemProliferationModule

How to verify changes:

  • run tests
  • Here is a minimal neuroblast setup file which you can run on this branch:
<set prefix="2025-10-23-01">
    <series name="dd" start="1" end="1"
            ds=".3" margin="0" height="1" length="802" width="802"
            dt=".083" ticks="576" interval="4">
        <potts>
            <potts.term id="volume" />
            <potts.term id="adhesion" />
            <potts.term id="surface" />
        </potts>
        <agents>
            <populations>
                <population id="fly-stem-wt" class="fly-stem-wt" init="1" >
                    <population.link id="fly-gmc" weight="1"/>
                    <population.parameter id="proliferation/SIZE_TARGET" value="1.2" />
                    <population.parameter id="CRITICAL_VOLUME" value="52" units="um^3" conversion="DS^-3" />
                    <population.parameter id="proliferation/CELL_GROWTH_RATE" value="5" units="um^3/hour" conversion="DS^-3DT"/>
                    <population.parameter id="proliferation/BASAL_APOPTOSIS_RATE" value="0"/>
                    <population.parameter id="proliferation/DIV_ROTATION_DISTRIBUTION" value="NORMAL(MU=36,SIGMA=30)" />
                    <population.parameter id="proliferation/DIFFERENTIATION_RULESET" value="location" />
                    <population.parameter id="proliferation/DIFFERENTIATION_RULESET_EQUALITY_RANGE" value="10" />
                    <population.parameter id="proliferation/APICAL_AXIS_RULESET" value="uniform" />
                    <population.parameter id="proliferation/APICAL_AXIS_ROTATION_DISTRIBUTION" value="UNIFORM(MIN=0,MAX=360)" />
                    <population.parameter id= "proliferation/DYNAMIC_GROWTH_RATE_VOLUME" value="0" />
                    <population.parameter id= "proliferation/DYNAMIC_GROWTH_RATE_NB_CONTACT" value="0" />
                    <population.parameter id= "proliferation/VOLUME_BASED_CRITICAL_VOLUME" value="1" />
                </population>
                <population id="fly-gmc" class="fly-gmc" init="0">
                 <population.link id="fly-neuron" weight="1"/>
                 <population.parameter id="proliferation/BASAL_APOPTOSIS_RATE" value="0"/>
                 <population.parameter id="CRITICAL_VOLUME" value="11" units="um^3" conversion="DS^-3" />
                 <population.parameter id="proliferation/CELL_GROWTH_RATE" value="1.22" units="um^2/hour" conversion="DS^-2.DT"/>
                 <population.parameter id= "proliferation/DYNAMIC_GROWTH_RATE_VOLUME" value="0" />
                </population>
                <population id="fly-neuron" class="fly-neuron" init="0">
                <population.parameter id="proliferation/CELL_GROWTH_RATE" value="0"/>
                <population.parameter id="proliferation/BASAL_APOPTOSIS_RATE" value="0"/>
                <population.parameter id="CRITICAL_VOLUME" value="11" units="um^3" conversion="DS^-3" />
                </population>
            </populations>
        </agents>
    </series>
</set>

resolves #137
resolves #109
resolves #91
resolves #58
resolves #50

@Jannetty Jannetty requested review from a team, allison-li-1016, cainja, daniellevahdat, jacob-evarts, jessicasyu, kristaphommatha and pohaoc2 and removed request for a team April 12, 2026 22:17
@Jannetty Jannetty self-assigned this Apr 12, 2026
@Jannetty Jannetty added priority: medium Non-urgent but important task type: feature Improvement or additions to the code base package: potts Related to the potts implementation category: agent Related to the agent subpackages size: large Estimated size of issue or PR is large labels Apr 12, 2026
@Jannetty Jannetty marked this pull request as ready for review April 12, 2026 22:20
@Jannetty Jannetty mentioned this pull request Apr 12, 2026
/** Enum outlining parameters for each cell type. */
public enum StemType {
/** Wild type stem cell. */
WT(50, 86, 0),
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make clear in documentation that these values are the named variables below

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: agent Related to the agent subpackages package: potts Related to the potts implementation priority: medium Non-urgent but important task size: large Estimated size of issue or PR is large type: feature Improvement or additions to the code base

Projects

None yet

1 participant