Exemple #1
0
        protected TopDownIqTarget CreateParentTarget(List <List <string> > processedGroup)
        {
            var target = new TopDownIqTarget();
            var parser = new IqCodeParser();

            target.DatabaseReference = ParseStringField(processedGroup[0], ProteinNameHeader);
            target.Code             = ParseStringField(processedGroup[0], PeptideHeader);
            target.EmpiricalFormula = parser.GetEmpiricalFormulaFromSequence(target.Code);
            target.PTMList          = parser.GetPTMList(target.Code);
            target.MonoMassTheor    = ParseDoubleField(processedGroup[0], AdjustedPrecursorMassHeader);
            var children = new List <IqTarget>();

            foreach (var line in processedGroup)
            {
                children.Add(ConvertTextToIqTarget(line));
            }

            target.AddTargetRange(children);
            return(target);
        }
        /// <summary>
        /// Combines charge state results into one line for target level output
        /// </summary>
        /// <param name="results"></param>
        /// <param name="includeHeader"></param>
        /// <returns></returns>
        public string GetTargetResultAsString(IEnumerable <IqResult> results, bool includeHeader = false)
        {
            var sb = new StringBuilder();

            if (includeHeader)
            {
                var header = GetHeader();
                sb.Append(header);
                sb.Append(Environment.NewLine);
            }

            double   abundance = 0, correlationMedian = 0;
            var      chargeStateList = "";
            var      fitScoreList    = new List <double>();
            var      isFirst         = true;
            IqTarget target          = new TopDownIqTarget();

            foreach (var result in results)
            {
                //Sums abundance from each result
                abundance += result.Abundance;

                //Eliminates charge 0 or targets that are too poor to quantify
                if (!(result.Target.ChargeState == 0 || result.Abundance <= 0))
                {
                    fitScoreList.Add(result.FitScore);
                    if (isFirst)
                    {
                        chargeStateList += (result.Target.ChargeState);
                        isFirst          = false;
                    }
                    else
                    {
                        chargeStateList += (", " + result.Target.ChargeState);
                    }
                }

                //Looks for parent level target for information
                var parentResult = result as TopDownIqResult;
                if (parentResult != null)
                {
                    target            = parentResult.Target;
                    correlationMedian = parentResult.SelectedCorrelationGroup.ChargeCorrelationMedian();
                }
            }

            double medianFit = 1;

            if (fitScoreList.Count != 0)
            {
                medianFit = MathUtils.GetMedian(fitScoreList);
            }



            sb.Append(target.ID);
            sb.Append(Delimiter);
            sb.Append(target.Code);
            sb.Append(Delimiter);
            sb.Append(target.EmpiricalFormula);
            sb.Append(Delimiter);
            sb.Append(target.MonoMassTheor);
            sb.Append(Delimiter);
            sb.Append(chargeStateList);
            sb.Append(Delimiter);
            sb.Append(abundance);
            sb.Append(Delimiter);
            sb.Append(medianFit);
            sb.Append(Delimiter);
            sb.Append(correlationMedian);

            var outString = sb.ToString();

            return(outString);
        }