private TableFormula formulaFrom(DataRepository dataRepository) { var baseGrid = dataRepository.BaseGrid; var valueColumn = dataRepository.AllButBaseGrid().Single(); var formula = _formulaFactory.CreateTableFormula(useDerivedValues: false); initializeSolubilityTableFormula(formula, baseGrid.Dimension, valueColumn.Dimension); formula.XDisplayUnit = baseGrid.Dimension.Unit(baseGrid.DataInfo.DisplayUnitName); formula.YDisplayUnit = valueColumn.Dimension.Unit(valueColumn.DataInfo.DisplayUnitName); foreach (var timeValue in baseGrid.Values) { formula.AddPoint(timeValue, valueColumn.GetValue(timeValue).ToDouble()); } return(formula); }
public TableFormula TableValueFor(Formulation formulation) { var tableFormula = _formulaFactory.CreateTableFormula().WithName(CoreConstants.Parameters.FRACTION_DOSE); CacheParameterValueFor(formulation); foreach (var time in createTimeArrayInMinutes()) { tableFormula.AddPoint(time, ValueFor(formulation, time)); } return(tableFormula); }
private TableFormula formulaFrom(DataRepository dataRepository) { var baseGrid = dataRepository.BaseGrid; var valueColumn = dataRepository.AllButBaseGrid().Single(); var formula = _formulaFactory.CreateTableFormula().WithName(dataRepository.Name); formula.InitializedWith(Constants.TIME, dataRepository.Name, baseGrid.Dimension, valueColumn.Dimension); formula.XDisplayUnit = baseGrid.Dimension.Unit(baseGrid.DataInfo.DisplayUnitName); formula.YDisplayUnit = valueColumn.Dimension.Unit(valueColumn.DataInfo.DisplayUnitName); foreach (var timeValue in baseGrid.Values) { formula.AddPoint(timeValue, valueColumn.GetValue(timeValue).ToDouble()); } return(formula); }
public TableFormula SolubilityTableForPh(ParameterAlternative solubilityAlternative, Compound compound) { //Sol(pH) = ref_Solubility * Solubility_Factor (ref_pH) / Solubility_Factor(pH) //Solubility_pKa_pH_Factor var refPh = solubilityAlternative.Parameter(CoreConstants.Parameter.RefpH); var refSolubility = solubilityAlternative.Parameter(CoreConstants.Parameter.SolubilityAtRefpH); var gainPerCharge = solubilityAlternative.Parameter(CoreConstants.Parameter.SolubilityGainPerCharge); var refSolubilityValue = refSolubility.Value; var formula = _formulaFactory.CreateTableFormula() .WithName(PKSimConstants.UI.Solubility) .InitializedWith(PKSimConstants.UI.pH, PKSimConstants.UI.Solubility, refPh.Dimension, refSolubility.Dimension); compound.Parameter(CoreConstants.Parameter.RefpH).Value = refPh.Value; compound.Parameter(CoreConstants.Parameter.SolubilityGainPerCharge).Value = gainPerCharge.Value; double solFactorRefpH = compound.Parameter(CoreConstants.Parameter.SOLUBILITY_P_KA__P_H_FACTOR).Value; var allPh = new List <double>(); int ph = 0; while (ph <= 13) { allPh.AddRange(new[] { ph, ph + 0.5 }); ph++; } allPh.Add(14); foreach (var pH in allPh) { compound.Parameter(CoreConstants.Parameter.RefpH).Value = pH; double solFactorAtpH = compound.Parameter(CoreConstants.Parameter.SOLUBILITY_P_KA__P_H_FACTOR).Value; formula.AddPoint(pH, refSolubilityValue * solFactorRefpH / solFactorAtpH); } return(formula); }