protected override Task Context() { _advancedParameterMapper = A.Fake <AdvancedParameterMapper>(); _randomPopulationFactory = A.Fake <IRandomPopulationFactory>(); _randomPopulationSettingsMapper = A.Fake <RandomPopulationSettingsMapper>(); sut = new PopulationMapper(_advancedParameterMapper, _randomPopulationSettingsMapper, _randomPopulationFactory); _advancedParameters = new AdvancedParameterCollection(); _advancedParameter = new AdvancedParameter { DistributedParameter = DomainHelperForSpecs.NormalDistributedParameter() }; _advancedParameters.AddAdvancedParameter(_advancedParameter); _advancedParameterSnapshot = new Snapshots.AdvancedParameter(); A.CallTo(() => _advancedParameterMapper.MapToSnapshot(_advancedParameter)).Returns(_advancedParameterSnapshot); _population = CreateRandomPopulation(); _settingsSnapshot = new PopulationSettings(); A.CallTo(() => _randomPopulationSettingsMapper.MapToSnapshot(_population.Settings)).Returns(_settingsSnapshot); return(Task.FromResult(true)); }
public RandomPopulationSettings MapFrom(PopulationSettings batchPopulationSettings) { var originData = originDataFrom(batchPopulationSettings); var individual = _individualFactory.CreateStandardFor(originData); var populationSettings = _individualToPopulationSettingsMapper.MapFrom(individual); populationSettings.NumberOfIndividuals = batchPopulationSettings.NumberOfIndividuals; setRange(populationSettings, CoreConstants.Parameter.AGE, batchPopulationSettings.MinAge, batchPopulationSettings.MaxAge); setRange(populationSettings, CoreConstants.Parameter.MEAN_HEIGHT, batchPopulationSettings.MinHeight, batchPopulationSettings.MaxHeight); setRange(populationSettings, CoreConstants.Parameter.MEAN_WEIGHT, batchPopulationSettings.MinWeight, batchPopulationSettings.MaxWeight); setRange(populationSettings, CoreConstants.Parameter.BMI, batchPopulationSettings.MinBMI, batchPopulationSettings.MaxBMI); if (populationSettings.ContainsParameterRangeFor(CoreConstants.Parameter.GESTATIONAL_AGE)) { setRange(populationSettings, CoreConstants.Parameter.GESTATIONAL_AGE, batchPopulationSettings.MinGestationalAge, batchPopulationSettings.MaxGestationalAge); } //in case of multiple gender, adjust the ration according to the feamales proportion if (individual.AvailableGenders().Count() > 1) { populationSettings.GenderRatio(_genderRepository.Female).Ratio = batchPopulationSettings.ProportionOfFemales; populationSettings.GenderRatio(_genderRepository.Male).Ratio = 100 - batchPopulationSettings.ProportionOfFemales; } return(populationSettings); }
public IParameterValueCache CreatePopulation(PopulationSettings matlabPopulationSettings, IEnumerable <MoleculeOntogeny> moleculeOntogenies) { var populationSettings = _populationSettingsMapper.MapFrom(matlabPopulationSettings); var population = _randomPopulationFactory.CreateFor(populationSettings, new CancellationToken()).Result; foreach (var moleculeOntogeny in moleculeOntogenies) { var allOntogeniesForSpecies = _ontogenyRepository.AllFor(matlabPopulationSettings.Individual.OriginData.Species).ToList(); if (!allOntogeniesForSpecies.Any()) { continue; } var ontogeny = allOntogeniesForSpecies.FindByName(moleculeOntogeny.Ontogeny); if (ontogeny == null) { continue; } var molecule = _individualEnzymeFactory.CreateEmpty().WithName(moleculeOntogeny.Molecule); molecule.Ontogeny = ontogeny; population.AddMolecule(molecule); } _ontogenyVariabilityUpdater.UpdateAllOntogenies(population); return(population.IndividualPropertiesCache); }
public IParameterValueCache CreatePopulation(PopulationSettings matlabPopulationSettings, IEnumerable <string> moleculeNames) { var populationSettings = _populationSettingsMapper.MapFrom(matlabPopulationSettings); var population = _randomPopulationFactory.CreateFor(populationSettings, new CancellationToken()).Result; return(population.IndividualPropertiesCache); }
protected override void Context() { base.Context(); var originData = new OriginData { Species = CoreConstants.Species.HUMAN, Population = CoreConstants.Population.ICRP, }; originData.AddCalculationMethods("SurfaceAreaPlsInt_VAR1"); _settings = new PopulationSettings { Individual = new Individual { OriginData = originData }, Age = new ParameterRange { Min = 0, Max = 80, Unit = "year(s)", }, Weight = new ParameterRange { Min = 70, Unit = "kg", }, NumberOfIndividuals = 10, ProportionOfFemales = 70 }; _moleculeOntogenies = new [] { new MoleculeOntogeny("CYP3A4", "CYP3A4"), new MoleculeOntogeny("CYP2D6", "CYP2D6") }; }
private Model.OriginData originDataFrom(PopulationSettings batchPopulationSettings) { //create default individual based on given data var batchOriginData = new OriginData { Species = batchPopulationSettings.Species, Population = batchPopulationSettings.Population }; batchPopulationSettings.AllCalculationMethods.KeyValues.Each(kv => batchOriginData.AddCalculationMethod(kv.Key, kv.Value)); return(_originDataMapper.MapFrom(batchOriginData)); }
protected override void Context() { base.Context(); _settings = new PopulationSettings { Species = CoreConstants.Species.Human, Population = CoreConstants.Population.ICRP, MinAge = 0, MaxAge = 80, MinWeight = 70, NumberOfIndividuals = 10, ProportionOfFemales = 70 }; _settings.AddCalculationMethod("SurfaceAreaPlsInt", "SurfaceAreaPlsInt_VAR1"); }
public GeneticSimulator(PopulationSettings populationSettings, ScoreSettings scoreSettings, GameSettings gameSettings) { var gameFactory = CreateGameFactory(gameSettings, scoreSettings, UpdateGameBoardAsync); var offspringGameFactory = CreateGameFactory(gameSettings, scoreSettings, null); _populationFitnessFunction = new SnakeGameFitnessFunction(gameFactory); _offspringFitnessFunction = new SnakeGameFitnessFunction(offspringGameFactory); _population = new Population ( populationSettings, new PointBasedCrossoverOperator(), new SoftmaxSelectionOperator(), new MutationOperator(), () => (Individual)gameFactory.CreatePlayer() ); _population.GenerationCompleted += OnGenerationFinished; _tokenSource = new CancellationTokenSource(); }
protected override void Context() { base.Context(); var originData = new OriginData { Species = CoreConstants.Species.HUMAN, Population = CoreConstants.Population.PRETERM, }; originData.AddCalculationMethods("SurfaceAreaPlsInt_VAR1"); _settings = new PopulationSettings { Individual = new Individual { OriginData = originData }, Age = new ParameterRange { Min = 0, Max = 80, Unit = "year(s)", }, Weight = new ParameterRange { Min = 70, Unit = "kg", }, GestationalAge = new ParameterRange { Min = 30, Max = 35, Unit = "week(s)", }, NumberOfIndividuals = 10, ProportionOfFemales = 70 }; }