Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,14 @@ public class PatchProcessMetabolismComplex extends PatchProcessMetabolism {
* <li>{@code LACTATE_RATE} = rate of lactate production
* <li>{@code AUTOPHAGY_RATE} = rate of autophagy
* <li>{@code GLUCOSE_UPTAKE_RATE} = rate of glucose uptake
* <li>{@code INITIAL_GLUCOSE_CONCENTRATION} = initial cell internal glucose concentration
* </ul>
*
* @param cell the {@link PatchCell} the process is associated with
*/
public PatchProcessMetabolismComplex(PatchCell cell) {
super(cell);

// Initial internal concentrations.
intAmts = new double[2];
intAmts[GLUCOSE] = extAmts[GLUCOSE];
intAmts[PYRUVATE] = extAmts[GLUCOSE] * PYRU_PER_GLUC;

// Mapping for internal concentration access.
String[] intNames = new String[2];
intNames[GLUCOSE] = "glucose";
Expand All @@ -101,6 +97,11 @@ public PatchProcessMetabolismComplex(PatchCell cell) {
lactateRate = parameters.getDouble("metabolism/LACTATE_RATE");
autophagyRate = parameters.getDouble("metabolism/AUTOPHAGY_RATE");
glucoseUptakeRate = parameters.getDouble("metabolism/GLUCOSE_UPTAKE_RATE");

// Initial internal concentrations.
intAmts = new double[2];
intAmts[GLUCOSE] = parameters.getDouble("metabolism/INITIAL_GLUCOSE_CONCENTRATION");
intAmts[PYRUVATE] = extAmts[GLUCOSE] * PYRU_PER_GLUC;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,14 @@ public class PatchProcessMetabolismMedium extends PatchProcessMetabolism {
* <li>{@code MINIMUM_MASS_FRACTION} = minimum viable cell mass fraction
* <li>{@code AUTOPHAGY_RATE} = rate of autophagy
* <li>{@code ATP_PRODUCTION_RATE} = rate of ATP production
* <li>{@code INITIAL_GLUCOSE_CONCENTRATION} = initial cell internal glucose concentration
* </ul>
*
* @param cell the {@link PatchCell} the process is associated with
*/
public PatchProcessMetabolismMedium(PatchCell cell) {
super(cell);

// Initial internal concentrations.
intAmts = new double[1];
intAmts[GLUCOSE] = extAmts[GLUCOSE];

// Mapping for internal concentration access.
String[] intNames = new String[1];
intNames[GLUCOSE] = "glucose";
Expand All @@ -83,6 +80,10 @@ public PatchProcessMetabolismMedium(PatchCell cell) {
minimumMassFraction = parameters.getDouble("metabolism/MINIMUM_MASS_FRACTION");
autophagyRate = parameters.getDouble("metabolism/AUTOPHAGY_RATE");
atpProductionRate = parameters.getDouble("metabolism/ATP_PRODUCTION_RATE");

// Initial internal concentrations.
intAmts = new double[1];
intAmts[GLUCOSE] = parameters.getDouble("metabolism/INITIAL_GLUCOSE_CONCENTRATION");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,14 @@ public class PatchProcessMetabolismRandom extends PatchProcessMetabolism {
*
* <ul>
* <li>{@code CELL_VOLUME} = cell volume
* <li>{@code INITIAL_GLUCOSE_CONCENTRATION} = initial cell internal glucose concentration
* </ul>
*
* @param cell the {@link PatchCell} the process is associated with
*/
public PatchProcessMetabolismRandom(PatchCell cell) {
super(cell);

// Initial internal concentrations.
intAmts = new double[1];
intAmts[GLUCOSE] = extAmts[GLUCOSE];

// Mapping for internal concentration access.
String[] intNames = new String[1];
intNames[GLUCOSE] = "glucose";
Expand All @@ -76,6 +73,10 @@ public PatchProcessMetabolismRandom(PatchCell cell) {
// Set loaded parameters.
Parameters parameters = cell.getParameters();
averageCellVolume = parameters.getDouble("CELL_VOLUME");

// Initial internal concentrations.
intAmts = new double[1];
intAmts[GLUCOSE] = parameters.getDouble("metabolism/INITIAL_GLUCOSE_CONCENTRATION");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,14 @@ public class PatchProcessMetabolismSimple extends PatchProcessMetabolism {
* <li>{@code CONSTANT_GLUCOSE_UPTAKE_RATE} = constant glucose uptake rate
* <li>{@code CONSTANT_ATP_PRODUCTION_RATE} = constant ATP production rate
* <li>{@code CONSTANT_VOLUME_GROWTH_RATE} = constant volume growth rate
* <li>{@code INITIAL_GLUCOSE_CONCENTRATION} = initial cell internal glucose concentration
* </ul>
*
* @param cell the {@link PatchCell} the process is associated with
*/
public PatchProcessMetabolismSimple(PatchCell cell) {
super(cell);

// Initial internal concentrations.
intAmts = new double[1];
intAmts[GLUCOSE] = extAmts[GLUCOSE];

// Mapping for internal concentration access.
String[] intNames = new String[1];
intNames[GLUCOSE] = "glucose";
Expand All @@ -69,6 +66,10 @@ public PatchProcessMetabolismSimple(PatchCell cell) {
glucoseUptakeRate = parameters.getDouble("metabolism/CONSTANT_GLUCOSE_UPTAKE_RATE");
atpProductionRate = parameters.getDouble("metabolism/CONSTANT_ATP_PRODUCTION_RATE");
volumeGrowthRate = parameters.getDouble("metabolism/CONSTANT_VOLUME_GROWTH_RATE");

// Initial internal concentrations.
intAmts = new double[1];
intAmts[GLUCOSE] = parameters.getDouble("metabolism/INITIAL_GLUCOSE_CONCENTRATION");
}

@Override
Expand Down
1 change: 1 addition & 0 deletions src/arcade/patch/parameter.patch.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
<population.process process="metabolism" id="CONSTANT_GLUCOSE_UPTAKE_RATE" value="929.88" unit="fmol glucose/min/M glucose" description="constant glucose uptake rate" />
<population.process process="metabolism" id="CONSTANT_ATP_PRODUCTION_RATE" value="4.9817" unit="fmol ATP/cell/min" description="constant ATP production rate" />
<population.process process="metabolism" id="CONSTANT_VOLUME_GROWTH_RATE" value="2.819" unit="um^3/min" description="constant volume growth rate"/>
<population.process process="metabolism" id="INITIAL_GLUCOSE_CONCENTRATION" value="0" unit="fmol" description="initial cell internal glucose concentration"/>
Copy link
Member

Choose a reason for hiding this comment

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

Don't love this being 0 by default

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What default values would you suggest?

Copy link
Member

Choose a reason for hiding this comment

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

Isn't this value being 0 the source of the bug that you had identified before?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah - it probably makes sense to set it to the average(?) internal glucose amt of engineered cells, Im just not sure what that is.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

For now Ill set it as 30fmol since thats what CARCADE seems to be giving me, but we can revisit this value

Copy link
Member

Choose a reason for hiding this comment

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

@allison-li-1016 @cainja Possible alternative: keep the parameter as a concentration that matches the glucose concentration and do the conversion to mass in the constructor by multiplying by cell volume?


<!-- signaling process parameters -->
<population.process process="signaling" id="MIGRATORY_THRESHOLD" value="10" description="threshold fold change in PLCg for migration" />
Expand Down