public void Add(PeptideDocNode nodePep, ChromDataSet chromDataSet) { // If this is coming from the same PeptideDocNode, then just add it, otherwise // a merged copy of the PeptideDocNode needs to be created that includes // this new precursor. if (ReferenceEquals(nodePep, NodePep)) { if (!FindAndMerge(chromDataSet)) { // Not necessary to update children, because found in peptide AddDataSet(chromDataSet); } else { // Merging causes a change in the children UpdatePepChildren(); } } // Unless we already have one of these else if (!HasEquivalentGroupNode(chromDataSet.NodeGroup)) { if (!FindAndMerge(chromDataSet)) { AddDataSet(chromDataSet); } // Change children no matter what, since this was not in the peptide UpdatePepChildren(); } // Important not to lose iRT type if (nodePep.GlobalStandardType == PeptideDocNode.STANDARD_TYPE_IRT && NodePep.GlobalStandardType != PeptideDocNode.STANDARD_TYPE_IRT) { NodePep = NodePep.ChangeStandardType(PeptideDocNode.STANDARD_TYPE_IRT); } }
private bool FindAndMerge(ChromDataSet chromDataSet) { for (int i = 0; i < DataSets.Count; i++) { var nodeGroup = DataSets[i].NodeGroup; if (AreEquivalentGroups(nodeGroup, chromDataSet.NodeGroup)) { DataSets[i].NodeGroup = nodeGroup.Merge(chromDataSet.NodeGroup); DataSets[i].Merge(chromDataSet); return(true); } } return(false); }
public PeptideChromDataPeak(ChromDataSet data, ChromDataPeakList peakGroup) { Data = data; PeakGroup = peakGroup; }
private void AddDataSet(ChromDataSet chromDataSet) { Assume.IsTrue(DataSets.Count == 0 || DataSets[0].FirstKey.OptionalMaxTime == chromDataSet.FirstKey.OptionalMaxTime); DataSets.Add(chromDataSet); }
private static IsotopeLabelType GetSafeLabelType(ChromDataSet dataSet) { return(dataSet.NodeGroup != null ? dataSet.NodeGroup.TransitionGroup.LabelType : null); }
private static bool IsComparable(ChromDataSet dataSet) { return(dataSet.NodeGroup != null && dataSet.NodeGroup.RelativeRT != RelativeRT.Unknown); }