protected override void Context() { base.Context(); _initialValuesData = createEmptyInitialValuesData(); sut = new PopulationDataSplitter(_populationData, _agingData, _initialValuesData, _numberOfCores); }
protected override void Context() { base.Context(); _initialValuesData = createEmptyInitialValuesData(); sut = new PopulationDataSplitter(_numberOfCores, _populationData, _agingData, _initialValuesData); _variableParameters = _simModelManagerForSpecs.SetVariableParameters(_simModelSimulation, sut.ParameterPathsToBeVaried()); _variableSpecies = _simModelManagerForSpecs.SetVariableSpecies(_simModelSimulation, sut.InitialValuesPathsToBeVaried()); }
public string[] SplitPopulation(string populationFile, int numberOfCores, string outputFolder, string outputFileName) { var population = ImportPopulation(populationFile); var populationData = PopulationTableFrom(population); var dataSplitter = new PopulationDataSplitter(numberOfCores, populationData); DirectoryHelper.CreateDirectory(outputFolder); var outputFiles = new List<string>(); for (int i = 0; i < numberOfCores; i++) { var outputFile = Path.Combine(outputFolder, $"{outputFileName}_{i + 1}{Constants.Filter.CSV_EXTENSION}"); var rowIndices = dataSplitter.GetRowIndices(i).ToList(); //This is potentially empty if the number of individuals in the population is less than the number of cores provided if(!rowIndices.Any()) continue; outputFiles.Add(outputFile); exportSplitPopulation(populationData, rowIndices, outputFile); } return outputFiles.ToArray(); }