Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
775cada
broken & unupdated prospero preliminary code
navyacodes Feb 25, 2026
35782d6
broken code with prospero changed to be more biologically accurate
navyacodes Mar 4, 2026
87b2953
Modified 1.xml file and removed PottsCellFlyNeuron inheritance change
Mar 6, 2026
afc9e09
Modified PottsCellContainer, PottsOutputSerializer, and PottsCellFly …
Mar 6, 2026
7fb0423
Factored out logic determining prospero inheritance for makeDaughterS…
Mar 6, 2026
302279b
Merge branch 'feature/add-flystemcells' into jain/prospero
Mar 6, 2026
3cf96b6
Attempted to write a small test, but it is not being run when ./gradl…
Mar 6, 2026
0c7d92d
Broken prospero output saving v2 copied from Jason's pr (kept Alice's…
navyacodes Mar 11, 2026
15e9deb
Debugged why prospero wasn't saving. Prospero files are created and s…
Mar 11, 2026
5ea424f
removed step function from PottsOutputSaver
Jannetty Mar 11, 2026
1828786
Added javadoc comments for PottsCellFly class
navyacodes Mar 18, 2026
ff09ba2
Added tests for getAllProspero, splitStemProspero; fixed step test.
navyacodes Mar 18, 2026
12a4673
added a test for ProsperoSerializer's serialize method
navyacodes Mar 18, 2026
e405ab0
Added saveProspero test
Mar 18, 2026
d20ca29
Merge branch 'jain/prospero' of https://github.com/bagherilab/ARCADE …
Mar 18, 2026
38e8b8a
making copyJar run after other jobs in build.gradle
Jannetty Mar 18, 2026
f709e54
Reverted prospero saving changes in PottsCellContainer
Mar 18, 2026
da337cf
Merge branch 'jain/prospero' of https://github.com/bagherilab/ARCADE …
Mar 18, 2026
23b702c
updating PDE like test to have correct number of mocked neuroblasts
Jannetty Mar 18, 2026
0440a6a
added prospero synthesis and degradation to xml
navyacodes Apr 6, 2026
2e46469
added getParameters test in FlyStemProliferationTest
navyacodes Apr 6, 2026
aca8c19
added setsParameters test for GMC differentiation
navyacodes Apr 6, 2026
c1e94f6
Added constructor_setsParameters test in PottsModuleProliferationVolu…
Apr 6, 2026
9590b07
added a few docstrings and ran spotless
Jannetty Apr 6, 2026
6ce7cb1
Added error when degradation rate pulled from parameters is negative
Apr 8, 2026
3a3db07
Flipped the sign of prospero degradation so the positive degradation …
Apr 8, 2026
5fa25f0
Tests exception for negative Prospero degradation rate is thrown
Apr 8, 2026
3709e3c
Added test for step function in PottsModuleFlyGMCDiffferentiationTest
Apr 27, 2026
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
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,8 @@ task updateVersion (group: "versioning", description: "Syncs gradle version with
}
}

copyJar.mustRunAfter spotlessMisc, spotlessJava, compileTestJava, test, jacocoTestReport

build.dependsOn copyJar

test.finalizedBy jacocoTestReport
Expand Down
42 changes: 42 additions & 0 deletions input/1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<set prefix="2026-03-06">
<series name="WT_rotation_volume_none_critVolOn" start="1" end="100"
ds=".3" margin="0" height="1" length="802" width="802"
dt=".083" ticks="576" interval="576">
<potts>
<potts.term id="volume" />
<potts.term id="adhesion" />
<potts.term id="surface" />
<potts.parameter term="surface" id="LAMBDA" value=".1"/>
</potts>
<agents>
<populations>
<population id="fly-stem-mudmut" class="fly-stem-mudmut" init="1" >
<population.link id="fly-gmc" weight="1"/>
<population.parameter id="proliferation/SIZE_TARGET" value="1.2" />
<population.parameter id="CRITICAL_VOLUME" value="170" units="um^3" conversion="DS^-3" />
<population.parameter id="proliferation/CELL_GROWTH_RATE" value="15" units="um^3/hour" conversion="DS^-3DT"/>
<population.parameter id="proliferation/BASAL_APOPTOSIS_RATE" value="0"/>
<population.parameter id="proliferation/VOLUME_BASED_CRITICAL_VOLUME" value="1"/>
<population.parameter id="proliferation/DIV_ROTATION_DISTRIBUTION" value="NORMAL(MU=36,SIGMA=30)"/>
<population.parameter id="proliferation/APICAL_AXIS_RULESET" value="normal" />
<population.parameter id="proliferation/APICAL_AXIS_ROTATION_DISTRIBUTION" value="NORMAL(MU=0,SIGMA=30)" />
<population.parameter id="proliferation/DIFFERENTIATION_RULESET" value="volume" />
<population.parameter id="proliferation/DIFFERENTIATION_RULESET_EQUALITY_RANGE" value="386" />
<population.parameter id="proliferation/DYNAMIC_GROWTH_RATE_VOLUME" value="0" />
<population.parameter id="proliferation/DYNAMIC_GROWTH_RATE_NB_CONTACT" value="0" />
</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="proliferation/CELL_GROWTH_RATE" value="5" 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>
42 changes: 42 additions & 0 deletions setup/1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<set prefix="2025-01-01">

Check failure on line 1 in setup/1.xml

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] setup/1.xml#L1 <com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck>

File does not end with a newline.
Raw output
/github/workspace/./setup/1.xml:1:0: error: File does not end with a newline. (com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck)
<series name="WT_rotation_volume_none_critVolOn" start="1" end="100"
ds=".3" margin="0" height="1" length="802" width="802"
dt=".083" ticks="576" interval="576">
<potts>
<potts.term id="volume" />
<potts.term id="adhesion" />
<potts.term id="surface" />
<potts.parameter term="surface" id="LAMBDA" value=".1"/>
</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="170" units="um^3" conversion="DS^-3" />
<population.parameter id="proliferation/CELL_GROWTH_RATE" value="15" units="um^3/hour" conversion="DS^-3DT"/>
<population.parameter id="proliferation/BASAL_APOPTOSIS_RATE" value="0"/>
<population.parameter id="proliferation/VOLUME_BASED_CRITICAL_VOLUME" value="1"/>
<population.parameter id="proliferation/DIV_ROTATION_DISTRIBUTION" value="NORMAL(MU=36,SIGMA=30)"/>
<population.parameter id="proliferation/APICAL_AXIS_RULESET" value="rotation" />
<population.parameter id="proliferation/APICAL_AXIS_ROTATION_DISTRIBUTION" value="NORMAL(MU=0,SIGMA=30)" />
<population.parameter id="proliferation/DIFFERENTIATION_RULESET" value="volume" />
<population.parameter id="proliferation/DIFFERENTIATION_RULESET_EQUALITY_RANGE" value="386" />
<population.parameter id="proliferation/DYNAMIC_GROWTH_RATE_VOLUME" value="0" />
<population.parameter id="proliferation/DYNAMIC_GROWTH_RATE_NB_CONTACT" value="0" />
</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="proliferation/CELL_GROWTH_RATE" value="5" 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>
4 changes: 3 additions & 1 deletion src/arcade/potts/PottsARCADE.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ public OutputLoader getLoader(Series series) {

@Override
public OutputSaver getSaver(Series series) {
return new PottsOutputSaver(series);
PottsOutputSaver saver = new PottsOutputSaver(series);
saver.saveProspero = settings.contains("SAVE_PROSPERO");
return saver;
}
}
2 changes: 2 additions & 0 deletions src/arcade/potts/agent/cell/PottsCellContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ public PottsCellContainer(
/**
* Creates a {@code PottsCellContainer} instance.
*
* <p>The container does not have prospero.
*
* @param id the cell ID
* @param parent the parent ID
* @param pop the cell population index
Expand Down
42 changes: 42 additions & 0 deletions src/arcade/potts/agent/cell/PottsCellFly.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package arcade.potts.agent.cell;

import arcade.core.env.location.Location;
import arcade.core.util.GrabBag;
import arcade.core.util.Parameters;

/**

Check failure on line 7 in src/arcade/potts/agent/cell/PottsCellFly.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFly.java#L7 <com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck>

Comment matches to-do format 'TODO:'.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFly.java:7:3: error: Comment matches to-do format 'TODO:'. (com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck)
* Implementation of {@link PottsCell} for Potts Fly models.
*
* <p>Cells follow {@link PottsCell} rules, but additionally keep track of the amount of prospero.
*
* <p>[TODO: fix class comment]
*/
public abstract class PottsCellFly extends PottsCell {

/** Amount of prospero in cell. */
private double prospero;

public PottsCellFly(

Check failure on line 19 in src/arcade/potts/agent/cell/PottsCellFly.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFly.java#L19 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFly.java:19:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)
PottsCellContainer container, Location location, Parameters parameters, GrabBag links) {
super(container, location, parameters, links);
this.prospero = 0;
}

/**
* Gets the amount of prospero in the cell.
*
* @return the amount of prospero in the cell.
*/
public double getProspero() {
return prospero;
}

/**
* Sets the amount of prospero for the cell.
*
* @param prospero the amount of prospero in the cell.
*/
public void setProspero(double prospero) {
this.prospero = prospero;
}
}
2 changes: 1 addition & 1 deletion src/arcade/potts/agent/cell/PottsCellFlyGMC.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* PottsModuleProliferationVolumeBasedDivision} module. The basal apoptosis rate of this cell should
* be set to 0 in the setup file.
*/
public class PottsCellFlyGMC extends PottsCell {
public class PottsCellFlyGMC extends PottsCellFly {

/**
* Creates a fly GMC {@code PottsCell} agent.
Expand Down
2 changes: 1 addition & 1 deletion src/arcade/potts/agent/cell/PottsCellFlyNeuron.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import static arcade.potts.util.PottsEnums.State;

/** Represents a fly neuron cell in the Potts model. This cell is quiescent. */
public final class PottsCellFlyNeuron extends PottsCell {
public final class PottsCellFlyNeuron extends PottsCellFly {

/**
* Creates a {@code PottsCellFlyNeuron} {@code PottsCell} agent.
Expand Down
2 changes: 1 addition & 1 deletion src/arcade/potts/agent/cell/PottsCellFlyStem.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import arcade.potts.util.PottsEnums.Phase;
import static arcade.potts.util.PottsEnums.State;

public class PottsCellFlyStem extends PottsCell {
public class PottsCellFlyStem extends PottsCellFly {

Check failure on line 14 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L14 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocTypeCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:14:1: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocTypeCheck)
/** Enum outlining parameters for each cell type. */
public enum StemType {
/** Wild type stem cell. */
Expand Down Expand Up @@ -59,7 +59,7 @@
/** The type of stem cell. */
public final StemType stemType;

private Vector apicalAxis;

Check failure on line 62 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L62 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:62:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck)

/**
* Constructor for PottsCellFlyStem.
Expand Down Expand Up @@ -91,7 +91,7 @@
}
}

public void setApicalAxis(Vector apicalAxis) {

Check failure on line 94 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L94 <com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck>

Class 'PottsCellFlyStem' looks like designed for extension (can be subclassed), but the method 'setApicalAxis' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsCellFlyStem' final or making the method 'setApicalAxis' static/final/abstract/empty, or adding allowed annotation for the method.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:94:5: error: Class 'PottsCellFlyStem' looks like designed for extension (can be subclassed), but the method 'setApicalAxis' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsCellFlyStem' final or making the method 'setApicalAxis' static/final/abstract/empty, or adding allowed annotation for the method. (com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck)

Check failure on line 94 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L94 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:94:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)
this.apicalAxis = apicalAxis;
}

Expand All @@ -112,10 +112,10 @@
@Override
public PottsCellContainer make(int newID, CellState newState, MersenneTwisterFast random) {
throw new UnsupportedOperationException(
"make(int, CellState, MersenneTwisterFast) not supported. Please use make(int, CellState, MersenneTwisterFast, int, double) instead.");

Check warning on line 115 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L115 <LineLength>

Line is longer than 100 characters (found 151).
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:115:0: warning: Line is longer than 100 characters (found 151). (LineLength)

Check failure on line 115 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L115 <LineLengthTest>

Line is longer than 120 characters (found 151).
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:115:0: error: Line is longer than 120 characters (found 151). (LineLengthTest)
}

public PottsCellContainer make(

Check failure on line 118 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L118 <com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck>

Class 'PottsCellFlyStem' looks like designed for extension (can be subclassed), but the method 'make' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsCellFlyStem' final or making the method 'make' static/final/abstract/empty, or adding allowed annotation for the method.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:118:5: error: Class 'PottsCellFlyStem' looks like designed for extension (can be subclassed), but the method 'make' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsCellFlyStem' final or making the method 'make' static/final/abstract/empty, or adding allowed annotation for the method. (com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck)

Check failure on line 118 in src/arcade/potts/agent/cell/PottsCellFlyStem.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/cell/PottsCellFlyStem.java#L118 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/cell/PottsCellFlyStem.java:118:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)
int newID,
CellState newState,
MersenneTwisterFast random,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@
import arcade.core.agent.cell.CellContainer;
import arcade.core.env.location.Location;
import arcade.core.sim.Simulation;
import arcade.potts.agent.cell.PottsCell;
import arcade.potts.agent.cell.PottsCellContainer;
import arcade.potts.agent.cell.PottsCellFlyGMC;
import arcade.potts.agent.cell.PottsCellFlyNeuron;
import arcade.potts.agent.cell.*;

Check failure on line 7 in src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java#L7 <com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck>

Using the '.*' form of import should be avoided - arcade.potts.agent.cell.*.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java:7:31: error: Using the '.*' form of import should be avoided - arcade.potts.agent.cell.*. (com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck)
import arcade.potts.env.location.PottsLocation2D;
import arcade.potts.sim.Potts;
import arcade.potts.sim.PottsSimulation;
Expand All @@ -20,8 +17,11 @@
*/
public class PottsModuleFlyGMCDifferentiation extends PottsModuleProliferationVolumeBasedDivision {

Boolean pdeLike;

Check failure on line 20 in src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java#L20 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java:20:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck)

/* Rate of Prospero degradation (ticks^-1). */
final double prosperoDegradationRate;

Check failure on line 23 in src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java#L23 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java:23:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck)

/**
* Creates a fly GMC proliferation module.
*
Expand All @@ -30,6 +30,21 @@
public PottsModuleFlyGMCDifferentiation(PottsCellFlyGMC cell) {
super(cell);
pdeLike = (cell.getParameters().getInt("proliferation/PDELIKE") != 0);
prosperoDegradationRate =
cell.getParameters().getDouble("proliferation/PROSPERO_DEGRADATION_RATE");
if (prosperoDegradationRate < 0) {
throw new IllegalArgumentException("Prospero degradation rate should not be negative");
}
}

@Override
public void step(MersenneTwisterFast random, Simulation sim) {
super.step(random, sim);
((PottsCellFly) cell)
.setProspero(
Math.max(0, ((PottsCellFly) cell).getProspero() - prosperoDegradationRate));
System.out.println(
"GMC ID " + cell.getID() + " prospero: " + ((PottsCellFly) cell).getProspero());
}

/**
Expand Down Expand Up @@ -95,7 +110,7 @@
differentiatedGMC.schedule(sim.getSchedule());
}

public void updateGrowthRate(Simulation sim) {

Check failure on line 113 in src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java#L113 <com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck>

Class 'PottsModuleFlyGMCDifferentiation' looks like designed for extension (can be subclassed), but the method 'updateGrowthRate' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyGMCDifferentiation' final or making the method 'updateGrowthRate' static/final/abstract/empty, or adding allowed annotation for the method.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java:113:5: error: Class 'PottsModuleFlyGMCDifferentiation' looks like designed for extension (can be subclassed), but the method 'updateGrowthRate' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyGMCDifferentiation' final or making the method 'updateGrowthRate' static/final/abstract/empty, or adding allowed annotation for the method. (com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck)

Check failure on line 113 in src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java#L113 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java:113:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)
if (!dynamicGrowthRateVolume) {
cellGrowthRate = cellGrowthRateBase;
} else {
Expand All @@ -112,10 +127,10 @@

for (int i = 0; i < objs.numObjs; i++) {
Object o = objs.objs[i];
if (!(o instanceof arcade.potts.agent.cell.PottsCell)) continue;

Check failure on line 130 in src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java#L130 <com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck>

'if' construct must use '{}'s.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java:130:21: error: 'if' construct must use '{}'s. (com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck)

arcade.potts.agent.cell.PottsCell c = (arcade.potts.agent.cell.PottsCell) o;
if (c.getPop() != cell.getPop()) continue; // keep to same population

Check failure on line 133 in src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java#L133 <com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck>

'if' construct must use '{}'s.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyGMCDifferentiation.java:133:21: error: 'if' construct must use '{}'s. (com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck)

if (o instanceof arcade.potts.agent.cell.PottsCellFlyGMC) {
arcade.potts.agent.cell.PottsCellFlyGMC gmc =
Expand Down
60 changes: 57 additions & 3 deletions src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import arcade.core.util.distributions.UniformDistribution;
import arcade.potts.agent.cell.PottsCell;
import arcade.potts.agent.cell.PottsCellContainer;
import arcade.potts.agent.cell.PottsCellFly;
import arcade.potts.agent.cell.PottsCellFlyStem;
import arcade.potts.agent.cell.PottsCellFlyStem.StemType;
import arcade.potts.env.location.PottsLocation;
Expand All @@ -30,7 +31,7 @@
import static arcade.potts.util.PottsEnums.Phase;
import static arcade.potts.util.PottsEnums.State;

public class PottsModuleFlyStemProliferation extends PottsModuleProliferationVolumeBasedDivision {

Check failure on line 34 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L34 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocTypeCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:34:1: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocTypeCheck)

/** Threshold for critical volume size checkpoint. */
static final double SIZE_CHECKPOINT = 0.95;
Expand All @@ -38,6 +39,9 @@
/** Basal rate of apoptosis (ticks^-1). */
final double basalApoptosisRate;

/** Rate of Prospero synthesis (ticks^-1). */
final double prosperoSynthesisRate;

/** Distribution that determines rotational offset of cell's division plane. */
final NormalDistribution splitDirectionDistribution;

Expand Down Expand Up @@ -65,7 +69,7 @@
/** Boolean flag indicating whether growth rate should be regulated by NB-NB contact. */
final boolean dynamicGrowthRateNBSelfRepression;

final double volumeBasedCriticalVolumeMultiplier;

Check failure on line 72 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L72 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:72:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck)

/**
* Range of values considered equal when determining daughter cell identity. ex. if ruleset is
Expand All @@ -88,11 +92,11 @@
/*
* Boolean flag for whether the daughter cell's differentiation is determined deterministically.
*/
final boolean hasDeterministicDifferentiation;

Check failure on line 95 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L95 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:95:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck)

final double initialSize;

Check failure on line 97 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L97 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:97:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck)

public static final double EPSILON = 1e-8;

Check failure on line 99 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L99 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:99:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck)

/**
* Boolean determining whether growth and division rates are universal across all NBs. If true
Expand All @@ -116,6 +120,7 @@
Parameters parameters = cell.getParameters();

basalApoptosisRate = parameters.getDouble("proliferation/BASAL_APOPTOSIS_RATE");
prosperoSynthesisRate = parameters.getDouble("proliferation/PROSPERO_SYNTHESIS_RATE");
splitDirectionDistribution =
(NormalDistribution)
parameters.getDistribution("proliferation/DIV_ROTATION_DISTRIBUTION");
Expand All @@ -135,7 +140,7 @@

if (dynamicGrowthRateVolume && dynamicGrowthRateNBSelfRepression) {
throw new InvalidParameterException(
"Dynamic growth rate can be either volume-based or NB-contact-based, not both.");

Check warning on line 143 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L143 <LineLength>

Line is longer than 100 characters (found 101).
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:143:0: warning: Line is longer than 100 characters (found 101). (LineLength)
}

volumeBasedCriticalVolumeMultiplier =
Expand All @@ -160,6 +165,15 @@
setPhase(Phase.UNDEFINED);
}

@Override
public void step(MersenneTwisterFast random, Simulation sim) {
super.step(random, sim);
((PottsCellFly) cell)
.setProspero(((PottsCellFly) cell).getProspero() + prosperoSynthesisRate);
System.out.println(
"Stem ID " + cell.getID() + " prospero: " + ((PottsCellFly) cell).getProspero());
}

@Override
public void addCell(MersenneTwisterFast random, Simulation sim) {
Potts potts = ((PottsSimulation) sim).getPotts();
Expand Down Expand Up @@ -190,17 +204,17 @@
* @param sim the simulation
*/
public void updateGrowthRate(Simulation sim) {
if (dynamicGrowthRateVolume == true) {

Check failure on line 207 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L207 <com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck>

Expression can be simplified.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:207:37: error: Expression can be simplified. (com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck)
updateVolumeBasedGrowthRate(sim);
} else if (dynamicGrowthRateNBSelfRepression == true) {

Check failure on line 209 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L209 <com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck>

Expression can be simplified.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:209:54: error: Expression can be simplified. (com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck)
updateGrowthRateBasedOnOtherNBs(sim);
} else {
cellGrowthRate = cellGrowthRateBase;
}
}

public void updateVolumeBasedGrowthRate(Simulation sim) {

Check failure on line 216 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L216 <com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck>

Class 'PottsModuleFlyStemProliferation' looks like designed for extension (can be subclassed), but the method 'updateVolumeBasedGrowthRate' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyStemProliferation' final or making the method 'updateVolumeBasedGrowthRate' static/final/abstract/empty, or adding allowed annotation for the method.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:216:5: error: Class 'PottsModuleFlyStemProliferation' looks like designed for extension (can be subclassed), but the method 'updateVolumeBasedGrowthRate' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyStemProliferation' final or making the method 'updateVolumeBasedGrowthRate' static/final/abstract/empty, or adding allowed annotation for the method. (com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck)

Check failure on line 216 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L216 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:216:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)
if (pdeLike == false) {

Check failure on line 217 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L217 <com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck>

Expression can be simplified.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:217:21: error: Expression can be simplified. (com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck)
updateCellVolumeBasedGrowthRate(
cell.getLocation().getVolume(), cell.getCriticalVolume());
} else {
Expand Down Expand Up @@ -245,7 +259,7 @@
return stemNeighbors;
}

protected void updateGrowthRateBasedOnOtherNBs(Simulation sim) {

Check failure on line 262 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L262 <com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck>

Class 'PottsModuleFlyStemProliferation' looks like designed for extension (can be subclassed), but the method 'updateGrowthRateBasedOnOtherNBs' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyStemProliferation' final or making the method 'updateGrowthRateBasedOnOtherNBs' static/final/abstract/empty, or adding allowed annotation for the method.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:262:5: error: Class 'PottsModuleFlyStemProliferation' looks like designed for extension (can be subclassed), but the method 'updateGrowthRateBasedOnOtherNBs' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyStemProliferation' final or making the method 'updateGrowthRateBasedOnOtherNBs' static/final/abstract/empty, or adding allowed annotation for the method. (com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck)

Check failure on line 262 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L262 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:262:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)
int nbsInContact;
if (pdeLike) {
int nbsInSim = getNBsInSimulation(sim).size();
Expand All @@ -255,8 +269,8 @@
}
double np = Math.max(0.0, (double) nbsInContact);

double Kn = Math.pow(nbContactHalfMax, nbContactHillN);

Check failure on line 272 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L272 <com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck>

Name 'Kn' must match pattern '^([a-z][a-zA-Z0-9]*|_)$'.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:272:16: error: Name 'Kn' must match pattern '^([a-z][a-zA-Z0-9]*|_)$'. (com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck)
double Npn = Math.pow(np, nbContactHillN);

Check failure on line 273 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L273 <com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck>

Name 'Npn' must match pattern '^([a-z][a-zA-Z0-9]*|_)$'.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:273:16: error: Name 'Npn' must match pattern '^([a-z][a-zA-Z0-9]*|_)$'. (com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck)

double hillRepression;
if (Kn == 0.0) {
Expand Down Expand Up @@ -305,7 +319,7 @@
*/
public Plane getWTDivisionPlaneWithRotationalVariance(
PottsCellFlyStem cell, double rotationOffset) {
Vector apical_axis = cell.getApicalAxis();

Check failure on line 322 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L322 <com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck>

Name 'apical_axis' must match pattern '^([a-z][a-zA-Z0-9]*|_)$'.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:322:16: error: Name 'apical_axis' must match pattern '^([a-z][a-zA-Z0-9]*|_)$'. (com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck)
Vector rotatedNormalVector =
Vector.rotateVectorAroundAxis(
apical_axis, Direction.XY_PLANE.vector, rotationOffset);
Expand Down Expand Up @@ -347,7 +361,7 @@
* @return the voxel location where the cell will split
*/
public static Voxel getCellSplitVoxel(
StemType stemType, PottsCellFlyStem cell, Vector rotatedNormalVector) {

Check failure on line 364 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L364 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck>

Expected @param tag for 'stemType'.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:364:22: error: Expected @param tag for 'stemType'. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck)

Check failure on line 364 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L364 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck>

Expected @param tag for 'rotatedNormalVector'.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:364:62: error: Expected @param tag for 'rotatedNormalVector'. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck)
ArrayList<Integer> splitOffsetPercent = new ArrayList<>();
splitOffsetPercent.add(stemType.splitOffsetPercentX);
splitOffsetPercent.add(stemType.splitOffsetPercentY);
Expand All @@ -371,7 +385,7 @@
if (differentiationRuleset.equals("volume")) {
double vol1 = loc1.getVolume();
double vol2 = loc2.getVolume();
if (Math.abs(vol1 - vol2) < range) {

Check failure on line 388 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L388 <com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck>

Conditional logic can be removed.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:388:17: error: Conditional logic can be removed. (com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck)
return true;
} else {
return false;
Expand All @@ -388,13 +402,13 @@
}

/*
* Determines whether the daughter cell should be a neuroblast or a GMC according to the orientation.

Check warning on line 405 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L405 <LineLength>

Line is longer than 100 characters (found 105).
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:405:0: warning: Line is longer than 100 characters (found 105). (LineLength)
* This is deterministic.
*
* @param divisionPlane
* @return {@code true} if the daughter should be a stem cell. {@code false} if the daughter should be a GMC.

Check warning on line 409 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L409 <LineLength>

Line is longer than 100 characters (found 113).
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:409:0: warning: Line is longer than 100 characters (found 113). (LineLength)
*/
private boolean daughterStemDeterministic(Plane divisionPlane) {

Check failure on line 411 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L411 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:411:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)

Vector normalVector = divisionPlane.getUnitNormalVector();

Expand Down Expand Up @@ -453,7 +467,7 @@
return distanceAlongAxis - range <= EPSILON;
}

/**

Check failure on line 470 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L470 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck>

First sentence should end with a period.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:470:0: error: First sentence should end with a period. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck)
* Makes a daughter NB cell
*
* @param daughterLoc the location of the daughter NB cell
Expand All @@ -478,10 +492,13 @@
PottsCellContainer container =
((PottsCellFlyStem) cell)
.make(newID, State.PROLIFERATIVE, random, cell.getPop(), criticalVol);
scheduleNewCell(container, daughterLoc, sim, potts, random);

double daughterProspero = splitStemProspero(((PottsCellFly) cell).getProspero(), random);
System.out.print("Creating daughter stem cell with prospero " + daughterProspero + " and ");
scheduleNewCell(container, daughterLoc, sim, potts, random, daughterProspero);
}

/**

Check failure on line 501 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L501 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck>

First sentence should end with a period.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:501:0: error: First sentence should end with a period. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck)
* Makes a daughter GMC cell
*
* @param parentLoc the location of the parent NB cell
Expand Down Expand Up @@ -510,7 +527,39 @@
PottsCellContainer container =
((PottsCellFlyStem) cell)
.make(newID, State.PROLIFERATIVE, random, newPop, criticalVolume);
scheduleNewCell(container, daughterLoc, sim, potts, random);
PottsCellFlyStem flyStemCell = (PottsCellFlyStem) cell;

System.out.print(
"Creating daughter GMC with prospero "
+ ((PottsCellFly) cell).getProspero()
+ " and ");
scheduleNewCell(
container, daughterLoc, sim, potts, random, ((PottsCellFly) cell).getProspero());
}

/**
* Determines how prospero is split between the parent and daughter cell. Can be edited to
* change behavior. Current prototype behavior divides the prospero evenly 50% of the time, and
* randomly selects which cell gets all prospero the other 50% of the time.
*
* @param parentProspero the parent cell's prospero to be divided
* @param random the random number generator
* @return double with daughter prospero amount
*/
static double splitStemProspero(double parentProspero, MersenneTwisterFast random) {
if (parentProspero <= 0) {
return 0;
}

if (random.nextBoolean()) { // 50% of the time, split prospero evenly
return parentProspero / 2;
} else { // 50% of the time, randomly choose which cell gets all the prospero
if (random.nextBoolean()) {
return parentProspero;
} else {
return 0;
}
}
}

/**
Expand All @@ -527,7 +576,8 @@
PottsLocation daughterLoc,
Simulation sim,
Potts potts,
MersenneTwisterFast random) {
MersenneTwisterFast random,
double daughterProspero) {

Check failure on line 580 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L580 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck>

Expected @param tag for 'daughterProspero'.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:580:20: error: Expected @param tag for 'daughterProspero'. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck)
PottsCell newCell =
(PottsCell) container.convert(sim.getCellFactory(), daughterLoc, random);
if (newCell.getClass() == PottsCellFlyStem.class) {
Expand All @@ -537,6 +587,10 @@
potts.register(newCell);
newCell.reset(potts.ids, potts.regions);
newCell.schedule(sim.getSchedule());
System.out.println("ID " + newCell.getID());

((PottsCellFly) newCell).setProspero(daughterProspero);
((PottsCellFly) cell).setProspero(((PottsCellFly) cell).getProspero() - daughterProspero);
}

/**
Expand All @@ -551,7 +605,7 @@
case "uniform":
if (!(apicalAxisRotationDistribution instanceof UniformDistribution)) {
throw new IllegalArgumentException(
"apicalAxisRotationDistribution must be a UniformDistribution under the uniform apical axis ruleset.");

Check warning on line 608 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L608 <LineLength>

Line is longer than 100 characters (found 131).
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:608:0: warning: Line is longer than 100 characters (found 131). (LineLength)

Check failure on line 608 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L608 <LineLengthTest>

Line is longer than 120 characters (found 131).
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:608:0: error: Line is longer than 120 characters (found 131). (LineLengthTest)
}
Vector newRandomApicalAxis =
Vector.rotateVectorAroundAxis(
Expand All @@ -564,7 +618,7 @@
case "normal":
if (!(apicalAxisRotationDistribution instanceof NormalDistribution)) {
throw new IllegalArgumentException(
"apicalAxisRotationDistribution must be a NormalDistribution under the rotation apical axis ruleset.");

Check warning on line 621 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L621 <LineLength>

Line is longer than 100 characters (found 131).
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:621:0: warning: Line is longer than 100 characters (found 131). (LineLength)

Check failure on line 621 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L621 <LineLengthTest>

Line is longer than 120 characters (found 131).
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:621:0: error: Line is longer than 120 characters (found 131). (LineLengthTest)
}
Vector newRotatedApicalAxis =
Vector.rotateVectorAroundAxis(
Expand Down Expand Up @@ -600,7 +654,7 @@
}
}

/**

Check failure on line 657 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L657 <com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck>

First sentence should end with a period.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:657:0: error: First sentence should end with a period. (com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck)
* Calculates the critical volume of a GMC daughter cell
*
* @param gmcLoc the location of the GMC daughter cell
Expand Down Expand Up @@ -655,12 +709,12 @@
return (proj1 < proj2) ? loc2 : loc1; // higher projection = more basal
}

public HashSet<PottsCellFlyStem> getNBsInSimulation(Simulation sim) {

Check failure on line 712 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L712 <com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck>

Class 'PottsModuleFlyStemProliferation' looks like designed for extension (can be subclassed), but the method 'getNBsInSimulation' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyStemProliferation' final or making the method 'getNBsInSimulation' static/final/abstract/empty, or adding allowed annotation for the method.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:712:5: error: Class 'PottsModuleFlyStemProliferation' looks like designed for extension (can be subclassed), but the method 'getNBsInSimulation' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PottsModuleFlyStemProliferation' final or making the method 'getNBsInSimulation' static/final/abstract/empty, or adding allowed annotation for the method. (com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck)

Check failure on line 712 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L712 <com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck>

Missing a Javadoc comment.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:712:5: error: Missing a Javadoc comment. (com.puppycrawl.tools.checkstyle.checks.javadoc.MissingJavadocMethodCheck)
HashSet<PottsCellFlyStem> nbsInSimulation = new HashSet<>();
Bag simObjects = sim.getGrid().getAllObjects();
for (int i = 0; i < simObjects.numObjs; i++) {
Object o = simObjects.objs[i];
if (!(o instanceof PottsCell)) continue; // skip non-cell objects

Check failure on line 717 in src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java

View workflow job for this annotation

GitHub Actions / checkstyle

[checkstyle] src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java#L717 <com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck>

'if' construct must use '{}'s.
Raw output
/github/workspace/./src/arcade/potts/agent/module/PottsModuleFlyStemProliferation.java:717:13: error: 'if' construct must use '{}'s. (com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck)
PottsCell cellInSim = (PottsCell) o;
if (cell.getPop() == cellInSim.getPop() && o instanceof PottsCellFlyStem) {
nbsInSimulation.add((PottsCellFlyStem) o);
Expand Down
1 change: 1 addition & 0 deletions src/arcade/potts/command.potts.xml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
<commands>
<switch id="SAVE_PROSPERO" short="p" long="prospero" help="Save the PROSPERO output files" />
</commands>
4 changes: 4 additions & 0 deletions src/arcade/potts/parameter.potts.xml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@
<population.module module="proliferation" id="VOLUME_BASED_CRITICAL_VOLUME_MULTIPLIER" value="1" description="if enabled, GMC critical volume = daughter_volume × multiplier" />
<!-- Deterministic Differentiation-->
<population.module module="proliferation" id="HAS_DETERMINISTIC_DIFFERENTIATION" value="TRUE" description="if TRUE, differentiation is determined deterministically" />
<!-- Prospero synthesis and degradation rates -->
<population.module module="proliferation" id="PROSPERO_SYNTHESIS_RATE" value="1" units="Prospero/hour" conversion="DT" description="synthesis rate of Prospero" />
<population.module module="proliferation" id="PROSPERO_DEGRADATION_RATE" value="-1" units="Prospero/hour" conversion="DT" description="degradation rate of Prospero" />

<!-- apoptosis module parameters -->
<population.module module="apoptosis" id="RATE_EARLY" value="4" units="steps/hour" conversion="DT" description="rate of events in early apoptosis phase" />
Expand All @@ -96,4 +99,5 @@
<population.module module="apoptosis" id="CYTOPLASMIC_BLEBBING_RATE" value="175" units="um^3/hour" conversion="DS^-3.DT" description="basal rate of cytoplasmic blebbing" />
<population.module module="apoptosis" id="NUCLEUS_PYKNOSIS_RATE" value="100" units="um^3/hour" conversion="DS^-3.DT" description="basal rate of nuclear pyknosis" />
<population.module module="apoptosis" id="NUCLEUS_FRAGMENTATION_RATE" value="75" units="um^3/hour" conversion="DS^-3.DT" description="basal rate of nuclear fragmentation" />

</parameters>
Loading
Loading