예제 #1
0
        public double?GetTransitionValue(NormalizationMethod normalizationMethod, PeptideDocNode peptideDocNode, TransitionGroupDocNode transitionGroupDocNode, TransitionDocNode transitionDocNode, TransitionChromInfo transitionChromInfo)
        {
            if (!transitionDocNode.IsQuantitative(Document.Settings))
            {
                return(null);
            }
            if (transitionChromInfo == null || transitionChromInfo.IsEmpty)
            {
                return(null);
            }

            if (TryGetDenominator(normalizationMethod, transitionGroupDocNode.LabelType, transitionChromInfo.FileId,
                                  out double?denominator))
            {
                return(transitionChromInfo.Area / denominator);
            }

            if (normalizationMethod is NormalizationMethod.RatioToLabel ratioToLabel)
            {
                if (ratioToLabel.IsotopeLabelTypeName == transitionGroupDocNode.LabelType.Name)
                {
                    return(null);
                }
                if (SimpleRatios)
                {
                    return(null);
                }
                var otherTransitionGroup =
                    FindMatchingTransitionGroup(ratioToLabel, peptideDocNode, transitionGroupDocNode);
                if (otherTransitionGroup == null)
                {
                    return(null);
                }

                var otherTransition = FindMatchingTransition(transitionGroupDocNode, transitionDocNode, otherTransitionGroup);
                if (otherTransition == null)
                {
                    return(null);
                }

                if (!otherTransition.IsQuantitative(Document.Settings))
                {
                    return(null);
                }

                var otherChrominfo = FindMatchingTransitionChromInfo(transitionChromInfo, otherTransition);
                if (otherChrominfo == null || otherChrominfo.IsEmpty)
                {
                    return(null);
                }

                return(transitionChromInfo.Area / otherChrominfo.Area);
            }

            return(null);
        }
예제 #2
0
 public bool SkipTransition(SrmSettings settings, TransitionDocNode transitionDocNode)
 {
     if (!transitionDocNode.IsQuantitative(settings))
     {
         return(true);
     }
     if (MsLevel.HasValue)
     {
         if (MsLevel == 1)
         {
             return(!transitionDocNode.IsMs1);
         }
         return(transitionDocNode.IsMs1);
     }
     return(false);
 }