Example #1
0
        public void Filter(MassTagDatabaseOptions options)
        {
            var massTags = MassTags.Where(t => t.Net >= options.MinimumNet)
                           .Where(t => t.Net <= options.MaximumNet)
                           .Where(t => t.MassMonoisotopic >= options.MinimumMass)
                           .Where(t => t.MassMonoisotopic <= options.MaximumMass).ToList();

            this.MassTags.Clear();
            this.AddMassTagsAndProteins(massTags, this.Proteins);
        }
Example #2
0
        /// <summary>
        /// Loads the mass tags and populates the protein information.
        /// </summary>
        /// <param name="massTags"></param>
        /// <param name="massTagToProteinMap"></param>
        public void AddMassTagsAndProteins(List <MassTagLight> massTags,
                                           Dictionary <int, List <Protein> > massTagToProteinMap)
        {
            MassTags.AddRange(massTags);

            var massTagMap = new Dictionary <int, MassTagLight>();

            foreach (var tag in massTags)
            {
                if (massTagMap.ContainsKey(tag.Id) == false)
                {
                    massTagMap.Add(tag.Id, tag);
                }
            }

            ProteinsToMassTags = new Dictionary <int, List <MassTagLight> >();
            var proteinMap = new Dictionary <int, Protein>();

            AllProteins = new List <Protein>();


            foreach (var key in massTagToProteinMap.Keys)
            {
                var proteins = massTagToProteinMap[key];

                if (massTagMap.ContainsKey(key) == false)
                {
                    continue;
                }

                var tag = massTagMap[key];

                foreach (var p in proteins)
                {
                    if (!proteinMap.ContainsKey(p.RefId))
                    {
                        AllProteins.Add(p);
                        proteinMap.Add(p.RefId, p);
                    }

                    if (!ProteinsToMassTags.ContainsKey(p.ProteinId))
                    {
                        ProteinsToMassTags.Add(p.ProteinId, new List <MassTagLight>());
                    }
                    ProteinsToMassTags[p.ProteinId].Add(tag);
                }
            }

            Proteins = massTagToProteinMap;

            DetermineIfContainsDriftTime(massTags);
        }
Example #3
0
        /// <summary>
        ///     Handles converting the rows to factor objects.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void HandleDataRow(object sender, MageDataEventArgs args)
        {
            if (args == null)
            {
                throw new NullReferenceException("The mass tags are invalid.");
            }

            if (args.Fields == null)
            {
                return;

                throw new NullReferenceException("The mass tag database rows are invalid.");
            }

            if (args.Fields.Length < 11)
            {
                return;

                throw new ArgumentException("The number of columns for the mass tags are invalid.");
            }

            var tag = new MassTagLight();

            if (m_columnMapping.ContainsKey("Mass"))
            {
                tag.MassMonoisotopic = Convert.ToDouble(args.Fields[m_columnMapping["Mass"]]);
            }
            else
            {
                return;
            }

            if (m_columnMapping.ContainsKey("NET"))
            {
                tag.NetAverage = Convert.ToDouble(args.Fields[m_columnMapping["NET"]]);
                tag.Net        = tag.NetAverage;
            }
            else
            {
                return;
            }
            if (m_columnMapping.ContainsKey("Dataset_Member_Count"))
            {
                tag.ObservationCount = Convert.ToInt32(args.Fields[m_columnMapping["Dataset_Member_Count"]]);
            }
            else
            {
                return;
            }

            if (m_columnMapping.ContainsKey("Cluster_ID"))
            {
                tag.Id = Convert.ToInt32(args.Fields[m_columnMapping["Cluster_ID"]]);
            }
            else
            {
                return;
            }

            if (m_columnMapping.ContainsKey("Drift_Time"))
            {
                tag.DriftTime = Convert.ToDouble(args.Fields[m_columnMapping["Drift_Time"]]);
            }
            else
            {
                return;
            }

            if (m_columnMapping.ContainsKey("Charge"))
            {
                tag.ChargeState = Convert.ToInt32(args.Fields[m_columnMapping["Charge"]]);
            }
            else
            {
                return;
            }

            if (m_columnMapping.ContainsKey("Score"))
            {
                tag.Score = Convert.ToDouble(args.Fields[m_columnMapping["Score"]]);
            }
            else
            {
                return;
            }

            MassTags.Add(tag);
        }