private void AddDigestionTask_Click(object sender, RoutedEventArgs e)
        {
            // disable button so that no more tasks are added
            AddDigestionTask.IsEnabled   = false;
            ResetDigestionTask.IsEnabled = true;

            // disable fields to show that those parameters are used for the task
            ProteaseSelectedForUse.IsEnabled  = false;
            MissedCleavagesTextBox.IsEnabled  = false;
            MinPeptideLengthTextBox.IsEnabled = false;
            MaxPeptideLengthTextBox.IsEnabled = false;

            DigestionTask task = new DigestionTask();

            UpdateFieldsFromUser(task);
            AddTaskToCollection(task);
            OutputFolderTextBox.IsEnabled = true;

            // output folder
            if (string.IsNullOrWhiteSpace(OutputFolderTextBox.Text))
            {
                var pathOfFirstSpectraFile = System.IO.Path.GetDirectoryName(ProteinDbObservableCollection.First().FilePath);
                OutputFolderTextBox.Text = System.IO.Path.Combine(pathOfFirstSpectraFile, @"$DATETIME");
            }

            var    startTimeForAllFilenames = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss", CultureInfo.InvariantCulture);
            string outputFolder             = OutputFolderTextBox.Text.Replace("$DATETIME", startTimeForAllFilenames);

            OutputFolderTextBox.Text    = outputFolder;
            UserParameters.OutputFolder = outputFolder;
        }
        private void AddDigestionTask_Click(object sender, RoutedEventArgs e)
        {
            DigestionTask task = new DigestionTask();

            UpdateFieldsFromUser(task);
            AddTaskToCollection(task);
        }
        private void UpdateFieldsFromUser(DigestionTask run)
        {
            run.DigestionParameters.NumberOfMissedCleavagesAllowed   = Convert.ToInt32(MissedCleavagesTextBox.Text);
            run.DigestionParameters.MinPeptideLengthAllowed          = Convert.ToInt32(MinPeptideLengthTextBox.Text);
            run.DigestionParameters.MaxPeptideLengthAllowed          = Convert.ToInt32(MaxPeptideLengthTextBox.Text);
            run.DigestionParameters.TreatModifiedPeptidesAsDifferent = Convert.ToBoolean(ModPepsAreUnique.IsChecked);
            List <Protease> proteases = new List <Protease>();

            foreach (var protease in ProteaseSelectedForUse.SelectedItems)
            {
                proteases.Add(ProteaseDictionary.Dictionary[protease.ToString()]);
            }
            run.DigestionParameters.ProteasesForDigestion = proteases;
        }
Exemple #4
0
        public static void SingleDatabase()
        {
            Loaders.LoadElements();
            string subFolder = Path.Combine(TestContext.CurrentContext.TestDirectory, @"DigestionTest");

            Directory.CreateDirectory(subFolder);

            string         databasePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "Databases", "TestDatabase_1.fasta");
            DbForDigestion database     = new DbForDigestion(databasePath);

            Parameters param = new Parameters();

            param.MinPeptideLengthAllowed          = 1;
            param.MaxPeptideLengthAllowed          = 100;
            param.NumberOfMissedCleavagesAllowed   = 0;
            param.TreatModifiedPeptidesAsDifferent = false;
            param.ProteasesForDigestion.Add(ProteaseDictionary.Dictionary["trypsin"]);
            param.OutputFolder = subFolder;

            DigestionTask digestion = new DigestionTask();

            digestion.DigestionParameters = param;
            var digestionResults = digestion.RunSpecific(subFolder, new List <DbForDigestion>()
            {
                database
            });

            Assert.AreEqual(1, digestionResults.PeptideByFile.Count);
            Assert.AreEqual(1, digestionResults.PeptideByFile.Values.Count);
            Assert.AreEqual(2, digestionResults.PeptideByFile[database.FileName][param.ProteasesForDigestion.First().Name].Count);
            foreach (var entry in digestionResults.PeptideByFile[database.FileName][param.ProteasesForDigestion.First().Name])
            {
                if (entry.Key.Accession == "testProtein_1")
                {
                    Assert.AreEqual(26, entry.Value.Count);

                    Assert.AreEqual("MSFVNGNEIFTAAR", entry.Value[0].BaseSequence);
                    Assert.IsFalse(entry.Value[0].Unique);
                    Assert.IsFalse(entry.Value[0].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[0].SeqOnlyInThisDb);

                    Assert.AreEqual("QGHYAVGAFNTNNLEWTR", entry.Value[1].BaseSequence);
                    Assert.IsTrue(entry.Value[1].Unique);
                    Assert.IsTrue(entry.Value[1].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[1].SeqOnlyInThisDb);

                    Assert.AreEqual("AILK", entry.Value[2].BaseSequence);
                    Assert.IsTrue(entry.Value[2].Unique);
                    Assert.IsTrue(entry.Value[2].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[2].SeqOnlyInThisDb);

                    Assert.AreEqual("AAQEK", entry.Value[3].BaseSequence);
                    Assert.IsFalse(entry.Value[3].Unique);
                    Assert.IsFalse(entry.Value[3].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[3].SeqOnlyInThisDb);

                    Assert.AreEqual("NTPVLIQVSMGAAK", entry.Value[4].BaseSequence);
                    Assert.IsFalse(entry.Value[4].Unique);
                    Assert.IsFalse(entry.Value[4].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[4].SeqOnlyInThisDb);

                    Assert.AreEqual("YMGDYK", entry.Value[5].BaseSequence);
                    Assert.IsFalse(entry.Value[5].Unique);
                    Assert.IsFalse(entry.Value[5].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[5].SeqOnlyInThisDb);

                    Assert.AreEqual("LVK", entry.Value[6].BaseSequence);
                    Assert.IsFalse(entry.Value[6].Unique);
                    Assert.IsFalse(entry.Value[6].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[6].SeqOnlyInThisDb);

                    Assert.AreEqual("TLVEEEMR", entry.Value[7].BaseSequence);
                    Assert.IsTrue(entry.Value[7].Unique);
                    Assert.IsTrue(entry.Value[7].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[7].SeqOnlyInThisDb);
                }
                else if (entry.Key.Accession == "testProtein_2")
                {
                    Assert.AreEqual(27, entry.Value.Count);

                    Assert.AreEqual("MSFVNGNEIFTAAR", entry.Value[0].BaseSequence);
                    Assert.IsFalse(entry.Value[0].Unique);
                    Assert.IsFalse(entry.Value[0].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[0].SeqOnlyInThisDb);

                    Assert.AreEqual("QGHPPGAFNTNNLEWTR", entry.Value[1].BaseSequence);
                    Assert.IsTrue(entry.Value[1].Unique);
                    Assert.IsTrue(entry.Value[1].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[1].SeqOnlyInThisDb);

                    Assert.AreEqual("AIVK", entry.Value[2].BaseSequence);
                    Assert.IsTrue(entry.Value[2].Unique);
                    Assert.IsTrue(entry.Value[2].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[2].SeqOnlyInThisDb);

                    Assert.AreEqual("AAQEK", entry.Value[3].BaseSequence);
                    Assert.IsFalse(entry.Value[3].Unique);
                    Assert.IsFalse(entry.Value[3].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[3].SeqOnlyInThisDb);

                    Assert.AreEqual("NTPVLIQVSMGAAK", entry.Value[4].BaseSequence);
                    Assert.IsFalse(entry.Value[4].Unique);
                    Assert.IsFalse(entry.Value[4].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[4].SeqOnlyInThisDb);

                    Assert.AreEqual("YMGDYK", entry.Value[5].BaseSequence);
                    Assert.IsFalse(entry.Value[5].Unique);
                    Assert.IsFalse(entry.Value[5].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[5].SeqOnlyInThisDb);

                    Assert.AreEqual("LVK", entry.Value[6].BaseSequence);
                    Assert.IsFalse(entry.Value[6].Unique);
                    Assert.IsFalse(entry.Value[6].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[6].SeqOnlyInThisDb);

                    Assert.AreEqual("TLVEPPMR", entry.Value[7].BaseSequence);
                    Assert.IsTrue(entry.Value[7].Unique);
                    Assert.IsTrue(entry.Value[7].UniqueAllDbs);
                    Assert.IsTrue(entry.Value[7].SeqOnlyInThisDb);
                }
            }


            Directory.Delete(subFolder, true);
        }