public ParameterValue[] CreateIndividual(OriginData matlabOriginData, IEnumerable <MoleculeOntogeny> moleculeOntogenies) { var originData = originDataFrom(matlabOriginData); var individual = _individualFactory.CreateAndOptimizeFor(originData); var individualProperties = _individualPropertiesMapper.MapFrom(individual); var allIndividualParameters = individualProperties.ParameterValues.ToList(); allIndividualParameters.AddRange(_ontogenyFactorsRetriever.FactorsFor(originData, moleculeOntogenies)); return(allIndividualParameters.ToArray()); }
public Individual CreateBaseIndividualForPopulation(Individual originalIndividual) { //we need to create a new individual WITHOUT CKD and set all percentiles as in the original individuals. Other parameters, value wil be taken as is var originData = originalIndividual.OriginData.Clone(); //remove the disease state to create a healthy Individual originData.DiseaseState = null; var healthyIndividual = _individualFactory.CreateAndOptimizeFor(originData, originalIndividual.Seed); var allCKDParameters = parametersChangedByCKDAlgorithmAsList(healthyIndividual); //Make sure we update the flags that might not be set coming from the database allCKDParameters.Each(x => x.IsChangedByCreateIndividual = true); //do not update parameters changed by CKD algorithm or that are not visible var allHealthyParameters = _containerTask.CacheAllChildrenSatisfying <IParameter>(healthyIndividual, x => !allCKDParameters.Contains(x) && x.Visible); var allOriginalParameters = _containerTask.CacheAllChildren <IParameter>(originalIndividual); _parameterSetUpdater.UpdateValues(allOriginalParameters, allHealthyParameters); //we have a healthy individuals based on the CKD individual where all changes were all manual changes were accounted for //we now need to add the disease state contributions from the original individual originData.DiseaseState = originalIndividual.OriginData.DiseaseState; originalIndividual.OriginData.DiseaseStateParameters.Each(x => originData.AddDiseaseStateParameter(x.Clone())); return(healthyIndividual); }
private Individual createIndividual() { var originData = new OriginData { Species = CoreConstants.Species.HUMAN, Population = CoreConstants.Population.ICRP, Age = new Parameter { Value = 30, Unit = "year(s)", }, Weight = new Parameter { Value = 75, Unit = "kg", }, Height = new Parameter { Value = 175, Unit = "cm", }, Gender = CoreConstants.Gender.MALE }; var modelOriginData = _originDataMapper.MapToModel(originData, new SnapshotContext()).Result; var individual = _individualFactory.CreateAndOptimizeFor(modelOriginData); return(individual); }
public Model.Individual MapFrom(Individual batchIndividual) { var batchOriginData = new OriginData { Species = batchIndividual.Species, Population = batchIndividual.Population, Gender = batchIndividual.Gender, Age = batchIndividual.Age.GetValueOrDefault(double.NaN), Height = batchIndividual.Height.GetValueOrDefault(double.NaN), Weight = batchIndividual.Weight.GetValueOrDefault(double.NaN), GestationalAge = batchIndividual.GestationalAge.GetValueOrDefault(double.NaN), }; var originData = _originDataMapper.MapFrom(batchOriginData); var individual = _individualFactory.CreateAndOptimizeFor(originData, batchIndividual.Seed).WithName("Individual"); batchIndividual.Enzymes.Each(enzyme => addMoleculeTo <IndividualEnzyme>(individual, enzyme)); batchIndividual.OtherProteins.Each(otherProtein => addMoleculeTo <IndividualOtherProtein>(individual, otherProtein)); batchIndividual.Transporters.Each(transporter => { var individualTransporter = addMoleculeTo <IndividualTransporter>(individual, transporter); individualTransporter.TransportType = EnumHelper.ParseValue <TransportType>(transporter.TransportType); _batchLogger.AddDebug($"Transport type for transporter '{individualTransporter.Name}' is {individualTransporter.TransportType}"); }); return(individual); }
private void updateLiverStructure(Individual individual) { var templateIndividual = _individualFactory.CreateAndOptimizeFor(individual.OriginData); var originalLiver = liverIn(individual); var newLiver = _cloner.Clone(liverIn(templateIndividual)); individual.Organism.RemoveChild(originalLiver); individual.Organism.Add(newLiver); updateContainerParameterValues(originalLiver, newLiver); addMissingNeighborhoods(individual, templateIndividual); removeOldNeighbhorhoods(individual); }
public override async Task <ModelIndividual> MapToModel(SnapshotIndividual individualSnapshot) { var originData = await _originDataMapper.MapToModel(individualSnapshot.OriginData); var individual = _individualFactory.CreateAndOptimizeFor(originData, individualSnapshot.Seed); MapSnapshotPropertiesToModel(individualSnapshot, individual); await updateIndividualParameters(individualSnapshot, individual); var molecules = await _moleculeMapper.MapToModels(individualSnapshot.Molecules, individual); molecules?.Each(individual.AddMolecule); return(individual); }
public override async Task <ModelIndividual> MapToModel(SnapshotIndividual individualSnapshot, SnapshotContext snapshotContext) { var originData = await _originDataMapper.MapToModel(individualSnapshot.OriginData, snapshotContext); var individual = _individualFactory.CreateAndOptimizeFor(originData, individualSnapshot.Seed); MapSnapshotPropertiesToModel(individualSnapshot, individual); await updateIndividualParameters(individualSnapshot, individual, snapshotContext); if (snapshotContext.IsV10FormatOrEarlier) { await convertMoleculesToExpressionProfiles(individualSnapshot, snapshotContext); } individualSnapshot.ExpressionProfiles?.Each(x => { var expressionProfile = snapshotContext.Project.BuildingBlockByName <Model.ExpressionProfile>(x); _moleculeExpressionTask.AddExpressionProfile(individual, expressionProfile); }); individual.Icon = individual.Species.Icon; return(individual); }
public PKSim.Core.Model.Individual MapFrom(IndividualSettingsDTO individualSettingsDTO) { return(_individualFactory.CreateAndOptimizeFor(_mapper.MapFrom(individualSettingsDTO))); }
public Individual MapFrom(IndividualSettingsDTO individualSettingsDTO) { return(_individualFactory.CreateAndOptimizeFor(_originDataMapper.MapFrom(individualSettingsDTO))); }