Beispiel #1
0
        protected override void Context()
        {
            base.Context();
            _species           = A.Fake <Species>();
            _defaultPopulation = new SpeciesPopulation().WithName("POP");
            A.CallTo(() => _species.DefaultPopulation).Returns(_defaultPopulation);

            var individualSettingsDTO = new IndividualSettingsDTO();

            A.CallTo(() => _individualDefaultValueRetriever.DefaultSettingFor(_defaultPopulation)).Returns(individualSettingsDTO);

            var originData = new OriginData();

            A.CallTo(() => _insividualSettingsMapper.MapFrom(individualSettingsDTO)).Returns(originData);

            _individual = new Individual();
            A.CallTo(() => _individualFactory.CreateStandardFor(originData)).Returns(_individual);
        }
Beispiel #2
0
 protected override void Context()
 {
     base.Context();
     _originData = new OriginData {
         Species = A.Fake <Species>().WithName("toto"), SpeciesPopulation = A.Fake <SpeciesPopulation>()
     };
     _individual     = new Individual();
     _invalidResults = A.Fake <ValidationResult>();
     A.CallTo(() => _invalidResults.ValidationState).Returns(ValidationState.Invalid);
     _organism      = A.Fake <Organism>();
     _neighborhoods = A.Fake <IContainer>();
     _rootContainer = new RootContainer();
     A.CallTo(() => _entityBaseFactory.Create <IRootContainer>()).Returns(_rootContainer);
     A.CallTo(() => _entityBaseFactory.Create <Individual>()).Returns(_individual);
     A.CallTo(() => _entityBaseFactory.Create <Organism>()).Returns(_organism);
     A.CallTo(() => _entityBaseFactory.Create <IContainer>()).Returns(_neighborhoods);
     A.CallTo(() => _entityValidator.Validate(_individual)).Returns(_invalidResults);
 }
 private void MainForm_Load(object sender, EventArgs e)
 {
     if (File.Exists(Properties.Resources.path))
     {
         try
         {
             FileStream      fs = new FileStream(Properties.Resources.path, FileMode.Open);
             BinaryFormatter bf = new BinaryFormatter();
             oData = bf.Deserialize(fs) as OriginData;
             LoadOriginDataToData();
             fs.Close();
         }
         catch (Exception)
         {
             MessageBox.Show("读取数据发生了错误。\n如果您是首次使用,请删除文件Thing3.dat后重试");
         }
     }
 }
Beispiel #4
0
        protected override void Context()
        {
            base.Context();

            var previousSubject    = A.Fake <ISimulationSubject>();
            var previousOriginData = new OriginData {
                SpeciesPopulation = A.Fake <SpeciesPopulation>()
            };

            previousOriginData.SpeciesPopulation.IsAgeDependent = true;
            A.CallTo(() => previousSubject.IsPreterm).Returns(true);
            A.CallTo(() => previousSubject.OriginData).Returns(previousOriginData);


            _subject.OriginData.SpeciesPopulation.IsAgeDependent = true;
            A.CallTo(() => _subject.IsPreterm).Returns(false);
            sut.UpdateSelectedSubject(previousSubject);
        }
Beispiel #5
0
 protected override void Context()
 {
     base.Context();
     _originData = new OriginData
     {
         Age        = new OriginDataParameter(5),
         Species    = A.Fake <Species>().WithName("toto"),
         Population = A.Fake <SpeciesPopulation>(),
         Weight     = new OriginDataParameter()
     };
     _individual                 = new Individual();
     _validationResult           = new ValidationResult();
     _diseaseStateImplementation = A.Fake <IDiseaseStateImplementation>();
     A.CallTo(() => _diseaseStateImplementation.Validate(_originData)).Throws <OSPSuiteException>();
     A.CallTo(() => _entityBaseFactory.Create <Individual>()).Returns(_individual);
     A.CallTo(() => _entityValidator.Validate(_individual)).Returns(_validationResult);
     A.CallTo(() => _diseaseStateImplementationRepository.CreateFor(_individual)).Returns(_diseaseStateImplementation);
 }
        protected override void Context()
        {
            _parameterQuery   = A.Fake <IParameterQuery>();
            _parameterFactory = A.Fake <IParameterFactory>();
            _originData       = new OriginData();
            _param1           = A.Fake <IParameter>();
            _param1.Name      = "param1";
            var paramDef1 = new ParameterValueMetaData
            {
                BuildingBlockType = PKSimBuildingBlockType.Individual
            };

            _param2      = A.Fake <IParameter>();
            _param2.Name = "param2";
            var paramDef2 = new ParameterValueMetaData
            {
                BuildingBlockType = PKSimBuildingBlockType.Individual
            };

            _param3      = A.Fake <IParameter>();
            _param3.Name = "param3";
            var paramDef3 = new ParameterValueMetaData
            {
                BuildingBlockType = PKSimBuildingBlockType.Compound
            };

            _valueDefinitions.Add(paramDef1);
            _valueDefinitions.Add(paramDef2);
            var paramRateDef1 = new ParameterRateMetaData();

            paramDef3.BuildingBlockType = PKSimBuildingBlockType.Individual;
            _rateDefinitions.Add(paramRateDef1);

            _paramRate1      = new PKSimParameter().WithFormula(new ExplicitFormula("a formula"));
            _paramRate1.Name = "RateParameter";
            A.CallTo(_parameterQuery).WithReturnType <IEnumerable <ParameterValueMetaData> >().Returns(_valueDefinitions);
            A.CallTo(_parameterQuery).WithReturnType <IEnumerable <ParameterDistributionMetaData> >().Returns(_distributionDefinitions);
            A.CallTo(_parameterQuery).WithReturnType <IEnumerable <ParameterRateMetaData> >().Returns(_rateDefinitions);
            A.CallTo(() => _parameterFactory.CreateFor(paramDef1)).Returns(_param1);
            A.CallTo(() => _parameterFactory.CreateFor(paramDef2)).Returns(_param2);
            A.CallTo(() => _parameterFactory.CreateFor(paramRateDef1, A <FormulaCache> ._)).Returns(_paramRate1);

            sut = new ParameterContainerTask(_parameterQuery, _parameterFactory);
        }
        public IParameter BMIBasedOn(OriginData originData, IParameter parameterWeight, IParameter parameterHeight)
        {
            var standardBMI = MeanOrganismParameter(originData, CoreConstants.Parameters.BMI);

            if (standardBMI == null)
            {
                return(null);
            }

            var organism = new Container().WithName(Constants.ORGANISM);

            organism.Add(parameterHeight);
            organism.Add(parameterWeight);
            organism.Add(standardBMI);

            standardBMI.Formula = _formulaFactory.BMIFormulaFor(parameterWeight, parameterHeight);
            standardBMI.Formula.ResolveObjectPathsFor(standardBMI);
            return(standardBMI);
        }
Beispiel #8
0
        protected override void Context()
        {
            base.Context();
            _originData = new OriginData {
                Species = new Species {
                    Name = "A", Icon = "B"
                }, SpeciesPopulation = A.Fake <SpeciesPopulation>()
            };
            _individual    = new Individual();
            _organism      = new Organism();
            _neighborhoods = A.Fake <IContainer>();
            _rootContainer = new RootContainer();
            A.CallTo(() => _entityBaseFactory.Create <IRootContainer>()).Returns(_rootContainer);
            A.CallTo(() => _entityBaseFactory.Create <Individual>()).Returns(_individual);
            A.CallTo(() => _entityBaseFactory.Create <Organism>()).Returns(_organism);
            A.CallTo(() => _entityBaseFactory.Create <IContainer>()).Returns(_neighborhoods);

            _valueOrigin = new ValueOrigin {
                Method = ValueOriginDeterminationMethods.InVitro, Source = ValueOriginSources.Database
            };
            _originData.UpdateValueOriginFrom(_valueOrigin);

            _originData.Age     = 10;
            _originData.AgeUnit = _age.DisplayUnit.Name;
            _organism.Add(_age);

            _originData.GestationalAge     = 40;
            _originData.GestationalAgeUnit = _gestationalAge.DisplayUnit.Name;
            _organism.Add(_gestationalAge);

            _originData.Height     = 170;
            _originData.HeightUnit = _height.DisplayUnit.Name;
            _organism.Add(_height);

            _originData.Weight     = 170;
            _originData.WeightUnit = _weight.DisplayUnit.Name;
            _organism.Add(_weight);

            _originData.BMI     = 170;
            _originData.BMIUnit = _bmi.DisplayUnit.Name;
            _organism.Add(_bmi);
        }
Beispiel #9
0
        private static bool needScaling(OriginData originData, IParameter individualParameter)
        {
            if (!originData.Population.IsHeightDependent)
            {
                return(false);
            }

            if (!individualParameter.IsNamed(Constants.Parameters.VOLUME))
            {
                return(false);
            }

            if (!individualParameter.ParentContainer.IsAnImplementationOf <Organ>())
            {
                return(false);
            }

            //Volume in organ
            return(true);
        }
Beispiel #10
0
        public void EditModelConfiguration(ISimulationSubject selectedSubject)
        {
            if (selectedSubject == null)
            {
                return;
            }
            _originData = selectedSubject.OriginData;
            ModelProperties modelProperties;

            if (selectedModelConfiguration != null)
            {
                modelProperties = _modelPropertiesTask.DefaultFor(_originData, selectedModelConfiguration.ModelName);
            }
            else
            {
                modelProperties = _modelPropertiesTask.DefaultFor(_originData);
            }

            editModelProperties(modelProperties);
        }
Beispiel #11
0
        protected override void Context()
        {
            base.Context();
            _discreteDistribution1 = new ParameterDistributionMetaData {
                Age = 20, Mean = 5
            };
            _discreteDistribution2 = new ParameterDistributionMetaData {
                Age = 10, Mean = 15
            };
            _discreteDistributions = new List <ParameterDistributionMetaData> {
                _discreteDistribution1, _discreteDistribution2
            };
            _parameter = A.Fake <IDistributedParameter>();
            var meanParameter = DomainHelperForSpecs.ConstantParameterWithValue(1).WithName("Mean");

            A.CallTo(() => _parameter.MeanParameter).Returns(meanParameter);

            _originData = new OriginData {
                Age = 12
            };
            A.CallTo(() => _distrFormulaFactory.CreateDiscreteDistributionFormulaFor(_parameter, meanParameter)).Returns(new DiscreteDistributionFormula());
        }
Beispiel #12
0
        public OriginData MapFrom(IndividualSettingsDTO individualSettingsDTO)
        {
            var originData = new OriginData
            {
                Species        = individualSettingsDTO.Species,
                Population     = individualSettingsDTO.Population,
                Gender         = individualSettingsDTO.Gender,
                SubPopulation  = subPopulationFrom(individualSettingsDTO.SubPopulation),
                Age            = originDataParameterFrom(individualSettingsDTO.ParameterAge),
                GestationalAge = originDataParameterFrom(individualSettingsDTO.ParameterGestationalAge),
                Height         = originDataParameterFrom(individualSettingsDTO.ParameterHeight),
                Weight         = originDataParameterFrom(individualSettingsDTO.ParameterWeight),
                BMI            = originDataParameterFrom(individualSettingsDTO.ParameterBMI)
            };

            updateDiseaseState(originData, individualSettingsDTO);

            originData.UpdateValueOriginFrom(individualSettingsDTO.ValueOrigin);
            individualSettingsDTO.CalculationMethods.Select(cm => cm.CalculationMethod).Each(originData.AddCalculationMethod);

            return(originData);
        }
Beispiel #13
0
        private void updateDiseaseState(OriginData originData, IndividualSettingsDTO individualSettingsDTO)
        {
            var diseaseState = individualSettingsDTO.DiseaseState;
            var isHealthy    = diseaseState.IsHealthy;

            if (isHealthy)
            {
                originData.DiseaseState = null;
                return;
            }

            originData.DiseaseState = diseaseState;
            var diseaseStateParameter = individualSettingsDTO.DiseaseStateParameter;

            //This is a disease state without parameters
            if (diseaseStateParameter.IsNull())
            {
                return;
            }

            //disease parameters are saved in a collection and we need to save the name to differentiate them
            originData.AddDiseaseStateParameter(originDataParameterFrom(diseaseStateParameter, addName: true));
        }
        protected override void Context()
        {
            _simulationPresenter = A.Fake <ICreateSimulationPresenter>();
            _view = A.Fake <ISimulationSubjectConfigurationView>();
            _simulationFactory = A.Fake <ISimulationFactory>();
            _buildingBlockInSimulationManager = A.Fake <IBuildingBlockInSimulationManager>();
            _simulation   = A.Fake <Simulation>();
            _lazyLoadTask = A.Fake <ILazyLoadTask>();
            sut           = new SimulationSubjectConfigurationPresenter(_view, _lazyLoadTask, _buildingBlockInSimulationManager);
            A.CallTo(() => _view.BindTo(A <SimulationSubjectDTO> ._))
            .Invokes(x => _simulationSubjectDTO = x.GetArgument <SimulationSubjectDTO>(0));

            sut.InitializeWith(_simulationPresenter);

            _subject = A.Fake <ISimulationSubject>();
            var originData = new OriginData {
                SpeciesPopulation = A.Fake <SpeciesPopulation>()
            };

            A.CallTo(() => _subject.OriginData).Returns(originData);

            sut.Initialize();
        }
Beispiel #15
0
        protected override void Context()
        {
            _compartment = A.Fake <Compartment>();
            A.CallTo(() => _compartment.OrganName).Returns("MyParentOrgan");
            _compartment.Name = "MyComp";
            var containerPath = new ObjectPath(new[] { _compartment.OrganName, _compartment.Name }).ToString();

            _containerPathRetriever = A.Fake <IEntityPathResolver>();
            A.CallTo(() => _containerPathRetriever.PathFor(_compartment)).Returns(containerPath);
            _originData            = new OriginData();
            _originData.Population = new SpeciesPopulation();
            var distributionDefinition = new ParameterDistributionMetaData();
            var rateDefinition         = new ParameterRateMetaData();
            var valueDefinition        = new ParameterValueMetaData();

            distributionDefinition.ParameterName = "tutu";
            var distributionRepository = A.Fake <IParameterDistributionRepository>();

            A.CallTo(() => distributionRepository.AllFor(containerPath)).Returns(new List <ParameterDistributionMetaData> {
                distributionDefinition
            });

            var rateRepository = A.Fake <IParameterRateRepository>();

            A.CallTo(() => rateRepository.AllFor(containerPath)).Returns(new List <ParameterRateMetaData> {
                rateDefinition
            });

            var valueRepository = A.Fake <IParameterValueRepository>();

            A.CallTo(() => valueRepository.AllFor(containerPath)).Returns(new List <ParameterValueMetaData> {
                valueDefinition
            });

            sut = new ParameterQuery(distributionRepository, valueRepository, rateRepository, _containerPathRetriever);
        }
        public OriginData MapFrom(IndividualSettingsDTO individualSettingsDTO)
        {
            var originData = new OriginData
            {
                Species           = individualSettingsDTO.Species,
                SpeciesPopulation = individualSettingsDTO.SpeciesPopulation,
                Gender            = individualSettingsDTO.Gender,
                SubPopulation     = subPopulationFrom(individualSettingsDTO.SubPopulation),
                Age                = individualSettingsDTO.ParameterAge.KernelValue,
                AgeUnit            = displayUnit(individualSettingsDTO.ParameterAge),
                GestationalAge     = individualSettingsDTO.ParameterGestationalAge.KernelValue,
                GestationalAgeUnit = displayUnit(individualSettingsDTO.ParameterGestationalAge),
                Height             = individualSettingsDTO.ParameterHeight.KernelValue,
                HeightUnit         = displayUnit(individualSettingsDTO.ParameterHeight),
                Weight             = individualSettingsDTO.ParameterWeight.KernelValue,
                WeightUnit         = displayUnit(individualSettingsDTO.ParameterWeight),
                BMI                = individualSettingsDTO.ParameterBMI.KernelValue,
                BMIUnit            = displayUnit(individualSettingsDTO.ParameterBMI),
            };

            individualSettingsDTO.CalculationMethods.Select(cm => cm.CalculationMethod).Each(originData.AddCalculationMethod);

            return(originData);
        }
Beispiel #17
0
 private Ontogeny forMolecule(OriginData originData, string molecule)
 {
     return(allFor(originData.Species.Name).FindByName(molecule) ?? new NullOntogeny());
 }
 public IParameter MeanHeightFor(OriginData originData)
 {
     return(MeanOrganismParameter(originData, CoreConstants.Parameters.MEAN_HEIGHT));
 }
Beispiel #19
0
        private double percentileFrom(IEnumerable <ParameterDistributionMetaData> allDistributionsForParameter, OriginData originData, double parameterValue)
        {
            var parameter = _parameterFactory.CreateFor(allDistributionsForParameter, originData);

            parameter.Value = parameterValue;
            return(parameter.Percentile);
        }
Beispiel #20
0
 private double postmenstrualAgeInYearsFor(OriginData originData)
 {
     return(postmenstrualAgeInYearsFor(originData.Age, originData.GestationalAge));
 }
Beispiel #21
0
 public double OntogenyFactorFor(Ontogeny ontogeny, string containerName, OriginData originData, RandomGenerator randomGenerator = null)
 {
     return(OntogenyFactorFor(ontogeny, containerName, originData.Age, originData.GestationalAge, randomGenerator));
 }
        private DistributedParameterValue distributedOntogenyFactorFor(Ontogeny ontogeny, string moleculeName, OriginData originData, string parameterName, string ontogenyLocation)
        {
            var parameterPath = new ObjectPath {
                moleculeName, parameterName
            };

            var(mean, std, distributionType) = _ontogenyRepository.OntogenyParameterDistributionFor(ontogeny, originData, ontogenyLocation);
            return(new DistributedParameterValue(parameterPath, mean, CoreConstants.DEFAULT_PERCENTILE, mean, std, distributionType));
        }
Beispiel #23
0
 public IReadOnlyList <Sample> AllPlasmaProteinOntogenyFactorForStrictBiggerThanPMA(string parameterName, OriginData originData, RandomGenerator randomGenerator = null)
 {
     return(AllOntogenyFactorForStrictBiggerThanPMA(forMolecule(originData, SupportedProteins[parameterName]), originData, CoreConstants.Groups.ONTOGENY_PLASMA, randomGenerator));
 }
Beispiel #24
0
 public void EditSimulation(Simulation simulation, CreationMode creationMode)
 {
     _originData = simulation.BuildingBlock <ISimulationSubject>().OriginData;
     editModelProperties(simulation.ModelProperties);
 }
Beispiel #25
0
 public double PlasmaProteinOntogenyFactor(string protein, OriginData originData, RandomGenerator randomGenerator = null)
 {
     return(PlasmaProteinOntogenyFactor(protein, originData.Age, originData.GestationalAge, originData.Species.Name, randomGenerator));
 }
        private ParameterValue ontogenyFactorFor(Ontogeny ontogeny, string moleculeName, OriginData originData, string parameterName, string ontogenyLocation)
        {
            var path = new ObjectPath {
                moleculeName, parameterName
            };
            double factor = _ontogenyRepository.OntogenyFactorFor(ontogeny, ontogenyLocation, originData);

            return(new ParameterValue(path, factor, CoreConstants.DEFAULT_PERCENTILE));
        }
 public void AddModelParametersTo <TContainer>(TContainer parameterContainer, OriginData originData, ModelProperties modelProperties, IFormulaCache formulaCache) where TContainer : IContainer
 {
     addParametersTo(parameterContainer, originData, modelProperties.AllCalculationMethods().Select(cm => cm.Name), param => true, formulaCache);
 }
 private void addParametersTo <T>(T parameterContainer, OriginData originData, IEnumerable <string> calculationMethods) where T : IContainer
 {
     addParametersTo(parameterContainer, originData, calculationMethods, x => true);
 }
 public void AddInvididualParametersTo <TContainer>(TContainer parameterContainer, OriginData originData, string parameterName) where TContainer : IContainer
 {
     addParametersTo(parameterContainer, originData, originData.AllCalculationMethods().Select(cm => cm.Name),
                     param => param.BuildingBlockType == PKSimBuildingBlockType.Individual && string.Equals(param.ParameterName, parameterName));
 }
Beispiel #30
0
        public IReadOnlyList <Sample> AllOntogenyFactorForStrictBiggerThanPMA(Ontogeny ontogeny, OriginData originData, string containerName, RandomGenerator randomGenerator = null)
        {
            Start();

            if (ontogeny.IsUndefined())
            {
                return(new List <Sample>());
            }

            var pma       = postmenstrualAgeInYearsFor(originData);
            var gaInYears = inYears(originData.GestationalAge.GetValueOrDefault(CoreConstants.NOT_PRETERM_GESTATIONAL_AGE_IN_WEEKS));

            var ontogenies = AllValuesFor(ontogeny, containerName).Where(x => x.PostmenstrualAge > pma).ToList();

            if (!ontogenies.Any())
            {
                return(new List <Sample>());
            }

            var factorRetriever = ontogenyFactorRetriever(randomGenerator, ontogenies);

            return(ontogenies.Select(x => new Sample(x.PostmenstrualAge - gaInYears, factorRetriever(x))).ToList());
        }