コード例 #1
0
        protected override void Context()
        {
            base.Context();

            _initialValuesData = createEmptyInitialValuesData();
            sut = new PopulationDataSplitter(_populationData, _agingData, _initialValuesData, _numberOfCores);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
      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();
      }