示例#1
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);
            ColinearWarning = reader.GetBoolAttribute(ATTR.colinear_warning);
            // Earlier versions always used decoys only
            UsesDecoys     = reader.GetBoolAttribute(ATTR.uses_decoys, true);
            UsesSecondBest = reader.GetBoolAttribute(ATTR.uses_false_targets);
            double bias = reader.GetDoubleAttribute(ATTR.bias);

            // Consume tag
            reader.Read();

            // Read calculators
            var calculators = new List <FeatureCalculator>();

            reader.ReadElements(calculators);
            var peakFeatureCalculators = new List <IPeakFeatureCalculator>(calculators.Count);
            var weights = new double[calculators.Count];

            for (int i = 0; i < calculators.Count; i++)
            {
                weights[i] = calculators[i].Weight;
                peakFeatureCalculators.Add(PeakFeatureCalculator.GetCalculator(calculators[i].Type));
            }
            SetPeakFeatureCalculators(peakFeatureCalculators);
            Parameters = new LinearModelParams(weights, bias);

            reader.ReadEndElement();

            DoValidate();
        }
示例#2
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);
            // Earlier versions always used decoys only
            UsesDecoys     = reader.GetBoolAttribute(ATTR.uses_decoys, true);
            UsesSecondBest = reader.GetBoolAttribute(ATTR.uses_false_targets, false);
            double bias = reader.GetDoubleAttribute(ATTR.bias);

            bool isEmpty = reader.IsEmptyElement;

            // Consume tag
            reader.Read();

            if (!isEmpty)
            {
                // Read calculators
                var calculators = new List <FeatureCalculator>();
                reader.ReadElements(calculators);
                var weights = new double[calculators.Count];
                for (int i = 0; i < calculators.Count; i++)
                {
                    if (calculators[i].Type != PeakFeatureCalculators[i].GetType())
                    {
                        throw new InvalidDataException(Resources.LegacyScoringModel_ReadXml_Invalid_legacy_model_);
                    }
                    weights[i] = calculators[i].Weight;
                }
                Parameters = new LinearModelParams(weights, bias);

                reader.ReadEndElement();
            }

            DoValidate();
        }
示例#3
0
        public void ReadXml(XmlReader reader)
        {
            string uri = reader.GetAttribute(Attr.panorama_publish_uri);

            if (!string.IsNullOrEmpty(uri))
            {
                PanoramaPublishUri = new Uri(uri);
            }
            string docGuid = reader.GetAttribute(Attr.document_guid);

            if (!string.IsNullOrEmpty(docGuid))
            {
                DocumentGuid = docGuid;
            }
            AuditLogging = reader.GetBoolAttribute(Attr.audit_logging);

            var allElements = new List <IXmlSerializable>();

            // Consume tag
            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                reader.ReadStartElement();
                reader.ReadElements(allElements, GetElementHelpers());
                reader.ReadEndElement();
            }
            _annotationDefs      = MakeReadOnly(allElements.OfType <AnnotationDef>());
            _groupComparisonDefs = MakeReadOnly(allElements.OfType <GroupComparisonDef>());
            ViewSpecList         = allElements.OfType <ViewSpecList>().FirstOrDefault() ?? ViewSpecList.EMPTY;
            Lists            = ImmutableList.ValueOf(allElements.OfType <ListData>());
            MetadataRuleSets = ImmutableList.ValueOf(allElements.OfType <MetadataRuleSet>());
        }
 internal static void ReadTo(this XmlReader reader, IDictionary <string, object> dynamicObject, BindableDynamicObject.XmlSettings xmlSettings)
 {
     if (xmlSettings.IsImplicit())
     {
         reader.ReadAttributes(dynamicObject);
         reader.ReadElements(dynamicObject, xmlSettings);
     }
     else
     if (xmlSettings.SerializePropertyAsAttribute)
     {
         reader.ReadAttributes(dynamicObject);
         reader.Skip();
     }
     else
     {
         reader.ReadElements(dynamicObject, xmlSettings);
     }
 }
示例#5
0
        public void ReadXml(XmlReader reader)
        {
            bool isEmpty = reader.IsEmptyElement;

            // Read past the property element
            reader.Read();

            // For empty lists in Settings.Default
            if (isEmpty)
            {
                return;
            }

            if (reader.IsStartElement(EL.revision))
            {
                RevisionIndex = reader.GetIntAttribute(ATTR.index);
                reader.Read();  // Consume tag
            }
            var helpers = GetXmlElementHelpers();
            var helper  = reader.FindHelper(helpers);

            // Read list items
            List <TValue> list = new List <TValue>();

            if (helper != null)
            {
                reader.ReadElements(list, helpers);
            }
            else
            {
                // Support for v0.1 format
                if (reader.IsEmptyElement)
                {
                    reader.Read();
                }
                else
                {
                    // Try to get through the elements with whatever
                    // names they were given, based on class names.
                    helper = new XmlElementHelper <TValue>();
                    reader.ReadStartElement();  // <ArrayOfType
                    while (reader.IsStartElement())
                    {
                        list.Add(helper.Deserialize(reader));   // <Type
                    }
                    reader.ReadEndElement();
                }
            }
            Clear();
            AddRange(list);

            // Perform final list specific updates
            ValidateLoad();
        }
示例#6
0
        public void ReadXml(XmlReader reader)
        {
            if (RetentionTimeSources != null || FileAlignments != null)
            {
                throw new InvalidOperationException();
            }
            var sources        = new List <RetentionTimeSource>();
            var fileAlignments = new List <FileRetentionTimeAlignments>();

            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                reader.Read();
                reader.ReadElements(sources);
                reader.ReadElements(fileAlignments);
                reader.ReadEndElement();
            }
            RetentionTimeSources = ResultNameMap.FromNamedElements(sources);
            FileAlignments       = ResultNameMap.FromNamedElements(fileAlignments);
        }
示例#7
0
 public static void ReadElementList <TItem>(this XmlReader reader, Enum name, List <TItem> list,
                                            params IXmlElementHelper <TItem>[] helpers)
 {
     if (reader.IsStartElement(name))
     {
         if (reader.IsEmptyElement)
         {
             reader.ReadStartElement(name);
         }
         else
         {
             reader.ReadStartElement(name);
             reader.ReadElements(list, helpers);
             reader.ReadEndElement();
         }
     }
 }
示例#8
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);

            // Consume tag
            reader.ReadStartElement();

            var list = new List <IsotopeEnrichmentItem>();

            reader.ReadElements(list);
            _isotopeEnrichments = MakeReadOnly(list);

            reader.ReadEndElement();

            DoValidate();
        }
示例#9
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes.
            SpecialHandling = reader.GetAttribute(ATTR.special_handling) ?? SpecialHandlingType.NONE;
            // Backward compatibility with v1.3: force all ions name to all ions (may be MSe)
            if (!SpecialHandlingType.IsAllIons(SpecialHandling))
            {
                base.ReadXml(reader);
            }
            else
            {
                ReadXmlName(SpecialHandlingType.ALL_IONS);
                SpecialHandling = SpecialHandlingType.ALL_IONS;
            }

            PrecursorFilter = reader.GetNullableDoubleAttribute(ATTR.precursor_filter);
            if (!PrecursorFilter.HasValue)
            {
                PrecursorFilter = reader.GetNullableDoubleAttribute(ATTR.precursor_filter_margin);
                UseMargin       = PrecursorFilter.HasValue;
            }
            if (!PrecursorFilter.HasValue)
            {
                PrecursorFilter      = reader.GetNullableDoubleAttribute(ATTR.precursor_left_filter);
                PrecursorRightFilter = reader.GetNullableDoubleAttribute(ATTR.precursor_right_filter);
            }

            WindowsPerScan = reader.GetNullableIntAttribute(ATTR.windows_per_scan);

            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                // Consume tag
                reader.ReadStartElement();

                var list = new List <IsolationWindow>();
                reader.ReadElements(list);
                PrespecifiedIsolationWindows = list;

                reader.ReadEndElement();
            }
            DoValidate();
        }
示例#10
0
        public override void ReadXml(XmlReader reader)
        {
            if (null != RetentionTimeAlignments)
            {
                throw new InvalidOperationException();
            }
            base.ReadXml(reader);
            var retentionTimeAlignments = new List <RetentionTimeAlignment>();

            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                // Read past the property element
                reader.Read();
                reader.ReadElements(retentionTimeAlignments);
                reader.ReadEndElement();
            }
            RetentionTimeAlignments = ResultNameMap.FromNamedElements(retentionTimeAlignments);
        }
示例#11
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);
            // Earlier versions always used decoys only
            UsesDecoys = reader.GetBoolAttribute(ATTR.uses_decoys, true);
            UsesSecondBest = reader.GetBoolAttribute(ATTR.uses_false_targets, false);
            double bias = reader.GetDoubleAttribute(ATTR.bias);

            bool isEmpty = reader.IsEmptyElement;

            // Consume tag
            reader.Read();

            if (!isEmpty)
            {
                // Read calculators
                var calculators = new List<FeatureCalculator>();
                reader.ReadElements(calculators);
                var weights = new double[calculators.Count];
                for (int i = 0; i < calculators.Count; i++)
                {
                    if (calculators[i].Type != PeakFeatureCalculators[i].GetType())
                        throw new InvalidDataException(Resources.LegacyScoringModel_ReadXml_Invalid_legacy_model_);
                    weights[i] = calculators[i].Weight;
                }
                Parameters = new LinearModelParams(weights, bias);

                reader.ReadEndElement();
            }

            DoValidate();
        }
示例#12
0
 public static void ReadElements <TItem>(this XmlReader reader, List <TItem> list)
 {
     reader.ReadElements(list, new XmlElementHelper <TItem>());
 }
示例#13
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);

            // Consume tag
            reader.ReadStartElement();

            var list = new List<IsotopeEnrichmentItem>();
            reader.ReadElements(list);
            _isotopeEnrichments = MakeReadOnly(list);

            reader.ReadEndElement();

            DoValidate();
        }
示例#14
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);
            string aas = reader.GetAttribute(ATTR.aminoacid);
            if (!string.IsNullOrEmpty(aas))
            {
                AAs = aas;
                // Support v0.1 format.
                if (AAs[0] == '\0') // Not L10N
                    AAs = null;
            }

            Terminus = reader.GetAttribute(ATTR.terminus, ToModTerminus);
            IsVariable = IsExplicit = reader.GetBoolAttribute(ATTR.variable);
            Formula = reader.GetAttribute(ATTR.formula);
            if (reader.GetBoolAttribute(ATTR.label_13C))
                LabelAtoms |= LabelAtoms.C13;
            if (reader.GetBoolAttribute(ATTR.label_15N))
                LabelAtoms |= LabelAtoms.N15;
            if (reader.GetBoolAttribute(ATTR.label_18O))
                LabelAtoms |= LabelAtoms.O18;
            if (reader.GetBoolAttribute(ATTR.label_2H))
                LabelAtoms |= LabelAtoms.H2;
            RelativeRT = reader.GetEnumAttribute(ATTR.relative_rt, RelativeRT.Matching);

            // Allow specific masses always, but they will generate an error,
            // in Validate() if there is already a formula.
            MonoisotopicMass = reader.GetNullableDoubleAttribute(ATTR.massdiff_monoisotopic);
            AverageMass = reader.GetNullableDoubleAttribute(ATTR.massdiff_average);

            if (!IsVariable)
                IsExplicit = reader.GetBoolAttribute(ATTR.explicit_decl);

            UnimodId = reader.GetNullableIntAttribute(ATTR.unimod_id);
            // Backward compatibility with early code that assigned -1 to some custom modifications
            if (UnimodId.HasValue && UnimodId.Value == -1)
                UnimodId = null;

            ShortName = reader.GetAttribute(ATTR.short_name);

            // Consume tag
            reader.Read();

            var listLosses = new List<FragmentLoss>();
            reader.ReadElements(listLosses);
            if (listLosses.Count > 0)
            {
                Losses = listLosses.ToArray();
                reader.ReadEndElement();
            }

            Validate();
        }
示例#15
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);
            ColinearWarning = reader.GetBoolAttribute(ATTR.colinear_warning);
            // Earlier versions always used decoys only
            UsesDecoys = reader.GetBoolAttribute(ATTR.uses_decoys, true);
            UsesSecondBest = reader.GetBoolAttribute(ATTR.uses_false_targets);
            double bias = reader.GetDoubleAttribute(ATTR.bias);

            // Consume tag
            reader.Read();

            // Read calculators
            var calculators = new List<FeatureCalculator>();
            reader.ReadElements(calculators);
            var peakFeatureCalculators = new List<IPeakFeatureCalculator>(calculators.Count);
            var weights = new double[calculators.Count];
            for (int i = 0; i < calculators.Count; i++)
            {
                weights[i] = calculators[i].Weight;
                peakFeatureCalculators.Add(PeakFeatureCalculator.GetCalculator(calculators[i].Type));
            }
            SetPeakFeatureCalculators(peakFeatureCalculators);
            Parameters = new LinearModelParams(weights, bias);

            reader.ReadEndElement();

            DoValidate();
        }
示例#16
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes.
            SpecialHandling = reader.GetAttribute(ATTR.special_handling) ?? SpecialHandlingType.NONE;
            // Backward compatibility with v1.3: force all ions name to all ions (may be MSe)
            if (!SpecialHandlingType.IsAllIons(SpecialHandling))
                base.ReadXml(reader);
            else
            {
                ReadXmlName(SpecialHandlingType.ALL_IONS);
                SpecialHandling = SpecialHandlingType.ALL_IONS;
            }

            PrecursorFilter = reader.GetNullableDoubleAttribute(ATTR.precursor_filter);
            if (!PrecursorFilter.HasValue)
            {
                PrecursorFilter = reader.GetNullableDoubleAttribute(ATTR.precursor_left_filter);
                PrecursorRightFilter = reader.GetNullableDoubleAttribute(ATTR.precursor_right_filter);
            }

            WindowsPerScan = reader.GetNullableIntAttribute(ATTR.windows_per_scan);

            if (reader.IsEmptyElement)
                reader.Read();
            else
            {
                // Consume tag
                reader.ReadStartElement();

                var list = new List<IsolationWindow>();
                reader.ReadElements(list);
                PrespecifiedIsolationWindows = list;

                reader.ReadEndElement();
            }
            DoValidate();
        }