/// <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); }
/// <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(); } }
/// <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); }
/** * @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); }
/// <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); }
/// <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; }
/// <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); }
/// <summary> /// Update parameters. /// </summary> /// <param name="plotData">plot data</param> public void UpdateParam(ClrVariant clrVar) { }
/// <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); }