コード例 #1
0
ファイル: PasteDlg.cs プロジェクト: lgatto/proteowizard
 public MoleculeInfo(string name, string formula, int charge, double mz, double monoMass, double averageMass,
     IsotopeLabelType isotopeLabelType,
     ExplicitRetentionTimeInfo explicitRetentionTime,
     ExplicitTransitionGroupValues explicitTransitionGroupValues,
     string note)
 {
     Name = name;
     Formula = formula;
     Charge = charge;
     Mz = mz;
     MonoMass = monoMass;
     AverageMass = averageMass;
     IsotopeLabelType = isotopeLabelType;
     ExplicitRetentionTime = explicitRetentionTime;
     ExplicitTransitionGroupValues = explicitTransitionGroupValues;
     Note = note;
 }
コード例 #2
0
        /// <summary>
        /// For creating at the Molecule level (create molecule and first transition group) or modifying at the transition level
        /// Null values imply "don't ask user for this"
        /// </summary>
        public EditCustomMoleculeDlg(SkylineWindow parent, string title, Identity initialId, IEnumerable<Identity> existingIds, int minCharge, int maxCharge,
            SrmSettings settings, string defaultName, string defaultFormula, int? defaultCharge, ExplicitTransitionGroupValues explicitAttributes,
            ExplicitRetentionTimeInfo explicitRetentionTime,
            IsotopeLabelType defaultIsotopeLabelType, bool enableFormulaEditing = true)
        {
            Text = title;
            _parent = parent;
            _initialId = initialId;
            _existingIds = existingIds;
            _minCharge = minCharge;
            _maxCharge = maxCharge;
            _transitionSettings = settings != null ? settings.TransitionSettings : null;
            _peptideSettings = settings != null ? settings.PeptideSettings : null;

            InitializeComponent();

            NameText = defaultName;
            var needOptionalValuesBox = explicitRetentionTime != null || explicitAttributes != null;
            var heightDelta = 0;

            if (explicitAttributes == null)
            {
                ResultExplicitTransitionGroupValues = null;
                labelCollisionEnergy.Visible = false;
                textCollisionEnergy.Visible = false;
                labelSLens.Visible = false;
                textSLens.Visible = false;
                labelCompensationVoltage.Visible = false;
                textCompensationVoltage.Visible = false;
                labelConeVoltage.Visible = false;
                textConeVoltage.Visible = false;
                labelDriftTimeHighEnergyOffsetMsec.Visible = false;
                textDriftTimeHighEnergyOffsetMsec.Visible = false;
                labelDriftTimeMsec.Visible = false;
                textDriftTimeMsec.Visible = false;
                if (needOptionalValuesBox)
                {
                    // We blanked out everything but the retention time
                    var vmargin = labelRetentionTime.Location.Y;
                    var newHeight = textRetentionTime.Location.Y + textRetentionTime.Height +  vmargin;
                    heightDelta = groupBoxOptionalValues.Height - newHeight;
                    groupBoxOptionalValues.Height = newHeight;
                }
            }
            else
            {
                ResultExplicitTransitionGroupValues = new ExplicitTransitionGroupValues(explicitAttributes);
            }

            string labelAverage = defaultCharge.HasValue
                ? Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg_A_verage_m_z_
                : Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg_A_verage_mass_;
            string labelMono = defaultCharge.HasValue
                ? Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg__Monoisotopic_m_z_
                : Resources.EditCustomMoleculeDlg_EditCustomMoleculeDlg__Monoisotopic_mass_;

            _formulaBox =
                new FormulaBox(Resources.EditMeasuredIonDlg_EditMeasuredIonDlg_Ion__chemical_formula_,
                    labelAverage,
                    labelMono,
                    defaultCharge)
                {
                    Formula = defaultFormula,
                    Location = new Point(textName.Left, textName.Bottom + 12)
                };
            Controls.Add(_formulaBox);
            _formulaBox.TabIndex = 2;
            _formulaBox.Enabled = enableFormulaEditing;
            bool needCharge = defaultCharge.HasValue;
            textCharge.Visible = labelCharge.Visible = needCharge;
            Charge = defaultCharge ?? 0;
            if (needOptionalValuesBox && !needCharge)
            {
                heightDelta += groupBoxOptionalValues.Location.Y - labelCharge.Location.Y;
                groupBoxOptionalValues.Location = new Point(groupBoxOptionalValues.Location.X, labelCharge.Location.Y);
            }
            if (explicitRetentionTime == null)
            {
                // Don't ask user for retetention times
                RetentionTime = null;
                RetentionTimeWindow = null;
                labelRetentionTime.Visible = false;
                labelRetentionTimeWindow.Visible = false;
                textRetentionTime.Visible = false;
                textRetentionTimeWindow.Visible = false;
                if (needOptionalValuesBox)
                {
                    var rtHeight = labelCollisionEnergy.Location.Y - labelRetentionTimeWindow.Location.Y;
                    groupBoxOptionalValues.Height -= rtHeight;
                    heightDelta += rtHeight;
                }
            }
            else
            {
                RetentionTime = explicitRetentionTime.RetentionTime;
                RetentionTimeWindow = explicitRetentionTime.RetentionTimeWindow;
            }
            if (!needOptionalValuesBox)
            {
                groupBoxOptionalValues.Visible = false;
                heightDelta = groupBoxOptionalValues.Height;
            }
            // Initialize label
            if (settings != null && defaultIsotopeLabelType != null)
            {
                _driverLabelType = new PeptideSettingsUI.LabelTypeComboDriver(comboIsotopeLabelType,
                    settings.PeptideSettings.Modifications, null, null, null, null)
                {
                    SelectedName = defaultIsotopeLabelType.Name
                };
            }
            else
            {
                comboIsotopeLabelType.Visible = false;
                labelIsotopeLabelType.Visible = false;
            }
            Height -= heightDelta;
        }
コード例 #3
0
 public SrmDocument ConvertToExplicitRetentionTimes(SrmDocument document, double timeOffset, double winOffset)
 {
     for (bool changing = true; changing;)
     {
         changing = false;
         foreach (var peptideGroupDocNode in document.MoleculeGroups)
         {
             var pepGroupPath = new IdentityPath(IdentityPath.ROOT, peptideGroupDocNode.Id);
             foreach (var nodePep in peptideGroupDocNode.Molecules)
             {
                 var pepPath = new IdentityPath(pepGroupPath, nodePep.Id);
                 var rt = nodePep.AverageMeasuredRetentionTime;
                 if (rt.HasValue)
                 {
                     double? rtWin = document.Settings.PeptideSettings.Prediction.MeasuredRTWindow;
                     var explicitRetentionTimeInfo = new ExplicitRetentionTimeInfo(rt.Value+timeOffset, rtWin+winOffset);
                     if (!explicitRetentionTimeInfo.Equals(nodePep.ExplicitRetentionTime))
                     {
                         document = (SrmDocument)document.ReplaceChild(pepPath.Parent, nodePep.ChangeExplicitRetentionTime(explicitRetentionTimeInfo));
                         changing = true;
                         break;
                     }
                 }
             }
             if (changing)
                 break;
         }
     }
     return document;
 }
コード例 #4
0
ファイル: PeptideDocNode.cs プロジェクト: lgatto/proteowizard
 public PeptideDocNode ChangeExplicitRetentionTime(ExplicitRetentionTimeInfo prop)
 {
     return ChangeProp(ImClone(this), im => im.ExplicitRetentionTime = prop);
 }
コード例 #5
0
 /// <summary>
 /// For modifying at the Molecule level
 /// </summary>
 public EditCustomMoleculeDlg(SkylineWindow parent, string title,
     SrmSettings settings, string defaultName, string defaultFormula, ExplicitRetentionTimeInfo explicitRetentionTime)
     : this(parent, title, null, null, 0, 0, null, defaultName, defaultFormula, null, null, explicitRetentionTime, null, false)
 {
 }
コード例 #6
0
ファイル: PeptideDocNode.cs プロジェクト: lgatto/proteowizard
 // Note: this potentially returns a node with a different ID, which has to be Inserted rather than Replaced
 public PeptideDocNode ChangeCustomIonValues(SrmSettings settings, DocNodeCustomIon customIon, ExplicitRetentionTimeInfo explicitRetentionTime)
 {
     var newPeptide = new Peptide(customIon);
     Helpers.AssignIfEquals(ref newPeptide, Peptide);
     if (Equals(Peptide, newPeptide))
     {
         return Equals(ExplicitRetentionTime, explicitRetentionTime) ? this : ChangeExplicitRetentionTime(explicitRetentionTime);
     }
     else
     {
         // ID Changes impact all children, because IDs have back pointers to their parents
         var children = new List<TransitionGroupDocNode>();
         foreach (var nodeGroup in TransitionGroups)
         {
             children.Add(nodeGroup.UpdateSmallMoleculeTransitionGroup(newPeptide, null, settings));
         }
         return new PeptideDocNode(newPeptide, settings, ExplicitMods, SourceKey, explicitRetentionTime, children.ToArray(), AutoManageChildren);
     }
 }
コード例 #7
0
ファイル: PeptideDocNode.cs プロジェクト: lgatto/proteowizard
        public PeptideDocNode(Peptide id,
            SrmSettings settings,
            ExplicitMods mods,
            ModifiedSequenceMods sourceKey,
            string standardType,
            int? rank,
            ExplicitRetentionTimeInfo explicitRetentionTimeInfo,
            Annotations annotations,
            Results<PeptideChromInfo> results,
            TransitionGroupDocNode[] children,
            bool autoManageChildren)
            : base(id, annotations, children, autoManageChildren)
        {
            ExplicitMods = mods;
            SourceKey = sourceKey;
            GlobalStandardType = standardType;
            Rank = rank;
            ExplicitRetentionTime = explicitRetentionTimeInfo;
            Results = results;
            BestResult = CalcBestResult();

            if (settings != null)
            {
                var calcPre = settings.GetPrecursorCalc(IsotopeLabelType.light, ExplicitMods);
                ModifiedSequence = calcPre.GetModifiedSequence(Peptide.Sequence, false);
                ModifiedSequenceDisplay = calcPre.GetModifiedSequence(Peptide.Sequence, true);
            }
        }
コード例 #8
0
ファイル: PeptideDocNode.cs プロジェクト: lgatto/proteowizard
 public PeptideDocNode(Peptide id, SrmSettings settings, ExplicitMods mods, ModifiedSequenceMods sourceKey, ExplicitRetentionTimeInfo explicitRetentionTime,
     TransitionGroupDocNode[] children, bool autoManageChildren)
     : this(id, settings, mods, sourceKey, null, null, explicitRetentionTime, Annotations.EMPTY, null, children, autoManageChildren)
 {
 }
コード例 #9
0
ファイル: PeptideDocNode.cs プロジェクト: lgatto/proteowizard
 public PeptideDocNode(Peptide id, ExplicitMods mods = null, ExplicitRetentionTimeInfo explicitRetentionTime = null)
     : this(id, null, mods, null, null, null, explicitRetentionTime, Annotations.EMPTY, null, new TransitionGroupDocNode[0], true)
 {
 }
コード例 #10
0
ファイル: PeptideDocNode.cs プロジェクト: lgatto/proteowizard
 public bool Equals(ExplicitRetentionTimeInfo other)
 {
     if (ReferenceEquals(null, other)) return false;
     if (ReferenceEquals(this, other)) return true;
     return Equals(other.RetentionTime, RetentionTime) &&
         Equals(other.RetentionTimeWindow, RetentionTimeWindow);
 }