Quite a mystery. I find it intriguing that between these two calls:
Burst pM increases by a factor of 10, while the (%) stays the same, suggesting that burst_conc and probe_conc both get multiplied by 10.
Ordinarily, a reactive expression won't recalculate when called twice in a row, unless one of the reactive values it uses changes.
In these two lines, would getValues() depend on burst_conc, gradual_conc or leak_conc, or does calculate_concentrations() modify the value of probe_conc as a side-effect?
The other thing to check is whether it is the data table is receiving the correct values but displaying them incorrectly. To help check this, run the following experiments and report back with findings:
Go straight to rendering the data table without printing anywhere else beforehand. Does it display the correct values in the data frame?:
Sorry, I copied the wrong ouput of the print statement. They're both same, it's just that the row header i.e., Burst, Gradual and Total is not getting displayed when i render it as a dataframe.