示例#1
0
        protected override void Context()
        {
            base.Context();
            _newName = "TOTO";
            _f1      = new ExplicitFormula("A+B");
            _f2      = new ExplicitFormula("A+B");
            _f3      = new ExplicitFormula("A+B");
            _f1.AddObjectPath(new FormulaUsablePath(_initialSimulationName, "Liver", "Cell"));
            _f1.AddObjectPath(new FormulaUsablePath("Drug", "LogP"));
            _f2.AddObjectPath(new FormulaUsablePath("SU", "Liver", "Cell"));
            _f2.AddObjectPath(new FormulaUsablePath("Drug", "LogP"));
            _f3.AddObjectPath(new FormulaUsablePath(_initialSimulationName, "Liver", "Cell"));
            _f3.AddObjectPath(new FormulaUsablePath(_initialSimulationName, "LogP"));

            var p1 = new PKSimParameter().WithName("P1").WithFormula(_f1);
            var p2 = new PKSimParameter().WithName("P2").WithFormula(_f2);
            var p3 = new PKSimParameter().WithName("P3").WithFormula(_f3);
            var c1 = new Container().WithName("C1");

            c1.Add(p3);
            _root.Add(p1);
            _root.Add(p2);
            _root.Add(c1);

            var results = new SimulationResults {
                Time = new QuantityValues {
                    ColumnId = "0", QuantityPath = "baseGrid"
                }
            };

            _individualResults = new IndividualResults {
                IndividualId = 1
            };
            results.Add(_individualResults);

            var quantityCache = new PathCacheForSpecs <IQuantity>
            {
                { "Liver|Cell|Drug", new MoleculeAmount {
                      QuantityType = QuantityType.Drug
                  } },
                { "Liver|Cell|Meta", new MoleculeAmount {
                      QuantityType = QuantityType.Metabolite
                  } },
            };

            _individualResults.Add(new QuantityValues {
                PathList = new[] { "Liver", "Cell", "Drug" }.ToList()
            });
            _individualResults.Add(new QuantityValues {
                PathList = new[] { "Liver", "Cell", "Meta" }.ToList()
            });

            _individualSimulation.Results            = results;
            _individualSimulation.DataRepository     = new DataRepository();
            _individualSimulation.Reactions          = new ReactionBuildingBlock();
            _individualSimulation.SimulationSettings = new SimulationSettings();
            A.CallTo(_containerTask).WithReturnType <PathCache <IQuantity> >().Returns(quantityCache);

            A.CallTo(() => _curveNamer.RenameCurvesWithOriginalNames(_individualSimulation, A <Action> ._, true)).Invokes(x => x.Arguments[1].DowncastTo <Action>()());
        }
示例#2
0
        public SimulationResults CreateResultsFrom(DataRepository dataRepository)
        {
            if (dataRepository.IsNull())
            {
                return(new NullSimulationResults());
            }

            var results  = new SimulationResults();
            var baseGrid = dataRepository.BaseGrid;

            results.Time = valuesFrom(baseGrid);
            foreach (var columnsForIndividual in dataRepository.AllButBaseGrid().GroupBy(selectIndividualIndex))
            {
                var individualResults = new IndividualResults {
                    IndividualId = columnsForIndividual.Key, Time = results.Time
                };
                foreach (var dataColumn in columnsForIndividual)
                {
                    individualResults.Add(valuesFrom(dataColumn, pathWithoutIndividualIndex(dataColumn, columnsForIndividual.Key)));
                }
                individualResults.UpdateQuantityTimeReference();
                results.Add(individualResults);
            }
            return(results);
        }
        private SimulationResults createResultsFrom(DataRepository dataRepository, ISimModelBatch simModel, string[] parameters)
        {
            if (dataRepository.IsNull() || dataRepository.BaseGrid == null)
            {
                return(new NullSimulationResults());
            }

            var results = new SimulationResults {
                Time = valuesFrom(dataRepository.BaseGrid, null, new string[] { })
            };

            foreach (var columnsForIndividual in dataRepository.AllButBaseGrid().GroupBy(selectIndividualIndex))
            {
                var individualResults = new IndividualResults {
                    IndividualId = columnsForIndividual.Key, Time = results.Time
                };
                foreach (var dataColumn in columnsForIndividual)
                {
                    individualResults.Add(valuesFrom(dataColumn, pathWithoutIndividualIndex(dataColumn, columnsForIndividual.Key), simModel, parameters));
                }

                individualResults.UpdateQuantityTimeReference();
                results.Add(individualResults);
            }

            return(results);
        }
示例#4
0
        /// <summary>
        ///    Add results for successfull individual
        /// </summary>
        /// <param name="individualResults"></param>
        public void Add(IndividualResults individualResults)
        {
            Results.Add(individualResults);
            var runInfo = new IndividualRunInfo {
                Success = true
            };

            _individualRunInfos[individualResults.IndividualId] = runInfo;
        }
        protected override void Context()
        {
            base.Context();
            _newName = "TOTO";
            _f1      = new ExplicitFormula("A+B");
            _f2      = new ExplicitFormula("A+B");
            _f3      = new ExplicitFormula("A+B");
            _f1.AddObjectPath(new FormulaUsablePath(_initialSimulationName, "Liver", "Cell"));
            _f1.AddObjectPath(new FormulaUsablePath("Drug", "LogP"));
            _f2.AddObjectPath(new FormulaUsablePath("SU", "Liver", "Cell"));
            _f2.AddObjectPath(new FormulaUsablePath("Drug", "LogP"));
            _f3.AddObjectPath(new FormulaUsablePath(_initialSimulationName, "Liver", "Cell"));
            _f3.AddObjectPath(new FormulaUsablePath(_initialSimulationName, "LogP"));

            var p1 = new PKSimParameter().WithName("P1").WithFormula(_f1);
            var p2 = new PKSimParameter().WithName("P2").WithFormula(_f2);
            var p3 = new PKSimParameter().WithName("P3").WithFormula(_f3);
            var c1 = new Container().WithName("C1");

            c1.Add(p3);
            _root.Add(p1);
            _root.Add(p2);
            _root.Add(c1);

            var results = new SimulationResults {
                Time = new QuantityValues {
                    ColumnId = "0", QuantityPath = "baseGrid"
                }
            };

            _individualResults = new IndividualResults {
                IndividualId = 1
            };
            results.Add(_individualResults);

            var quantityCache = new PathCacheForSpecs <IQuantity>
            {
                { "Liver|Cell|Drug", new MoleculeAmount {
                      QuantityType = QuantityType.Drug
                  } },
                { "Liver|Cell|Meta", new MoleculeAmount {
                      QuantityType = QuantityType.Metabolite
                  } },
            };

            _individualResults.Add(new QuantityValues {
                PathList = new[] { "Liver", "Cell", "Drug" }.ToList()
            });
            _individualResults.Add(new QuantityValues {
                PathList = new[] { "Liver", "Cell", "Meta" }.ToList()
            });

            _individualSimulation.Results = results;
            A.CallTo(_containerTask).WithReturnType <PathCache <IQuantity> >().Returns(quantityCache);
        }
示例#6
0
        public static SimulationResults CreateSimulationResults(int numberOfIndividuals = 10, int numberOfPaths = 5, int numberOfPoints = 100)
        {
            var populationResults = new SimulationResults {
                Time = createTimeArray(numberOfPoints)
            };

            for (int i = 0; i < numberOfIndividuals; i++)
            {
                var results = newIndividualResults(i, numberOfPaths, numberOfPoints);
                populationResults.Add(results);
                results.Time = populationResults.Time;
                results.UpdateQuantityTimeReference();
            }

            return(populationResults);
        }
示例#7
0
        protected override void Context()
        {
            base.Context();
            var results = new SimulationResults {
                Time = new QuantityValues {
                    ColumnId = "0", QuantityPath = "baseGrid"
                }
            };

            _individualResults = new IndividualResults {
                IndividualId = 1
            };
            results.Add(_individualResults);

            _quantityCache = new PathCacheForSpecs <IQuantity>
            {
                { "C|Liver|Cell|C2", new MoleculeAmount {
                      QuantityType = QuantityType.Drug
                  } },
                { "C|Liver|Cell|Meta", new MoleculeAmount {
                      QuantityType = QuantityType.Metabolite
                  } }
            };

            _individualResults.Add(new QuantityValues {
                ColumnId = "1", PathList = new[] { "C", "Liver", "Cell", "C" }.ToList()
            });
            _individualResults.Add(new QuantityValues {
                ColumnId = "3", PathList = new[] { "C", "Liver", "Cell", "Meta" }.ToList()
            });
            _individualResults.Add(new QuantityValues {
                ColumnId = "4", PathList = new[] { "S", "Liver", "Cell" }.ToList()
            });

            A.CallTo(_containerTask).WithReturnType <PathCache <IQuantity> >().Returns(_quantityCache);
            _individualSimulation.Results = results;
        }