Пример #1
0
        /// <summary>
        /// Return Remove contaminant peak is Enabled.
        /// </summary>
        /// <param name="clrParams"></param>
        /// <returns></returns>
        public ClrVariant RemoveContaminantPeakIsEnabled(ClrParameters clrParams)
        {
            ClrVariant ret = new ClrVariant();

            ret.type = ClrVariant.DataType.BOOL;
            ret.obj  = false;

            try
            {
                ClrMsDataVariant msObj = new ClrMsDataVariant(ClrPluginCallTool.getActiveObject(clrParams));
                SampleWrapper    sw    = msObj.getSample();
                if (sw != null)
                {
                    DataGroupNodeWrapper dgnw = sw.getRootDataGroupNode();
                    if (1 < dgnw.getNumberOfSpectra())
                    {
                        ret.obj = true;
                    }
                }
            }
            catch
            {
                ret.obj = false;
            }
            return(ret);
        }
Пример #2
0
        /// <summary>
        /// Define of Specified option.
        /// (This function is not called normally. Please reference design document Page 37.)
        /// </summary>
        /// <param name="clrParams"></param>
        /// <returns></returns>
        public ClrVariant BatPitchSpecified(ClrParameters clrParams)
        {
            // Return value (Success: true, Failure: false)
            ClrVariant ret = new ClrVariant();

            // We initially set ret.prim.boolVal to false so that we can return a false
            // result easily using "return ret" if a failure condition occurs.
            ret.type = ClrVariant.DataType.BOOL;
            ret.obj  = false;

            return(ret);
        }
 /// <summary>
 /// Display Remove Contaminant Peak Dialog
 /// </summary>
 public static void DisplayDlgRemovContamiPeak(ClrVariant clrVar)
 {
     if (_manager._dlgRemovContamiPeak == null)
     {
         _manager._dlgRemovContamiPeak = new RemoveContaminantPeakDialog(clrVar);
         _manager._dlgRemovContamiPeak.DisplayClosed += _manager.RemoveContaminantPeakDialog_DisplayClosed;
         _manager._dlgRemovContamiPeak.Show();
     }
     else
     {
         _manager._dlgRemovContamiPeak.UpdateParam(clrVar);
         _manager._dlgRemovContamiPeak.Activate();
     }
 }
Пример #4
0
 /// <summary>
 /// Display Spectrum Calculation Dialog
 /// </summary>
 public static void DisplayDlgSpecCalc(ClrVariant clrVar)
 {
     if (_manager._dlgSpecCalc == null)
     {
         _manager._dlgSpecCalc = new SpectrumCalculationDialog(clrVar);
         _manager._dlgSpecCalc.DisplayClosed += _manager.SpectrumCalculationDialog_DisplayClosed;
         _manager._dlgSpecCalc.Show();
     }
     else
     {
         _manager._dlgSpecCalc.UpdateParam(clrVar);
         _manager._dlgSpecCalc.Activate();
     }
 }
        /// <summary>
        /// Initializes a new instance of the SpectrumCalculationDialog class
        /// </summary>
        /// <param name="clrVar">Parameter</param>
        public RemoveContaminantPeakDialog(ClrVariant clrVar)
            : this()
        {
            // Set parent window
            var    current = Process.GetCurrentProcess();
            IntPtr hwnd    = current.MainWindowHandle;

            SetWindowLong(this.Handle, GWL_HWNDPARENT, (UInt32)hwnd);

            _clrVar          = clrVar;
            _baselineParam   = new BaselineSubtractionParameter();
            _resamplingParam = new ResamplingParameter();
            _calculate       = new RemoveContaminantPeakCalculation(_clrVar, _baselineParam, _resamplingParam);
        }
Пример #6
0
        /**
         * @fn kome.clr.ClrVariant SimcaDisplayPluginFunction(kome.clr.ClrParameters* clrParams)
         * @brief write this function's brief.
         * @param[in] clrParams ClrParameters object
         * @return If true, it succeeded (boolean)
         */

        /// <summary>
        /// Mass++ menu(SimcaDisplay...) execute function
        /// </summary>
        /// <param name="clrParams">parameters object</param>
        /// <returns>This value has no meanings.</returns>
        public ClrVariant SimcaDisplayPluginFunction(ClrParameters clrParams)
        {
            // Return value (Success: true, Failure: false)
            ClrVariant ret = new ClrVariant();

            // We initially set ret.prim.boolVal to false so that we can return a false
            // result easily using "return ret" if a failure condition occurs.
            ret.type = ClrVariant.DataType.BOOL;
            ret.obj  = false;

            // Method write Here
            SimcaDisplayManager.DisplayMainForm();

            ret.obj = true;
            return(ret);
        }
Пример #7
0
        /// <summary>
        /// Remove contaminant peak is Enabled.
        /// </summary>
        /// <param name="clrParams">parameters for C# plug-in from Mass++</param>
        /// <returns></returns>
        public ClrVariant RemoveContaminantPeak(ClrParameters clrParams)
        {
            // Return value (Success: true, Failure: false)
            ClrVariant ret = new ClrVariant();

            // We initially set ret.prim.boolVal to false so that we can return a false
            // result easily using "return ret" if a failure condition occurs.
            ret.type = ClrVariant.DataType.BOOL;
            ret.obj  = false;

            // Convert clrParams to ActiveObject
            ClrVariant clrVar = ClrPluginCallTool.getActiveObject(clrParams);

            // Display main window.
            RemoveContaminantPeakManager.DisplayDlgRemovContamiPeak(clrVar);

            ret.obj = true;
            return(ret);
        }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of the SpectrumCalculationManager class
 /// </summary>
 /// <param name="clrVariant">Target of operation</param>
 /// <exception cref="ArgumentNullException"></exception>
 public RemoveContaminantPeakCalculation(ClrVariant clrVariant,
                                         BaselineSubtractionParameter baselineParam,
                                         ResamplingParameter resamplingParam)
 {
     //Each arguments validation.
     if (clrVariant == null)
     {
         throw new ArgumentNullException("clrVariant");
     }
     if (baselineParam == null)
     {
         throw new ArgumentNullException("baselineParam");
     }
     if (resamplingParam == null)
     {
         throw new ArgumentNullException("resamplingParam");
     }
     _clrVariant      = clrVariant;
     _resamplingParam = resamplingParam;
     _resampling      = new ResamplingCalculation(_resamplingParam);
     _baselineParam   = baselineParam;
 }
Пример #9
0
        /// <summary>
        /// Batch Resampling Entry Function.
        /// </summary>
        /// <param name="clrParams"></param>
        /// <returns></returns>
        public ClrVariant BatResample(ClrParameters clrParams)
        {
            // Return value (Success: true, Failure: false)
            ClrVariant ret = new ClrVariant();

            // We initially set ret.prim.boolVal to false so that we can return a false
            // result easily using "return ret" if a failure condition occurs.
            ret.type = ClrVariant.DataType.BOOL;
            ret.obj  = false;

            // Call Manager
            int retValue = SpectrumCalculationManager.CommandlineSpecCalc(clrParams);

            if (retValue == 0)
            {
                ret.obj = true;     // Success.
            }
            else
            {
                ret.obj = false;    // Failure.
            }

            return(ret);
        }
Пример #10
0
 /// <summary>
 /// Update parameters.
 /// </summary>
 /// <param name="plotData">plot data</param>
 public void UpdateParam(ClrVariant clrVar)
 {
 }
Пример #11
0
        /// <summary>
        /// Create Baseline subtracted xic.
        /// </summary>
        /// <param name="pfiw">PluginFunctionItemWrapper</param>
        /// <param name="resamplingList">Resampling List</param>
        /// <param name="ms1List">MS1 List</param>
        /// <param name="spvw">SettingParameterValuesWrapper</param>
        /// <param name="subtractLowerXICList">output Subtracted lower XIC List</param>
        /// <param name="subtractHigherXICList">output Subtracted Highter XIC List</param>
        /// <param name="subtractHighestXICList">output Subtracted Highest XIC List</param>
        /// <returns>Result</returns>
        private bool CreateBaselineSubtractedXIC(
            PluginFunctionItemWrapper pfiw,
            List <ClrDataPoints> resamplingList,
            List <SpectrumWrapper> ms1List,
            SettingParameterValuesWrapper spvw,
            ref ClrDataPoints[] subtractLowerXICList,
            ref ClrDataPoints[] subtractHigherXICList,
            ref ClrDataPoints subtractHighestXICList
            )
        {
            uint resamplingLength = resamplingList[0].getLength();

            int lowerIndex  = (resamplingLength < int.MaxValue) ? (int)resamplingLength : int.MaxValue;
            int higherIndex = (0 < (int)(resamplingLength - lowerIndex)) ? (int)(resamplingLength - lowerIndex) : 0;

            subtractLowerXICList  = new ClrDataPoints[lowerIndex];
            subtractHigherXICList = new ClrDataPoints[higherIndex];

            for (uint i = 0; i < resamplingLength; i++)
            {
                //Update message.
                if (UpdateProgress != null)
                {
                    UpdateProgress(
                        PROGRESS_REMOVECONTAMINANT_PHASE.REMOVE_CONTAMINANT_PEAK,
                        (int)i, (int)resamplingLength);
                }

                //Cancel.
                if (StopFlag)
                {
                    break;
                }

                //Create XIC.
                ClrDataPoints pts = new ClrDataPoints();
                for (int j = 0; j < resamplingList.Count; j++)
                {
                    //Cancel.
                    if (StopFlag)
                    {
                        break;
                    }
                    pts.addPoint(ms1List[j].getRt(), resamplingList[j].getY(i));
                }
                //Cancel.
                if (StopFlag)
                {
                    pts.clearPoints();
                    pts.Dispose();
                    break;
                }

                //Baseline Subtraction
                ClrParameters param    = new ClrParameters();
                ClrDataPoints baseline = new ClrDataPoints();
                ClrPluginCallTool.setXYData(param, pts);
                ClrPluginCallTool.setBaseline(param, baseline);
                ClrPluginCallTool.setSettingValues(param, spvw);
                ClrVariant baselineResult = pfiw.getCall().invoke(param);

                //Cancel.
                if (StopFlag)
                {
                    param.Dispose();
                    baseline.clearPoints();
                    baseline.Dispose();
                    break;
                }

                //Resampling baseline.
                ClrDataPoints         subtracted      = new ClrDataPoints();
                ResamplingParameter   resamplingParam = new ResamplingParameter();
                ResamplingCalculation resamplingCalc  = new ResamplingCalculation(resamplingParam);
                resamplingParam.ResamplingMode = ResamplingParameter.SamplingMode.FIRST;
                resamplingParam.Interpolation  = _resamplingParam.Interpolation;
                resamplingParam.AddXYData(pts);
                resamplingParam.AddXYData(baseline);
                resamplingCalc.Execute();
                ClrDataPoints resampledBaseline = resamplingCalc.Result.GetResultData(1);

                for (uint j = 0; j < resampledBaseline.getLength(); j++)
                {
                    double intensity = Math.Max(pts.getY(j) - resampledBaseline.getY(j), 0);
                    subtracted.addPoint(pts.getX(j), intensity);
                }

                // Countermeasure to OutOfBoundsException.
                if (i < int.MaxValue)
                {
                    subtractLowerXICList[i] = subtracted;
                }
                else if (int.MaxValue < i && i < (uint)int.MaxValue * 2)
                {
                    subtractHigherXICList[i - int.MaxValue] = subtracted;
                }
                else
                {
                    subtractHighestXICList = subtracted;
                }
                resamplingParam.ClearXYDataList();
                resamplingCalc.Result.ClearXYDataList();
            }
            return(!StopFlag);
        }