Exemple #1
0
        private IndividualPropertiesCache createIndividualPropertiesFromCSV(CsvReader csv, string[] headers)
        {
            var individualPropertiesCache = new IndividualPropertiesCache();

            //first create a cache of all possible values
            var covariateCache    = new Cache <string, List <string> >();
            var parameterValues   = new Cache <string, List <double> >();
            int fieldCount        = csv.FieldCount;
            int indexIndividualId = 0;

            for (int i = 0; i < headers.Length; i++)
            {
                var header = headers[i];
                if (string.Equals(header, Constants.Population.INDIVIDUAL_ID_COLUMN))
                {
                    indexIndividualId = i;
                    continue;
                }

                if (entryRepresentsParameter(header))
                {
                    parameterValues[header] = new List <double>();
                }
                else
                {
                    covariateCache[header] = new List <string>();
                }
            }

            while (csv.ReadNextRecord())
            {
                for (int i = 0; i < fieldCount; i++)
                {
                    if (i == indexIndividualId)
                    {
                        continue;
                    }

                    var header = headers[i];
                    if (parameterValues.Contains(header))
                    {
                        parameterValues[header].Add(csv.DoubleAt(i));
                    }
                    else
                    {
                        covariateCache[header].Add(csv[i]);
                    }
                }
            }

            //now fill the property cache
            addCovariates(individualPropertiesCache, covariateCache);

            foreach (var parameterValue in parameterValues.KeyValues)
            {
                individualPropertiesCache.SetValues(parameterValue.Key, parameterValue.Value);
            }

            return(individualPropertiesCache);
        }
Exemple #2
0
        private void loadOldCSVFormat(IndividualPropertiesCache individualPropertiesCache, CsvReader csv)
        {
            int fieldCount = csv.FieldCount;

            while (csv.ReadNextRecord())
            {
                var parameterPath = csv[PARAMETER_PATH];
                var values        = getValuesFrom(csv, fieldCount);

                if (entryRepresentsParameter(parameterPath))
                {
                    ensureCovariatesAreDefined(individualPropertiesCache);
                    individualPropertiesCache.SetValues(parameterPath, values);
                }
                else
                {
                    addCovariates(individualPropertiesCache, parameterPath, values);
                }
            }
        }