Exemplo n.º 1
0
        public void TestConvertGlobalParametersToDictionary()
        {
            var globalParameters = GetExampleGlobalParameters();
            var globalParams     = GlobalParamUtilities.ConvertGlobalParameters(globalParameters);

            var success = globalParams.TryGetValue(GlobalParamKeyType.InstrumentName, out var instName);

            Assert.IsTrue(success, "Instrument name could not be retrieved");
            Assert.AreEqual(globalParameters.InstrumentName, instName);

            success = globalParams.TryGetValue(GlobalParamKeyType.NumFrames, out var numFrames);
            Assert.IsTrue(success, "NumFrames could not be retrieved");
            Assert.AreEqual(globalParameters.NumFrames, numFrames);

            success = globalParams.TryGetValue(GlobalParamKeyType.BinWidth, out var binWidth);
            Assert.IsTrue(success, "BinWidth could not be retrieved");
            Assert.AreEqual(globalParameters.BinWidth, binWidth, 0.00001);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="paramType">Strongly typed enum of the new parameter</param>
        /// <param name="name">Parameter name</param>
        /// <param name="dataType">Parameter .NET data type (as a string)</param>
        /// <param name="description">Parameter description</param>
        /// <remarks>Does not verify that paramID is a valid member of FrameParamKeyType</remarks>
        public FrameParamDef(FrameParamKeyType paramType, string name, string dataType, string description = "")
        {
            ParamType = paramType;
            Name      = name;

            try
            {
                DataType = Type.GetType(dataType);

                if (DataType == null)
                {
                    dataType = GlobalParamUtilities.GetDataTypeFromAlias(dataType);

                    DataType = Type.GetType(dataType) ?? typeof(object);
                }
            }
            catch
            {
                DataType = typeof(object);
            }

            Description = description;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Get the value for a parameter
        /// </summary>
        /// <param name="paramType">Parameter type</param>
        /// <returns>Value (dynamic)</returns>
        /// <remarks>Returns an empty string if not defined</remarks>
        public dynamic GetValue(GlobalParamKeyType paramType)
        {
            var defaultValue = GlobalParamUtilities.GetDefaultValueByType(paramType);

            return(GetValue(paramType, defaultValue));
        }
Exemplo n.º 4
0
        public void TestConvertGlobalParametersToClass()
        {
            var globalParameters   = GetExampleGlobalParameters();
            var globalParamsByType = GlobalParamUtilities.ConvertGlobalParameters(globalParameters);

            var globalParams = GlobalParamUtilities.ConvertDynamicParamsToGlobalParams(globalParamsByType);


            var instName = globalParams.GetValueString(GlobalParamKeyType.InstrumentName);

            Assert.AreEqual(globalParameters.InstrumentName, instName);

            var instNameDynamic = globalParams.GetValue(GlobalParamKeyType.InstrumentName, "");

            Assert.AreEqual(globalParameters.InstrumentName, instNameDynamic);

            var instNameDynamicWithDefault = globalParams.GetValue(GlobalParamKeyType.InstrumentName);

            Assert.AreEqual(globalParameters.InstrumentName, instNameDynamicWithDefault);


            // Remove the instrument name then test again
            globalParams.Values.Remove(GlobalParamKeyType.InstrumentName);

            instName = globalParams.GetValueString(GlobalParamKeyType.InstrumentName);
            Assert.AreEqual("", instName);

            instName = globalParams.GetValueString(GlobalParamKeyType.InstrumentName, "Undefined");
            Assert.AreEqual("Undefined", instName);

            instNameDynamic = globalParams.GetValue(GlobalParamKeyType.InstrumentName, "Undefined");
            Assert.AreEqual("Undefined", instNameDynamic);

            instNameDynamicWithDefault = globalParams.GetValue(GlobalParamKeyType.InstrumentName);
            Assert.AreEqual("", instNameDynamicWithDefault);


            var numFrames = globalParams.GetValueInt32(GlobalParamKeyType.NumFrames);

            Assert.AreEqual(globalParameters.NumFrames, numFrames);

            var numFramesDynamic = globalParams.GetValue(GlobalParamKeyType.NumFrames, 0);

            Assert.AreEqual(globalParameters.NumFrames, numFramesDynamic);

            var numFramesDynamicDouble = globalParams.GetValue(GlobalParamKeyType.NumFrames, 0.0);

            Assert.AreEqual(globalParameters.NumFrames, numFramesDynamicDouble, 0.00001);


            var binWidth = globalParams.GetValueInt32(GlobalParamKeyType.BinWidth);

            Assert.AreEqual(globalParameters.BinWidth, binWidth);

            var binWidthDynamic = globalParams.GetValue(GlobalParamKeyType.BinWidth, 0);

            Assert.AreEqual(globalParameters.BinWidth, binWidthDynamic);

            var binWidthDynamicDouble = globalParams.GetValue(GlobalParamKeyType.BinWidth, 0.0);

            Assert.AreEqual(globalParameters.BinWidth, binWidthDynamicDouble, 0.00001);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Initialize this global parameter using the param type enum value
        /// </summary>
        /// <param name="paramType">Param key type enum</param>
        private void InitializeByType(GlobalParamKeyType paramType)
        {
            ParamType = paramType;

            var dataType = GlobalParamUtilities.GetGlobalParamKeyDataType(paramType);

            switch (paramType)
            {
            case GlobalParamKeyType.InstrumentName:
                InitializeByType("InstrumentName", dataType, "Instrument name");
                break;

            case GlobalParamKeyType.DateStarted:
                // Format has traditionally been M/d/yyyy hh:mm:ss tt
                // For example, 6/4/2014 12:56:44 PM
                InitializeByType("DateStarted", dataType, "Time that the data acquisition started");
                break;

            case GlobalParamKeyType.NumFrames:
                InitializeByType("NumFrames", dataType, "Number of frames in the dataset");
                break;

            case GlobalParamKeyType.TimeOffset:
                InitializeByType("TimeOffset", dataType, "Time offset from 0 (in nanoseconds). All bin numbers must be offset by this amount");
                break;

            case GlobalParamKeyType.BinWidth:
                InitializeByType("BinWidth", dataType, "Width of TOF bins (in ns)");
                break;

            case GlobalParamKeyType.Bins:
                InitializeByType("Bins", dataType, "Total number of TOF bins in frame");
                break;

            case GlobalParamKeyType.TOFCorrectionTime:
                InitializeByType("TOFCorrectionTime", dataType, "TOF correction time");
                break;

            case GlobalParamKeyType.TOFIntensityType:
                InitializeByType("TOFIntensityType", dataType, "Data type of intensity in each TOF record (ADC is int, TDC is short, FOLDED is float)");
                break;

            case GlobalParamKeyType.DatasetType:
                InitializeByType("DatasetType", dataType, "Type of dataset (HMS, HMSn, or HMS-HMSn)");
                break;

            case GlobalParamKeyType.PrescanTOFPulses:
                InitializeByType("PrescanTOFPulses", dataType, "Prescan TOF pulses; this tracks the maximum scan number in any frame");
                break;

            case GlobalParamKeyType.PrescanAccumulations:
                InitializeByType("PrescanAccumulations", dataType, "Number of prescan accumulations");
                break;

            case GlobalParamKeyType.PrescanTICThreshold:
                InitializeByType("PrescanTICThreshold", dataType, "Prescan TIC threshold");
                break;

            case GlobalParamKeyType.PrescanContinuous:
                InitializeByType("PrescanContinuous", dataType, "Prescan Continuous flag (0 is false, 1 is true)");
                break;

            case GlobalParamKeyType.PrescanProfile:
                InitializeByType("PrescanProfile", dataType, "Profile used when PrescanContinuous is 1");
                break;

            case GlobalParamKeyType.InstrumentClass:
                InitializeByType("InstrumentClass", dataType, "Instrument class (0 for TOF, 1 for ppm bin-based)");
                break;

            case GlobalParamKeyType.PpmBinBasedStartMz:
                InitializeByType("PpmBinBasedStartMz", dataType, "Starting m/z value for ppm bin-based mode");
                break;

            case GlobalParamKeyType.PpmBinBasedEndMz:
                InitializeByType("PpmBinBasedEndMz", dataType, "Ending m/z value for ppm bin-based mode");
                break;

            case GlobalParamKeyType.DriftTubeLength:
                InitializeByType("DriftTubeLength", dataType, "IMS Drift tube length in centimeters");
                break;

            case GlobalParamKeyType.DriftGas:
                InitializeByType("DriftGas", dataType, "Drift gas (i.e., N2)");
                break;

            case GlobalParamKeyType.Unknown:
                throw new ArgumentOutOfRangeException(nameof(paramType), "Cannot initialize a global parameter of type Unknown: " + (int)paramType);

            default:
                throw new ArgumentOutOfRangeException(nameof(paramType), "Unrecognized global param enum for paramType: " + (int)paramType);
            }
        }