Exemple #1
0
 private bool Equals(Enzyme other)
 {
     return(base.Equals(other) &&
            string.Equals(CleavageC, other.CleavageC) &&
            string.Equals(RestrictC, other.RestrictC) &&
            string.Equals(CleavageN, other.CleavageN) &&
            string.Equals(RestrictN, other.RestrictN));
 }
Exemple #2
0
        /*
        public IEnumerable<PepV01> GetPeptides(SrmSettings settings, bool useFilter)
        {
            PeptideSettings pepSettings = settings.PeptideSettings;
            Enzyme enzyme = pepSettings.Enzyme;
            DigestSettings digest = pepSettings.DigestSettings;
            IPeptideFilter filter = (useFilter ? pepSettings.Filter : PeptideFilter.UNFILTERED);
            SequenceMassCalc massCalc = settings.GetPrecursorCalc(IsotopeLabelType.none);
            RetentionTimeRegression rtRegression = pepSettings.Prediction.RetentionTime;

            IEnumerable<PepV01> peptides = PeptideList ?
                                                            GetPeptideList(enzyme) : enzyme.Digest(this, digest, filter);

            foreach (PepV01 peptide in peptides)
            {
                peptide.CalcMass(massCalc);
                peptide.CalcRetentionTime(rtRegression);
                yield return peptide;
            }
        }
        */
        /// <summary>
        /// Get the list of peptides from a <see cref="FastaSeqV01"/> where
        /// <see cref="PeptideList"/> is true.
        /// </summary>
        /// <param name="enzyme">The enzyme used to detect missed cleavages in the peptides</param>
        /// <returns>An enumerable list of <see cref="PepV01"/></returns>
        public IEnumerable<PepV01> GetPeptideList(Enzyme enzyme)
        {
            if (!PeptideList)
                throw new InvalidOperationException(Resources.FastaSeqV01_GetPeptideList_Attempt_to_get_peptide_list_from_uncleaved_FASTA_sequence);

            int begin = 1;
            int end = begin;
            while (end < AA.Length - 1)
            {
                end = AA.IndexOf(PEPTIDE_SEPARATOR, begin);
                string seqPep = AA.Substring(begin, end - begin);
                int missedCleavages = enzyme.CountCleavagePoints(seqPep);

                yield return new PepV01(this, begin, end, missedCleavages);

                begin = end + 1;
            }
        }
Exemple #3
0
 private bool Equals(Enzyme other)
 {
     return base.Equals(other) &&
         string.Equals(CleavageC, other.CleavageC) &&
         string.Equals(RestrictC, other.RestrictC) &&
         string.Equals(CleavageN, other.CleavageN) &&
         string.Equals(RestrictN, other.RestrictN);
 }
 public PeptideSettings ChangeEnzyme(Enzyme prop)
 {
     return ChangeProp(ImClone(this), im => im.Enzyme = prop);
 }
Exemple #5
0
        public void OkDialog()
        {
            var helper = new MessageBoxHelper(this);

            string name;
            if (!helper.ValidateNameTextBox(textName, out name))
                return;

            string cleavageC;
            if (!helper.ValidateAATextBox(textCleavage, false, out cleavageC))
                return;
            string restrictC;
            if (!helper.ValidateAATextBox(textRestrict, true, out restrictC))
                return;

            string cleavageN;
            string restrictN;
            if (comboDirection.SelectedIndex == 2)
            {
                if (!helper.ValidateAATextBox(textCleavageN, false, out cleavageN))
                    return;
                if (!helper.ValidateAATextBox(textRestrictN, true, out restrictN))
                    return;
            }
            else if (comboDirection.SelectedIndex == 1)
            {
                cleavageN = cleavageC;
                cleavageC = null;
                restrictN = restrictC;
                restrictC = null;
            }
            else
            {
                cleavageN = null;
                restrictN = null;
            }

            Enzyme enzyme = new Enzyme(name, cleavageC, restrictC, cleavageN, restrictN);
            if (_enzyme == null && _existing.Contains(enzyme))
            {
                helper.ShowTextBoxError(textName, Resources.EditEnzymeDlg_OnClosing_The_enzyme__0__already_exists, name);
                return;
            }

            _enzyme = enzyme;
            DialogResult = DialogResult.OK;
        }
 public PeptideSettings(Enzyme enzyme,
     DigestSettings digestSettings,
     PeptidePrediction prediction,
     PeptideFilter filter,
     PeptideLibraries libraries,
     PeptideModifications modifications,
     PeptideIntegration integration,
     BackgroundProteome backgroundProteome
     )
 {
     Enzyme = enzyme;
     DigestSettings = digestSettings;
     Prediction = prediction;
     Filter = filter;
     Libraries = libraries;
     Modifications = modifications;
     Integration = integration;
     BackgroundProteome = backgroundProteome;
     Quantification = QuantificationSettings.DEFAULT;
 }
 public ProteaseImpl(Enzyme enzyme)
 {
     _enzyme = enzyme;
 }
 public Digestion Digest(Enzyme enzyme, DigestSettings digestSettings, ILoadMonitor loader)
 {
     ProgressStatus progressStatus = new ProgressStatus(string.Format(Resources.BackgroundProteomeSpec_Digest_Digesting__0__, enzyme.Name));
     using (var proteomeDb = OpenProteomeDb())
     {
         return proteomeDb.Digest(new ProteaseImpl(enzyme),
                                     (s, i) =>
                                     {
                                         loader.UpdateProgress(progressStatus.ChangePercentComplete(i));
                                         return !loader.IsCanceled;
                                     });
     }
 }
Exemple #9
0
 public PeptideGroupBuilder(FastaSequence fastaSequence, SrmSettings settings)
 {
     _activeFastaSeq = fastaSequence;
     _autoManageChildren = true;
     if (fastaSequence != null)
     {
         BaseName = Name = fastaSequence.Name;
         Description = fastaSequence.Description;
         Alternatives = fastaSequence.Alternatives.ToArray();
     }
     _settings = settings;
     _enzyme = _settings.PeptideSettings.Enzyme;
     _peptides = new List<PeptideDocNode>();
     _charges = new Dictionary<int, int>();
     _groupLibTriples = new List<TransitionGroupLibraryIrtTriple>();
     _activeTransitionInfos = new List<ExTransitionInfo>();
     _irtPeptides = new List<MeasuredRetentionTime>();
     _librarySpectra = new List<SpectrumMzInfo>();
     _activeLibraryIntensities = new List<SpectrumPeaksInfo.MI>();
     _peptideGroupErrorInfo = new List<TransitionImportErrorInfo>();
     _activeModifiedSequence = null;
 }
        private static void TestEditEnzymeDlg()
        {
            var enzymeList = Settings.Default.EnzymeList;
            Enzyme enzymeExpect = new Enzyme("Trypsin Test", "KR", "P");
            Enzyme enzyme = null;
            RunDlg<EditEnzymeDlg>(() => { enzyme = enzymeList.EditItem(SkylineWindow, null, enzymeList, null); },
                editEnzymeDlg =>
                    {
                        editEnzymeDlg.EnzymeName = enzymeExpect.Name;
                        editEnzymeDlg.Cleavage = enzymeExpect.CleavageC;
                        editEnzymeDlg.Restrict = enzymeExpect.RestrictC;
                        editEnzymeDlg.OkDialog();
                    });
            Assert.AreEqual(enzymeExpect, enzyme);

            RunDlg<EditEnzymeDlg>(() => { enzyme = enzymeList.EditItem(SkylineWindow, null, enzymeList, null); },
                editEnzymeDlg =>
                {
                    editEnzymeDlg.EnzymeName = enzymeExpect.Name;
                    editEnzymeDlg.Type = SequenceTerminus.N;
                    editEnzymeDlg.Cleavage = enzymeExpect.CleavageC;
                    editEnzymeDlg.Restrict = enzymeExpect.RestrictC;
                    editEnzymeDlg.OkDialog();
                });
            Assert.AreNotEqual(enzymeExpect, enzyme);
            Assert.AreEqual(enzymeExpect.CleavageC, enzyme.CleavageN);
            Assert.AreEqual(enzymeExpect.RestrictC, enzyme.RestrictN);
            Assert.IsTrue(enzyme.IsNTerm);

            Enzyme enzymeN = null;
            RunDlg<EditEnzymeDlg>(() => { enzymeN = enzymeList.EditItem(SkylineWindow, enzyme, enzymeList, null); },
                editEnzymeDlg =>
                {
                    Assert.AreEqual(enzyme.Name, editEnzymeDlg.EnzymeName);
                    Assert.AreEqual(enzyme.CleavageN, editEnzymeDlg.Cleavage);
                    Assert.AreEqual(enzyme.RestrictN, editEnzymeDlg.Restrict);
                    Assert.AreEqual(SequenceTerminus.N, editEnzymeDlg.Type);
                    editEnzymeDlg.OkDialog();
                });
            Assert.AreEqual(enzyme, enzymeN);

            RunDlg<EditEnzymeDlg>(() => { enzyme = enzymeList.EditItem(SkylineWindow, enzymeList.CopyItem(enzymeExpect), enzymeList, null); },
                editEnzymeDlg =>
                {
                    Assert.AreEqual(string.Empty, editEnzymeDlg.EnzymeName);
                    Assert.AreEqual(enzymeExpect.CleavageC, editEnzymeDlg.Cleavage);
                    Assert.AreEqual(enzymeExpect.RestrictC, editEnzymeDlg.Restrict);
                    Assert.AreEqual(SequenceTerminus.C, editEnzymeDlg.Type);
                    editEnzymeDlg.EnzymeName = enzymeExpect.Name;
                    editEnzymeDlg.OkDialog();
                });
            Assert.AreEqual(enzymeExpect, enzyme);

            Enzyme enzymeBoth = new Enzyme("Bidirectional", "M", null, "K", null);
            RunDlg<EditEnzymeDlg>(() => { enzyme = enzymeList.EditItem(SkylineWindow, null, enzymeList, null); },
                editEnzymeDlg =>
                {
                    editEnzymeDlg.EnzymeName = enzymeBoth.Name;
                    editEnzymeDlg.Type = null;
                    editEnzymeDlg.Cleavage = enzymeBoth.CleavageC;
                    editEnzymeDlg.CleavageN = enzymeBoth.CleavageN;
                    editEnzymeDlg.OkDialog();
                });
            Assert.AreEqual(enzymeBoth, enzyme);
            RunDlg<EditEnzymeDlg>(() => { enzyme = enzymeList.EditItem(SkylineWindow, enzymeBoth, enzymeList, null); },
                editEnzymeDlg =>
                {
                    Assert.IsNull(editEnzymeDlg.Type);
                    Assert.AreEqual(enzymeBoth.CleavageC, editEnzymeDlg.Cleavage);
                    Assert.AreEqual(string.Empty, editEnzymeDlg.Restrict);
                    Assert.AreEqual(enzymeBoth.CleavageN, editEnzymeDlg.CleavageN);
                    Assert.AreEqual(string.Empty, editEnzymeDlg.RestrictN);
                    editEnzymeDlg.OkDialog();
                });
            Assert.AreEqual(enzymeBoth, enzyme);

            // Test error messages
            {
                var editEnzymeDlg = ShowDialog<EditEnzymeDlg>(() => enzymeList.EditItem(SkylineWindow, null, enzymeList, null));
                RunDlg<MessageDlg>(editEnzymeDlg.OkDialog, messageDlg =>
                {
                    AssertEx.AreComparableStrings(Resources.MessageBoxHelper_ValidateNameTextBox__0__cannot_be_empty,
                        messageDlg.Message, 1);
                    messageDlg.OkDialog();
                });

                enzyme = enzymeList.First();
                RunUI(() => editEnzymeDlg.EnzymeName = enzyme.Name);
                RunDlg<MessageDlg>(editEnzymeDlg.OkDialog, messageDlg =>
                {
                    AssertEx.AreComparableStrings(Resources.EditEnzymeDlg_ValidateAATextBox__0__must_contain_at_least_one_amino_acid,
                        messageDlg.Message, 1);
                    messageDlg.OkDialog();
                });

                const string badAA = "Z";
                RunUI(() => editEnzymeDlg.Cleavage = enzyme.CleavageC + badAA);
                RunDlg<MessageDlg>(editEnzymeDlg.OkDialog, messageDlg =>
                {
                    Assert.AreEqual(string.Format(Resources.EditEnzymeDlg_ValidateAATextBox_The_character__0__is_not_a_valid_amino_acid, badAA),
                        messageDlg.Message);
                    messageDlg.OkDialog();
                });
                RunUI(() =>
                {
                    editEnzymeDlg.Cleavage = enzyme.CleavageC;
                    editEnzymeDlg.Restrict = badAA;
                });
                RunDlg<MessageDlg>(editEnzymeDlg.OkDialog, messageDlg =>
                {
                    Assert.AreEqual(string.Format(Resources.EditEnzymeDlg_ValidateAATextBox_The_character__0__is_not_a_valid_amino_acid, badAA),
                        messageDlg.Message);
                    messageDlg.OkDialog();
                });
                RunUI(() =>
                {
                    editEnzymeDlg.Type = null;
                    editEnzymeDlg.Restrict = enzyme.RestrictC;
                });
                RunDlg<MessageDlg>(editEnzymeDlg.OkDialog, messageDlg =>
                {
                    AssertEx.AreComparableStrings(Resources.EditEnzymeDlg_ValidateAATextBox__0__must_contain_at_least_one_amino_acid,
                        messageDlg.Message, 1);
                    messageDlg.OkDialog();
                });
                RunUI(() =>
                {
                    editEnzymeDlg.CleavageN = enzyme.CleavageC;
                    editEnzymeDlg.RestrictN = badAA;
                });
                RunDlg<MessageDlg>(editEnzymeDlg.OkDialog, messageDlg =>
                {
                    Assert.AreEqual(string.Format(Resources.EditEnzymeDlg_ValidateAATextBox_The_character__0__is_not_a_valid_amino_acid, badAA),
                        messageDlg.Message);
                    messageDlg.OkDialog();
                });

                RunUI(() => editEnzymeDlg.Type = SequenceTerminus.C);
                RunDlg<MessageDlg>(editEnzymeDlg.OkDialog, messageDlg =>
                {
                    AssertEx.AreComparableStrings(Resources.EditEnzymeDlg_OnClosing_The_enzyme__0__already_exists,
                        messageDlg.Message, 1);
                    messageDlg.AcceptButton.PerformClick();
                });

                RunUI(editEnzymeDlg.CancelButton.PerformClick);
                WaitForClosedForm(editEnzymeDlg);
            }
        }