def solve(self, objId1): self.experiment = self.readExperiment(self.inputExperiment.get().fnPKPD) # Create output object self.outputExperiment = None timeRange = self.experiment.getRange(self.timeVar.get()) for sampleName, sample in self.experiment.samples.items(): # Get t, A t=np.asarray(sample.getValues(self.timeVar.get()),dtype=np.float64) A=np.asarray(sample.getValues(self.amountVar.get()),dtype=np.float64) if t[0]>0: t=np.insert(t,0,0) # Add (0,0) to the profile A=np.insert(A,0,0) t, A = uniqueFloatValues(t, A) if self.resampleT.get()>0: B = InterpolatedUnivariateSpline(t, A, k=1) t = np.arange(np.min(t),np.max(t)+self.resampleT.get(),self.resampleT.get()) A = B(t) # Find C and Cp C, Cp = self.calculateConcentrations2(t,A) if self.outputExperiment is None: self.outputExperiment = PKPDExperiment() tvar = PKPDVariable() tvar.varName = "t" tvar.varType = PKPDVariable.TYPE_NUMERIC tvar.role = PKPDVariable.ROLE_TIME tvar.units = createUnit(self.experiment.getTimeUnits().unit) Cvar = PKPDVariable() Cvar.varName = "C" Cvar.varType = PKPDVariable.TYPE_NUMERIC Cvar.role = PKPDVariable.ROLE_MEASUREMENT Lunits = createUnit("L") Cvar.units = createUnit(divideUnits(self.experiment.getVarUnits(self.amountVar.get()),Lunits.unit)) Cvar.comment = "Concentration central compartment" Cpvar = PKPDVariable() Cpvar.varName = "Cp" Cpvar.varType = PKPDVariable.TYPE_NUMERIC Cpvar.role = PKPDVariable.ROLE_MEASUREMENT Cpvar.units = createUnit(divideUnits(self.experiment.getVarUnits(self.amountVar.get()),Lunits.unit)) Cpvar.comment = "Concentration peripheral compartment" self.outputExperiment.variables[tvar.varName] = tvar self.outputExperiment.variables[Cvar.varName] = Cvar self.outputExperiment.variables[Cpvar.varName] = Cpvar self.outputExperiment.general["title"]="Inverse Loo-Riegelman" self.outputExperiment.general["comment"]="" self.addSample(sampleName,t,C,Cp) self.outputExperiment.write(self._getPath("experiment.pkpd"))
def createOutputExperiment(self): tvitroVar = PKPDVariable() tvitroVar.varName = "tvitro" tvitroVar.varType = PKPDVariable.TYPE_NUMERIC tvitroVar.role = PKPDVariable.ROLE_TIME tvitroVar.units = createUnit(self.experimentInVivo.getTimeUnits().unit) tvitroVar.comment = "tvitro" AdissolVar = PKPDVariable() AdissolVar.varName = "Adissol" AdissolVar.varType = PKPDVariable.TYPE_NUMERIC AdissolVar.role = PKPDVariable.ROLE_MEASUREMENT AdissolVar.units = createUnit(PKPDUnit.UNIT_NONE) AdissolVar.comment = "Amount disolved in vitro" self.outputExperiment = PKPDExperiment() self.outputExperiment.variables[tvitroVar.varName] = tvitroVar self.outputExperiment.variables[AdissolVar.varName] = AdissolVar self.outputExperiment.general["title"] = "In-vitro target simulation" self.outputExperiment.general["comment"] = ""
def runSimulation(self): self.deposition = PKDepositionParameters() self.deposition.setFiles(self.ptrDeposition.get().fnSubstance.get(), self.ptrDeposition.get().fnLung.get(), self.ptrDeposition.get().fnDeposition.get()) self.deposition.doseMultiplier = self.doseMultiplier.get() self.deposition.read() substanceParams = PKSubstanceLungParameters() substanceParams.multiplier = [ float(x) for x in self.substanceMultiplier.get().split() ] substanceParams.read(self.ptrDeposition.get().fnSubstance.get()) lungParams = PKPhysiologyLungParameters() lungParams.multiplier = [ float(x) for x in self.physiologyMultiplier.get().split() ] lungParams.read(self.ptrDeposition.get().fnLung.get()) pkParams = PKPDExperiment() pkParams.load(self.ptrPK.get().fnPKPD) pkLungParams = PKLung() pkLungParams.prepare( substanceParams, lungParams, pkParams, [float(x) for x in self.pkMultiplier.get().split()], self.ciliarySpeedType.get()) # diameters = np.concatenate((np.arange(0.1,1.1,0.1),np.arange(1.2,9.2,0.2))) # [um] evalStr = "np.concatenate((" + ",".join([ "np.arange(" + x.strip() + ")" for x in self.diameters.get().split(";") ]) + "))" diameters = eval(evalStr, {'np': np}) Sbnd = self.volMultiplier.get() * diam2vol(diameters) tt = np.arange(0, self.simulationTime.get() + self.deltaT.get(), self.deltaT.get()) sol = saturable_2D_upwind_IE(lungParams, pkLungParams, self.deposition, tt, Sbnd) # Postprocessing depositionData = self.deposition.getData() alvDose = np.sum(depositionData['alveolar']) bronchDose = np.sum(depositionData['bronchial']) lungDose = alvDose + bronchDose Aalvsolid = sol['A']['alv']['solid'] Aalvfluid = sol['A']['alv']['fluid'] Aalvtissue = sol['A']['alv']['tissue'] AsysGut = sol['A']['sys']['gut'] AsysPer = sol['A']['sys']['per'] AsysCtr = sol['A']['sys']['ctr'] Atisbr = sol['A']['br']['tissue'] Abrtissue = Atisbr Vtisbr = lungParams.getBronchial()['fVol'] * lungParams.getSystemic( )['OWlung'] Cavgbr = Atisbr / Vtisbr Abrcleared = sol['A']['br']['clear'] Abrcleared = np.reshape(Abrcleared, Abrcleared.size) Abrsolid = sol['A']['br']['solid'] Abrfluid = sol['A']['br']['fluid'] Acleared = sol['A']['sys']['clear'] + AsysGut - AsysGut[0] lungRetention = 100 * (lungDose - Acleared) / lungDose # in percent of lung dose Csysnmol = sol['C']['sys']['ctr'] Csys = Csysnmol * substanceParams.getData()['MW'] CsysPer = AsysPer * substanceParams.getData( )['MW'] / pkLungParams.pkData['Vp'] # Create output self.experimentLungRetention = PKPDExperiment() self.experimentLungRetention.general["title"] = "Inhalation simulate" tvar = PKPDVariable() tvar.varName = "t" tvar.varType = PKPDVariable.TYPE_NUMERIC tvar.role = PKPDVariable.ROLE_TIME tvar.units = createUnit("min") Rvar = PKPDVariable() Rvar.varName = "Retention" Rvar.varType = PKPDVariable.TYPE_NUMERIC Rvar.role = PKPDVariable.ROLE_MEASUREMENT Rvar.units = createUnit("none") Rvar.comment = "Lung retention (% lung dose)" Cnmolvar = PKPDVariable() Cnmolvar.varName = "Cnmol" Cnmolvar.varType = PKPDVariable.TYPE_NUMERIC Cnmolvar.role = PKPDVariable.ROLE_MEASUREMENT Cnmolvar.units = createUnit("nmol/mL") Cnmolvar.comment = "Central compartment concentration" Cvar = PKPDVariable() Cvar.varName = "C" Cvar.varType = PKPDVariable.TYPE_NUMERIC Cvar.role = PKPDVariable.ROLE_MEASUREMENT Cvar.units = createUnit("g/mL") Cvar.comment = "Central compartment concentration" alvTissueVar = PKPDVariable() alvTissueVar.varName = "alvTissue" alvTissueVar.varType = PKPDVariable.TYPE_NUMERIC alvTissueVar.role = PKPDVariable.ROLE_MEASUREMENT alvTissueVar.units = createUnit("nmol") alvTissueVar.comment = "Amount in alveoli" alvSolidVar = PKPDVariable() alvSolidVar.varName = "alvSolid" alvSolidVar.varType = PKPDVariable.TYPE_NUMERIC alvSolidVar.role = PKPDVariable.ROLE_MEASUREMENT alvSolidVar.units = createUnit("nmol") alvSolidVar.comment = "Amount undissolved in alveoli" alvFluidVar = PKPDVariable() alvFluidVar.varName = "alvFluid" alvFluidVar.varType = PKPDVariable.TYPE_NUMERIC alvFluidVar.role = PKPDVariable.ROLE_MEASUREMENT alvFluidVar.units = createUnit("nmol") alvFluidVar.comment = "Amount in alveolar lining fluid" brTissueVar = PKPDVariable() brTissueVar.varName = "brTissue" brTissueVar.varType = PKPDVariable.TYPE_NUMERIC brTissueVar.role = PKPDVariable.ROLE_MEASUREMENT brTissueVar.units = createUnit("nmol") brTissueVar.comment = "Amount in bronchii" brSolidVar = PKPDVariable() brSolidVar.varName = "brSolid" brSolidVar.varType = PKPDVariable.TYPE_NUMERIC brSolidVar.role = PKPDVariable.ROLE_MEASUREMENT brSolidVar.units = createUnit("nmol") brSolidVar.comment = "Amount undissolved in bronchii" brFluidVar = PKPDVariable() brFluidVar.varName = "brFluid" brFluidVar.varType = PKPDVariable.TYPE_NUMERIC brFluidVar.role = PKPDVariable.ROLE_MEASUREMENT brFluidVar.units = createUnit("nmol") brFluidVar.comment = "Amount in bronchial lining fluid" brClvar = PKPDVariable() brClvar.varName = "brClear" brClvar.varType = PKPDVariable.TYPE_NUMERIC brClvar.role = PKPDVariable.ROLE_MEASUREMENT brClvar.units = createUnit("nmol") brClvar.comment = "Cumulative amount cleared by mucociliary elevator" brCTisvar = PKPDVariable() brCTisvar.varName = "CbrTis" brCTisvar.varType = PKPDVariable.TYPE_NUMERIC brCTisvar.role = PKPDVariable.ROLE_MEASUREMENT brCTisvar.units = createUnit("nmol/mL") brCTisvar.comment = "Concentration in bronchial tissue" sysGutVar = PKPDVariable() sysGutVar.varName = "sysAbsorption" sysGutVar.varType = PKPDVariable.TYPE_NUMERIC sysGutVar.role = PKPDVariable.ROLE_MEASUREMENT sysGutVar.units = createUnit("nmol") sysGutVar.comment = "Amount in absorption compartment" sysCtrVar = PKPDVariable() sysCtrVar.varName = "sysCentral" sysCtrVar.varType = PKPDVariable.TYPE_NUMERIC sysCtrVar.role = PKPDVariable.ROLE_MEASUREMENT sysCtrVar.units = createUnit("nmol") sysCtrVar.comment = "Amount in central compartment" sysPerVar = PKPDVariable() sysPerVar.varName = "sysPeripheral" sysPerVar.varType = PKPDVariable.TYPE_NUMERIC sysPerVar.role = PKPDVariable.ROLE_MEASUREMENT sysPerVar.units = createUnit("nmol") sysPerVar.comment = "Amount in peripheral compartment" CsysPerVar = PKPDVariable() CsysPerVar.varName = "Cp" CsysPerVar.varType = PKPDVariable.TYPE_NUMERIC CsysPerVar.role = PKPDVariable.ROLE_MEASUREMENT CsysPerVar.units = createUnit("g/mL") CsysPerVar.comment = "Concentration in peripheral compartment" doseNmolVar = PKPDVariable() doseNmolVar.varName = "dose_nmol" doseNmolVar.varType = PKPDVariable.TYPE_NUMERIC doseNmolVar.role = PKPDVariable.ROLE_LABEL doseNmolVar.units = createUnit("nmol") doseNmolVar.comment = "Input dose in nmol" doseThroatVar = PKPDVariable() doseThroatVar.varName = "throat_dose_nmol" doseThroatVar.varType = PKPDVariable.TYPE_NUMERIC doseThroatVar.role = PKPDVariable.ROLE_LABEL doseThroatVar.units = createUnit("nmol") doseThroatVar.comment = "Throat dose in nmol" doseLungVar = PKPDVariable() doseLungVar.varName = "lung_dose_nmol" doseLungVar.varType = PKPDVariable.TYPE_NUMERIC doseLungVar.role = PKPDVariable.ROLE_LABEL doseLungVar.units = createUnit("nmol") doseLungVar.comment = "Lung dose in nmol" doseBronchialVar = PKPDVariable() doseBronchialVar.varName = "bronchial_dose_nmol" doseBronchialVar.varType = PKPDVariable.TYPE_NUMERIC doseBronchialVar.role = PKPDVariable.ROLE_LABEL doseBronchialVar.units = createUnit("nmol") doseBronchialVar.comment = "Bronchial dose in nmol" doseAlveolarVar = PKPDVariable() doseAlveolarVar.varName = "alveolar_dose_nmol" doseAlveolarVar.varType = PKPDVariable.TYPE_NUMERIC doseAlveolarVar.role = PKPDVariable.ROLE_LABEL doseAlveolarVar.units = createUnit("nmol") doseAlveolarVar.comment = "Alveolar dose in nmol" mccClearedLungDoseFractionVar = PKPDVariable() mccClearedLungDoseFractionVar.varName = "mcc_cleared_lung_dose_fraction" mccClearedLungDoseFractionVar.varType = PKPDVariable.TYPE_NUMERIC mccClearedLungDoseFractionVar.role = PKPDVariable.ROLE_LABEL mccClearedLungDoseFractionVar.units = createUnit("None") mccClearedLungDoseFractionVar.comment = "MCC cleared lung dose fraction" self.experimentLungRetention.variables["t"] = tvar self.experimentLungRetention.variables["Retention"] = Rvar self.experimentLungRetention.variables["Cnmol"] = Cnmolvar self.experimentLungRetention.variables["C"] = Cvar self.experimentLungRetention.variables["alvTissue"] = alvTissueVar self.experimentLungRetention.variables["alvFluid"] = alvFluidVar self.experimentLungRetention.variables["alvSolid"] = alvSolidVar self.experimentLungRetention.variables["brTissue"] = brTissueVar self.experimentLungRetention.variables["brFluid"] = brFluidVar self.experimentLungRetention.variables["brSolid"] = brSolidVar self.experimentLungRetention.variables["brClear"] = brClvar self.experimentLungRetention.variables["CbrTis"] = brCTisvar self.experimentLungRetention.variables["sysCentral"] = sysCtrVar self.experimentLungRetention.variables["sysAbsoprtion"] = sysGutVar self.experimentLungRetention.variables["sysPeripheral"] = sysPerVar self.experimentLungRetention.variables["Cp"] = CsysPerVar self.experimentLungRetention.variables["dose_nmol"] = doseNmolVar self.experimentLungRetention.variables[ "throat_dose_nmol"] = doseThroatVar self.experimentLungRetention.variables["lung_dose_nmol"] = doseLungVar self.experimentLungRetention.variables[ "bronchial_dose_nmol"] = doseBronchialVar self.experimentLungRetention.variables[ "alveolar_dose_nmol"] = doseAlveolarVar self.experimentLungRetention.variables[ "mcc_cleared_lung_dose_fraction"] = mccClearedLungDoseFractionVar # Samples simulationSample = PKPDSample() simulationSample.sampleName = "simulation" simulationSample.addMeasurementColumn("t", tt) simulationSample.addMeasurementColumn("Retention", lungRetention) simulationSample.addMeasurementColumn("Cnmol", Csysnmol) simulationSample.addMeasurementColumn("C", Csys) simulationSample.addMeasurementColumn("alvFluid", Aalvfluid) simulationSample.addMeasurementColumn("alvTissue", Aalvtissue) simulationSample.addMeasurementColumn("alvSolid", Aalvsolid) simulationSample.addMeasurementColumn("brFluid", Abrfluid) simulationSample.addMeasurementColumn("brTissue", Abrtissue) simulationSample.addMeasurementColumn("brSolid", Abrsolid) simulationSample.addMeasurementColumn("brClear", Abrcleared) simulationSample.addMeasurementColumn("CbrTis", Cavgbr) simulationSample.addMeasurementColumn("sysAbsorption", AsysGut) simulationSample.addMeasurementColumn("sysCentral", AsysCtr) simulationSample.addMeasurementColumn("sysPeripheral", AsysPer) simulationSample.addMeasurementColumn("Cp", CsysPer) simulationSample.setDescriptorValue("dose_nmol", depositionData['dose_nmol']) simulationSample.setDescriptorValue("throat_dose_nmol", depositionData['throat']) lungDose = depositionData['dose_nmol'] - depositionData['throat'] simulationSample.setDescriptorValue("lung_dose_nmol", lungDose) simulationSample.setDescriptorValue("bronchial_dose_nmol", bronchDose) simulationSample.setDescriptorValue("alveolar_dose_nmol", alvDose) simulationSample.setDescriptorValue("mcc_cleared_lung_dose_fraction", Abrcleared[-1] / lungDose) self.experimentLungRetention.samples[ "simulmvarNameation"] = simulationSample self.experimentLungRetention.write(self._getPath("experiment.pkpd")) # Plots import matplotlib.pyplot as plt lungData = lungParams.getBronchial() Xbnd = np.sort([0] + lungData['end_cm'].tolist() + lungData['pos'].tolist()) Xctr = Xbnd[:-1] + np.diff(Xbnd) / 2 tvec = tt / 60 T = np.max(tvec) Cflu = sol['C']['br']['fluid'] Cs = substanceParams.getData()['Cs_br'] plt.figure(figsize=(15, 9)) plt.title('Concentration in bronchial fluid (Cs=%f [uM])' % Cs) plt.imshow(Cflu, interpolation='bilinear', aspect='auto', extent=[np.min(Xctr), np.max(Xctr), T, 0]) plt.clim(0, Cs) plt.xlim(np.min(Xctr), np.max(Xctr)) plt.ylim(0, T) plt.colorbar() plt.ylabel('Time [h]') plt.xlabel('Distance from throat [cm]') plt.savefig(self._getPath('concentrationBronchialFluid.png')) Ctis = sol['C']['br']['fluid'] plt.figure(figsize=(15, 9)) plt.title('Concentration in bronchial tissue') plt.imshow(Ctis, interpolation='bilinear', aspect='auto', extent=[np.min(Xctr), np.max(Xctr), T, 0]) plt.xlim(np.min(Xctr), np.max(Xctr)) plt.ylim(0, T) plt.colorbar() plt.ylabel('Time [h]') plt.xlabel('Distance from throat [cm]') plt.savefig(self._getPath('concentrationBronchialTissue.png'))
def runSimulate(self, objId, X, Y, modelType, paramValues, reportX): reportX = parseRange(self.reportX.get()) self.experiment = self.readExperiment( self.inputExperiment.get().fnPKPD) # Setup model self.printSection("Model setup") if self.modelType.get() == 0: model = PDPolynomial1() elif self.modelType.get() == 1: model = PDLogLinear() elif self.modelType.get() == 2: model = PDSaturated() elif self.modelType.get() == 3: model = PDSigmoid() elif self.modelType.get() == 4: model = PDGompertz() elif self.modelType.get() == 5: model = PDLogistic1() elif self.modelType.get() == 6: model = PDLogistic2() elif self.modelType.get() == 7: model = PDLogistic3() elif self.modelType.get() == 8: model = PDLogistic4() elif self.modelType.get() == 9: model = PDRichards() elif self.modelType.get() == 10: model = PDMorgan() elif self.modelType.get() == 11: model = PDWeibull() elif self.modelType.get() == 12: model = PDPolynomial2() elif self.modelType.get() == 13: model = PDPolynomial3() elif self.modelType.get() == 14: model = PDPolynomial4() elif self.modelType.get() == 15: model = PDPolynomial5() elif self.modelType.get() == 16: model = PDPolynomial6() elif self.modelType.get() == 17: model = PDPolynomial7() elif self.modelType.get() == 18: model = PDPolynomial8() elif self.modelType.get() == 19: model = PDPolynomial9() model.setExperiment(self.experiment) model.setXVar(self.predictor.get()) model.printSetup() # Create list of parameters tokens = self.paramValues.get().split(';') if len(tokens) != model.getNumberOfParameters(): raise Exception( "The list of parameter values has not the same number of parameters as the model" ) model.parameters = [] for token in tokens: try: model.parameters.append(float(token.strip())) except: raise Exception("Cannot convert %s to float" % token) print("Simulated model: %s" % model.getEquation()) if self.noiseType.get() == 1: print("Adding additive noise with sigma=%f" % self.noiseSigma.get()) elif self.noiseType.get() == 2: print("Adding multiplicative noise with sigma=%f*X" % self.noiseSigma.get()) # Add new variable to experiment newVariable = PKPDVariable() newVariable.varName = self.predicted.get() newVariable.varType = PKPDVariable.TYPE_NUMERIC newVariable.displayString = "%f" newVariable.role = PKPDVariable.ROLE_MEASUREMENT newVariable.comment = self.predictedComment.get() newVariable.units = PKPDUnit(self.predictedUnit.get()) self.experiment.variables[newVariable.varName] = newVariable for sampleName, sample in self.experiment.samples.items(): model.x = np.array(sample.getValues(self.predictor.get()), dtype=np.float) y = model.forwardModel(model.parameters, model.x) y = self.addNoise(y) sample.addMeasurementColumn(newVariable.varName, y) print("==========================================") sample._printToStream(sys.stdout) print("==========================================") sample._printMeasurements(sys.stdout) print(" ") if reportX != None: print("Evaluation of the model at specified values") yReportX = model.forwardModel(model.parameters, reportX) yReportX = self.addNoise(yReportX) print("==========================================") print("X Ypredicted log10(Ypredicted)") print("==========================================") for n in range(0, reportX.shape[0]): print("%f %f %f" % (reportX[n], yReportX[n], math.log10(yReportX[n]))) print(' ')
def createOutputExperiments(self, set): tvitroVar = PKPDVariable() tvitroVar.varName = "tvitro" tvitroVar.varType = PKPDVariable.TYPE_NUMERIC tvitroVar.role = PKPDVariable.ROLE_TIME tvitroVar.units = createUnit( self.experimentInVitro.getTimeUnits().unit) tvitroVar.comment = "tvitro" tvivoVar = PKPDVariable() tvivoVar.varName = "tvivo" tvivoVar.varType = PKPDVariable.TYPE_NUMERIC tvivoVar.role = PKPDVariable.ROLE_TIME tvivoVar.units = createUnit(self.experimentInVivo.getTimeUnits().unit) tvivoVar.comment = "tvivo" tvitroReinterpolatedVar = PKPDVariable() tvitroReinterpolatedVar.varName = "tvitroReinterpolated" tvitroReinterpolatedVar.varType = PKPDVariable.TYPE_NUMERIC tvitroReinterpolatedVar.role = PKPDVariable.ROLE_TIME tvitroReinterpolatedVar.units = createUnit( self.experimentInVitro.getTimeUnits().unit) tvitroReinterpolatedVar.comment = "tvitro reinterpolated" tvivoReinterpolatedVar = PKPDVariable() tvivoReinterpolatedVar.varName = "tvivoReinterpolated" tvivoReinterpolatedVar.varType = PKPDVariable.TYPE_NUMERIC tvivoReinterpolatedVar.role = PKPDVariable.ROLE_TIME tvivoReinterpolatedVar.units = createUnit( self.experimentInVivo.getTimeUnits().unit) tvivoReinterpolatedVar.comment = "tvivo reinterpolated" AdissolVar = PKPDVariable() AdissolVar.varName = "Adissol" AdissolVar.varType = PKPDVariable.TYPE_NUMERIC AdissolVar.role = PKPDVariable.ROLE_MEASUREMENT AdissolVar.units = createUnit( self.experimentInVitro.getVarUnits(self.varNameY)) AdissolVar.comment = "Amount disolved in vitro" FabsVar = PKPDVariable() FabsVar.varName = "Fabs" FabsVar.varType = PKPDVariable.TYPE_NUMERIC FabsVar.role = PKPDVariable.ROLE_MEASUREMENT FabsVar.units = createUnit(self.experimentInVivo.getVarUnits("A")) FabsVar.comment = "Amount absorbed in vivo" AdissolReinterpolatedVar = PKPDVariable() AdissolReinterpolatedVar.varName = "AdissolReinterpolated" AdissolReinterpolatedVar.varType = PKPDVariable.TYPE_NUMERIC AdissolReinterpolatedVar.role = PKPDVariable.ROLE_MEASUREMENT AdissolReinterpolatedVar.units = createUnit( self.experimentInVitro.getVarUnits(self.varNameY)) AdissolReinterpolatedVar.comment = "Time reinterpolated amount disolved in vitro" FabsReinterpolatedVar = PKPDVariable() FabsReinterpolatedVar.varName = "FabsReinterpolated" FabsReinterpolatedVar.varType = PKPDVariable.TYPE_NUMERIC FabsReinterpolatedVar.role = PKPDVariable.ROLE_MEASUREMENT FabsReinterpolatedVar.units = createUnit( self.experimentInVivo.getVarUnits("A")) FabsReinterpolatedVar.comment = "Time reinterpolated amount absorbed in vivo" AdissolPredictedVar = PKPDVariable() AdissolPredictedVar.varName = "AdissolPredicted" AdissolPredictedVar.varType = PKPDVariable.TYPE_NUMERIC AdissolPredictedVar.role = PKPDVariable.ROLE_MEASUREMENT AdissolPredictedVar.units = createUnit( self.experimentInVitro.getVarUnits(self.varNameY)) AdissolPredictedVar.comment = "Predicted amount disolved in vitro" FabsPredictedVar = PKPDVariable() FabsPredictedVar.varName = "FabsPredicted" FabsPredictedVar.varType = PKPDVariable.TYPE_NUMERIC FabsPredictedVar.role = PKPDVariable.ROLE_MEASUREMENT FabsPredictedVar.units = createUnit( self.experimentInVivo.getVarUnits("A")) FabsPredictedVar.comment = "Predicted amount absorbed in vivo" if set == 1: self.outputExperimentFabs = PKPDExperiment() self.outputExperimentFabs.variables[ tvitroReinterpolatedVar.varName] = tvitroReinterpolatedVar self.outputExperimentFabs.variables[ AdissolReinterpolatedVar.varName] = AdissolReinterpolatedVar self.outputExperimentFabs.variables[tvivoVar.varName] = tvivoVar self.outputExperimentFabs.variables[FabsVar.varName] = FabsVar self.outputExperimentFabs.variables[ FabsPredictedVar.varName] = FabsPredictedVar self.outputExperimentFabs.general[ "title"] = "In-vitro In-vivo correlation" self.outputExperimentFabs.general[ "comment"] = "Fabs vs Predicted Fabs" self.outputExperimentAdissol = PKPDExperiment() self.outputExperimentAdissol.variables[ tvivoReinterpolatedVar.varName] = tvivoReinterpolatedVar self.outputExperimentAdissol.variables[ FabsReinterpolatedVar.varName] = FabsReinterpolatedVar self.outputExperimentAdissol.variables[ tvitroVar.varName] = tvitroVar self.outputExperimentAdissol.variables[ AdissolVar.varName] = AdissolVar self.outputExperimentAdissol.variables[ AdissolPredictedVar.varName] = AdissolPredictedVar self.outputExperimentAdissol.general[ "title"] = "In-vitro In-vivo correlation" self.outputExperimentAdissol.general[ "comment"] = "Adissol vs Predicted Adissol" else: self.outputExperimentFabsSingle = PKPDExperiment() self.outputExperimentFabsSingle.variables[ tvitroReinterpolatedVar.varName] = tvitroReinterpolatedVar self.outputExperimentFabsSingle.variables[ AdissolReinterpolatedVar.varName] = AdissolReinterpolatedVar self.outputExperimentFabsSingle.variables[ tvivoVar.varName] = tvivoVar self.outputExperimentFabsSingle.variables[ FabsVar.varName] = FabsVar self.outputExperimentFabsSingle.variables[ FabsPredictedVar.varName] = FabsPredictedVar self.outputExperimentFabsSingle.general[ "title"] = "In-vitro In-vivo correlation" self.outputExperimentFabsSingle.general[ "comment"] = "Fabs vs Predicted Fabs"