Example #1
0
        public override void WriteXml(XmlWriter writer)
        {
            // Write attributes
            writer.WriteAttributeString(@"name", Name);
            _windowWidthCalculator.WriteXML(writer, true, false); // Write in legacy format where this is a peptide setting

            // Write all measured ion mobilities
            if (MeasuredMobilityIons != null)
            {
                foreach (var im in MeasuredMobilityIons)
                {
                    writer.WriteStartElement(EL.measured_dt); // N.B. EL.measured_dt is a misnomer, this covers all IMS types
                    var mdt = new MeasuredIonMobility(im.Key.Target, im.Key.Adduct, im.Value);
                    mdt.WriteXml(writer);
                    writer.WriteEndElement();
                }
            }
        }
Example #2
0
        public override void ReadXml(XmlReader reader)
        {
            var name = reader.Name;

            // Read start tag attributes
            base.ReadXml(reader);
            _windowWidthCalculator = new IonMobilityWindowWidthCalculator(reader, true, false);

            // Consume start tag
            reader.ReadStartElement();

            // Skip over ion_mobility_library stuff that never saw the light of day, but appears in some older tests
            while (reader.Name.Equals(@"ion_mobility_library") || reader.Name.Equals(@"regression_dt"))
            {
                reader.Read();
            }

            // Read all measured ion mobilities
            var dict = new Dictionary <LibKey, IonMobilityAndCCS>();

            while (reader.IsStartElement(EL.measured_dt)) // N.B. EL.measured_dt is a misnomer, this covers all IMS types
            {
                var im  = MeasuredIonMobility.Deserialize(reader);
                var key = new LibKey(im.Target, im.Charge);
                if (!dict.ContainsKey(key))
                {
                    dict.Add(key, im.IonMobilityInfo);
                }
            }

            if (dict.Any())
            {
                MeasuredMobilityIons = dict;
            }

            if (reader.Name.Equals(name)) // Make sure we haven't stepped off the end
            {
                reader.ReadEndElement();  // Consume end tag
            }

            Validate();
        }