From 3356784a79dddc457bd189159bfe9ee41fdd424a Mon Sep 17 00:00:00 2001 From: Michael Shortreed Date: Fri, 23 Feb 2024 10:10:42 -0600 Subject: [PATCH 1/3] added tic box plus other needed code --- MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml | 2 ++ MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs | 2 ++ MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs | 1 + MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs | 2 ++ 4 files changed, 7 insertions(+) diff --git a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml index 12a517324..43766a522 100644 --- a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml +++ b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml @@ -417,6 +417,8 @@ + + diff --git a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs index e39d52ea4..678e1392c 100644 --- a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs +++ b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml.cs @@ -189,6 +189,7 @@ private void UpdateFieldsFromTask(SearchTask task) CheckBoxNoOneHitWonders.IsChecked = task.SearchParameters.NoOneHitWonders; CheckBoxNoQuant.IsChecked = !task.SearchParameters.DoLabelFreeQuantification; CheckBoxLFQ.IsChecked = task.SearchParameters.DoLabelFreeQuantification; + CheckBoxUseSharedPeptidesForQuant.IsChecked = task.SearchParameters.UseSharedPeptidesForLFQ; CheckBoxMultiplex.IsChecked = task.SearchParameters.DoMultiplexQuantification; MultiplexComboBox.SelectedItem = task.SearchParameters.MultiplexModId ?? _defaultMultiplexType; // If Spectral Recovery is enabled @@ -626,6 +627,7 @@ private void SaveButton_Click(object sender, RoutedEventArgs e) TheTask.SearchParameters.DoParsimony = CheckBoxParsimony.IsChecked.Value; TheTask.SearchParameters.NoOneHitWonders = CheckBoxNoOneHitWonders.IsChecked.Value; TheTask.SearchParameters.DoLabelFreeQuantification = !CheckBoxNoQuant.IsChecked.Value; + TheTask.SearchParameters.UseSharedPeptidesForLFQ = CheckBoxUseSharedPeptidesForQuant.IsChecked.Value; TheTask.SearchParameters.DoSpectralRecovery = CheckBoxLFQwSpectralRecovery.IsChecked.Value; TheTask.SearchParameters.DoMultiplexQuantification = CheckBoxMultiplex.IsChecked.Value; TheTask.SearchParameters.MultiplexModId = (string)MultiplexComboBox.SelectedItem; diff --git a/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs b/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs index 057f4fb48..d396b1d28 100644 --- a/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs +++ b/MetaMorpheus/TaskLayer/SearchTask/PostSearchAnalysisTask.cs @@ -588,6 +588,7 @@ private void QuantificationAnalysis() ppmTolerance: Parameters.SearchParameters.QuantifyPpmTol, matchBetweenRunsPpmTolerance: Parameters.SearchParameters.QuantifyPpmTol, // If these tolerances are not equivalent, then MBR will falsely classify peptides found in the initial search as MBR peaks matchBetweenRuns: Parameters.SearchParameters.MatchBetweenRuns, + useSharedPeptidesForProteinQuant: Parameters.SearchParameters.UseSharedPeptidesForLFQ, silent: true, maxThreads: CommonParameters.MaxThreadsToUsePerFile); diff --git a/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs b/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs index c11c69212..080ee2c6d 100644 --- a/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs +++ b/MetaMorpheus/TaskLayer/SearchTask/SearchParameters.cs @@ -16,6 +16,7 @@ public SearchParameters() NoOneHitWonders = false; ModPeptidesAreDifferent = false; DoLabelFreeQuantification = true; + UseSharedPeptidesForLFQ = false; DoSpectralRecovery = false; QuantifyPpmTol = 5; SearchTarget = true; @@ -76,6 +77,7 @@ public SearchParameters() public bool KeepAllUniprotMods { get; set; } public bool DoLocalizationAnalysis { get; set; } public bool DoLabelFreeQuantification { get; set; } + public bool UseSharedPeptidesForLFQ { get; set; } public bool DoMultiplexQuantification { get; set; } public string MultiplexModId { get; set; } public bool DoSpectralRecovery { get; set; } From 8cd8eeabb032b76aea1466cfea210249715d9ab8 Mon Sep 17 00:00:00 2001 From: Michael Shortreed Date: Fri, 23 Feb 2024 10:20:48 -0600 Subject: [PATCH 2/3] add nics fix for custom fragmentation window xaml cs --- .../Views/CustomFragmentationWindow.xaml.cs | 67 ++++++++++++++++--- 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs b/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs index 23de0c9fb..16426bef8 100644 --- a/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs +++ b/MetaMorpheus/GUI/Views/CustomFragmentationWindow.xaml.cs @@ -15,14 +15,16 @@ namespace MetaMorpheusGUI /// public partial class CustomFragmentationWindow : Window { + private bool isRna; private ObservableCollection TheList { get; set; } public CustomFragmentationWindow() : this(null) { } - public CustomFragmentationWindow(List list) + public CustomFragmentationWindow(List list, bool isRna = false) { + this.isRna = isRna; InitializeComponent(); PopulateChoices(); @@ -30,10 +32,10 @@ public CustomFragmentationWindow(List list) if (list != null) { var res = TheList.Where(n => list.Contains(n.Type)); - foreach(var r in res) + foreach (var r in res) { r.IsSelected = true; - } + } } base.Closing += this.OnClosing; @@ -51,13 +53,54 @@ private void PopulateChoices() knownProductTypes.Remove(ProductType.Ycore); knownProductTypes.Remove(ProductType.Y); + if (isRna) + { + knownProductTypes.Remove(ProductType.aStar); + knownProductTypes.Remove(ProductType.aDegree); + knownProductTypes.Remove(ProductType.bAmmoniaLoss); + knownProductTypes.Remove(ProductType.yAmmoniaLoss); + knownProductTypes.Remove(ProductType.zPlusOne); + knownProductTypes.Remove(ProductType.zDot); + } + else + { + knownProductTypes.Remove(ProductType.aBaseLoss); + knownProductTypes.Remove(ProductType.aWaterLoss); + knownProductTypes.Remove(ProductType.bBaseLoss); + knownProductTypes.Remove(ProductType.cBaseLoss); + knownProductTypes.Remove(ProductType.cWaterLoss); + knownProductTypes.Remove(ProductType.d); + knownProductTypes.Remove(ProductType.dBaseLoss); + knownProductTypes.Remove(ProductType.dWaterLoss); + + knownProductTypes.Remove(ProductType.w); + knownProductTypes.Remove(ProductType.wBaseLoss); + knownProductTypes.Remove(ProductType.wWaterLoss); + knownProductTypes.Remove(ProductType.xBaseLoss); + knownProductTypes.Remove(ProductType.xWaterLoss); + knownProductTypes.Remove(ProductType.yBaseLoss); + knownProductTypes.Remove(ProductType.z); + knownProductTypes.Remove(ProductType.zBaseLoss); + knownProductTypes.Remove(ProductType.zWaterLoss); + } + foreach (ProductType productType in knownProductTypes) { - TheList.Add(new BoolStringClass { + var tooltip = isRna + ? Omics.Fragmentation.Oligo.DissociationTypeCollection + .GetRnaMassShiftFromProductType(productType).ToString("F4") + " Da; " + : DissociationTypeCollection.GetMassShiftFromProductType(productType).ToString("F4") + + " Da; " + + TerminusSpecificProductTypes.ProductTypeToFragmentationTerminus[productType] + + " terminus"; + + + TheList.Add(new BoolStringClass + { IsSelected = false, Type = productType, - ToolTip = DissociationTypeCollection.GetMassShiftFromProductType(productType).ToString("F4") + " Da; " - + TerminusSpecificProductTypes.ProductTypeToFragmentationTerminus[productType] + " terminus" }); + ToolTip = tooltip + }); } ProductTypeList.ItemsSource = TheList; @@ -66,7 +109,11 @@ private void PopulateChoices() private void Save_Click(object sender, RoutedEventArgs e) { var selectedIons = TheList.Where(p => p.IsSelected).Select(p => p.Type); - DissociationTypeCollection.ProductsFromDissociationType[DissociationType.Custom] = selectedIons.ToList(); + if (isRna) + throw new NotImplementedException("No RNA just yet"); + //Omics.Fragmentation.Oligo.DissociationTypeCollection.ProductsFromDissociationType[DissociationType.Custom] = selectedIons.ToList(); + else + DissociationTypeCollection.ProductsFromDissociationType[DissociationType.Custom] = selectedIons.ToList(); this.Visibility = Visibility.Hidden; } @@ -79,17 +126,17 @@ private void OnClosing(object sender, CancelEventArgs e) { // this window only closes when task is added if (this.Visibility == Visibility.Visible) - { + { this.Visibility = Visibility.Hidden; e.Cancel = true; } } } - public class BoolStringClass + public class BoolStringClass { public ProductType Type { get; set; } public bool IsSelected { get; set; } public string ToolTip { get; set; } } -} +} \ No newline at end of file From 6d7019fe0ee1ad21828a393036beb3c5e43785c3 Mon Sep 17 00:00:00 2001 From: Michael Shortreed Date: Fri, 23 Feb 2024 10:35:29 -0600 Subject: [PATCH 3/3] seeems to work lets seee --- MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml index 43766a522..a243c156f 100644 --- a/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml +++ b/MetaMorpheus/GUI/TaskWindows/SearchTaskWindow.xaml @@ -417,8 +417,8 @@ - - + +