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 IEnumerable <double> getValuesFrom(CsvReader csv, int fieldCount)
        {
            var values = new List <double>();

            for (int i = PARAMETER_PATH + 1; i < fieldCount; i++)
            {
                values.Add(csv.DoubleAt(i));
            }
            return(values);
        }
Exemple #3
0
        private void addValues(QuantityPKParameter pkParameter, CsvReader csv)
        {
            if (!_valuesCache.Contains(pkParameter))
            {
                _valuesCache.Add(pkParameter, new List <Tuple <int, float> >());
            }

            var coreUnit = convertValueToCoreValue(pkParameter.Dimension, csv.DoubleAt(VALUE), csv[UNIT]);

            _valuesCache[pkParameter].Add(new Tuple <int, float>(csv.IntAt(INDIVIDUAL_ID), coreUnit.ToFloat()));
        }