示例#1
0
        public void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            MonoisotopicMass = reader.GetNullableDoubleAttribute(ATTR.massdiff_monoisotopic) ?? 0;
            AverageMass      = reader.GetNullableDoubleAttribute(ATTR.massdiff_average) ?? 0;
            Formula          = reader.GetAttribute(ATTR.formula);
            Inclusion        = reader.GetEnumAttribute(ATTR.inclusion, LossInclusion.Library);

            // Consume tag
            reader.Read();

            Validate();
        }
示例#2
0
        public override void ReadXml(XmlReader reader)
        {
            base.ReadXml(reader);
            ControlAnnotation             = reader.GetAttribute(ATTR.control_annotation);
            ControlValue                  = reader.GetAttribute(ATTR.control_value);
            CaseValue                     = reader.GetAttribute(ATTR.case_value);
            IdentityAnnotation            = reader.GetAttribute(ATTR.identity_annotation);
            AverageTechnicalReplicates    = reader.GetBoolAttribute(ATTR.avg_tech_replicates, true);
            NormalizationMethod           = NormalizationMethod.FromName(reader.GetAttribute(ATTR.normalization_method));
            IncludeInteractionTransitions = reader.GetBoolAttribute(ATTR.include_interaction_transitions, false);
            SummarizationMethod           = SummarizationMethod.FromName(reader.GetAttribute(ATTR.summarization_method));
            ConfidenceLevelTimes100       = reader.GetDoubleAttribute(ATTR.confidence_level, 95);
            PerProtein                    = reader.GetBoolAttribute(ATTR.per_protein, false);
            UseZeroForMissingPeaks        = reader.GetBoolAttribute(ATTR.use_zero_for_missing_peaks, false);
            QValueCutoff                  = reader.GetNullableDoubleAttribute(ATTR.q_value_cutoff);

            var colorRows = new List <MatchRgbHexColor>();

            reader.Read();
            while (reader.IsStartElement(MatchRgbHexColor.XML_ROOT))
            {
                var row = new MatchRgbHexColor();
                row.ReadXml(reader);
                colorRows.Add(row);
            }

            if (colorRows.Any())
            {
                reader.Read();
            }

            ColorRows = ImmutableList <MatchRgbHexColor> .ValueOf(colorRows);
        }
示例#3
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();
        }
示例#4
0
        void IXmlSerializable.ReadXml(XmlReader reader)
        {
            RegressionWeighting = RegressionWeighting.Parse(reader.GetAttribute(Attr.weighting));
            RegressionFit       = RegressionFit.Parse(reader.GetAttribute(Attr.fit));
            NormalizationMethod = NormalizationMethod.FromName(reader.GetAttribute(Attr.normalization));
            MsLevel             = reader.GetNullableIntAttribute(Attr.ms_level);
            Units          = reader.GetAttribute(Attr.units);
            LodCalculation = LodCalculation.Parse(reader.GetAttribute(Attr.lod_calculation));
            MaxLoqBias     = reader.GetNullableDoubleAttribute(Attr.max_loq_bias);
            MaxLoqCv       = reader.GetNullableDoubleAttribute(Attr.max_loq_cv);
            bool empty = reader.IsEmptyElement;

            reader.Read();
            if (!empty)
            {
                reader.ReadEndElement();
            }
        }
示例#5
0
        public TypedMass ReadMonoisotopicMass(XmlReader reader)
        {
            var mass = reader.GetNullableDoubleAttribute(ATTR.mass_monoisotopic); // Pre-3.62 we wrote out massH for custom ions but not for reporter ions

            if (mass.HasValue)
            {
                return(new TypedMass(mass.Value, (this is SettingsCustomIon) ? MassType.Monoisotopic : MassType.MonoisotopicMassH));
            }
            return(new TypedMass(reader.GetDoubleAttribute(ATTR.neutral_mass_monoisotopic), MassType.Monoisotopic));
        }
示例#6
0
 public override void ReadXml(XmlReader reader)
 {
     // Read tag attributes
     base.ReadXml(reader);
     SpectrumCount = reader.GetIntAttribute(ATTR.count_measured);
     Score         = reader.GetNullableDoubleAttribute(ATTR.score);
     ScoreType     = reader.GetAttribute(ATTR.score_type);
     // Consume tag
     reader.Read();
 }
示例#7
0
        public void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            Start       = reader.GetDoubleAttribute(ATTR.start);
            End         = reader.GetDoubleAttribute(ATTR.end);
            Target      = reader.GetNullableDoubleAttribute(ATTR.target);
            StartMargin = reader.GetNullableDoubleAttribute(ATTR.margin);
            if (StartMargin == null)
            {
                StartMargin = reader.GetNullableDoubleAttribute(ATTR.margin_left);
                EndMargin   = reader.GetNullableDoubleAttribute(ATTR.margin_right);
            }
            CERange = reader.GetNullableDoubleAttribute(ATTR.ce_range);

            // Consume tag
            reader.Read();

            DoValidate();
        }
示例#8
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);
            UseForRetentionTimeFilter = reader.GetBoolAttribute(ATTR.use_for_retention_time_prediction, false);
            AnalyteConcentration      = reader.GetNullableDoubleAttribute(ATTR.analyte_concentration);
            SampleType = SampleType.FromName(reader.GetAttribute(ATTR.sample_type));
            // Consume tag
            reader.Read();

            // Check if there is an optimization function element, and read
            // if if there is.
            IXmlElementHelper <OptimizableRegression> helper =
                reader.FindHelper(OPTIMIZATION_HELPERS);

            if (helper != null)
            {
                OptimizationFunction = helper.Deserialize(reader);
            }

            var chromFileInfos = new List <ChromFileInfo>();
            var fileLoadIds    = new List <string>();

            while (reader.IsStartElement(EL.sample_file) ||
                   reader.IsStartElement(EL.replicate_file) ||
                   reader.IsStartElement(EL.chromatogram_file))
            {
                // Note that the file path is actually be a URI that encodes things like lockmass correction as well as filename
                ChromFileInfo chromFileInfo = new ChromFileInfo(MsDataFileUri.Parse(reader.GetAttribute(ATTR.file_path)));
                chromFileInfo = chromFileInfo.ChangeHasMidasSpectra(reader.GetBoolAttribute(ATTR.has_midas_spectra, false));
                chromFileInfos.Add(chromFileInfo);

                string id = reader.GetAttribute(ATTR.id) ?? GetOrdinalSaveId(fileLoadIds.Count);
                fileLoadIds.Add(id);
                reader.Read();
                if (reader.IsStartElement(EL.instrument_info_list))
                {
                    reader.Skip();
                    reader.Read();
                }
            }
            Annotations = SrmDocument.ReadAnnotations(reader);

            MSDataFileInfos = chromFileInfos;
            _fileLoadIds    = fileLoadIds.ToArray();

            // Consume end tag
            reader.ReadEndElement();
        }
示例#9
0
 public static double GetDoubleAttribute(this XmlReader reader, string name, double defaultValue)
 {
     return(reader.GetNullableDoubleAttribute(name) ?? defaultValue);
 }
示例#10
0
        public override void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            base.ReadXml(reader);
            UseForRetentionTimeFilter = reader.GetBoolAttribute(ATTR.use_for_retention_time_prediction, false);
            AnalyteConcentration = reader.GetNullableDoubleAttribute(ATTR.analyte_concentration);
            SampleType = SampleType.FromName(reader.GetAttribute(ATTR.sample_type));
            // Consume tag
            reader.Read();

            // Check if there is an optimization function element, and read
            // if if there is.
            IXmlElementHelper<OptimizableRegression> helper =
                reader.FindHelper(OPTIMIZATION_HELPERS);
            if (helper != null)
                OptimizationFunction = helper.Deserialize(reader);

            var msDataFilePaths = new List<MsDataFileUri>();
            var fileLoadIds = new List<string>();
            while (reader.IsStartElement(EL.sample_file) ||
                    reader.IsStartElement(EL.replicate_file) ||
                    reader.IsStartElement(EL.chromatogram_file))
            {
                // Note that the file path is actually be a URI that encodes things like lockmass correction as well as filename
                msDataFilePaths.Add(MsDataFileUri.Parse(reader.GetAttribute(ATTR.file_path)));
                string id = reader.GetAttribute(ATTR.id) ?? GetOrdinalSaveId(fileLoadIds.Count);
                fileLoadIds.Add(id);
                reader.Read();
                if (reader.IsStartElement(EL.instrument_info_list))
                {
                    reader.Skip();
                    reader.Read();
                }
            }
            Annotations = SrmDocument.ReadAnnotations(reader);

            MSDataFileInfos = msDataFilePaths.ConvertAll(path => new ChromFileInfo(path));
            _fileLoadIds = fileLoadIds.ToArray();

            // Consume end tag
            reader.ReadEndElement();
        }
示例#11
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();
        }
示例#12
0
        public void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            MonoisotopicMass = reader.GetNullableDoubleAttribute(ATTR.massdiff_monoisotopic) ?? 0;
            AverageMass = reader.GetNullableDoubleAttribute(ATTR.massdiff_average) ?? 0;
            Formula = reader.GetAttribute(ATTR.formula);
            Inclusion = reader.GetEnumAttribute(ATTR.inclusion, LossInclusion.Library);

            // Consume tag
            reader.Read();

            Validate();
        }
示例#13
0
        public void ReadXml(XmlReader reader)
        {
            bool? useMeasuredRTs = reader.GetNullableBoolAttribute(ATTR.use_measured_rts);
            MeasuredRTWindow = reader.GetNullableDoubleAttribute(ATTR.measured_rt_window);
            bool? useLibraryDriftTimes = reader.GetNullableBoolAttribute(ATTR.use_spectral_library_drift_times);
            LibraryDriftTimesResolvingPower = reader.GetNullableDoubleAttribute(ATTR.spectral_library_drift_times_resolving_power);
            // Keep XML values, if written by v0.5 or later
            if (useMeasuredRTs.HasValue)
                UseMeasuredRTs = useMeasuredRTs.Value;
            // Use reasonable defaults for documents saved prior to v0.5
            else
            {
                UseMeasuredRTs = true;
                if (!MeasuredRTWindow.HasValue)
                    MeasuredRTWindow = DEFAULT_MEASURED_RT_WINDOW;
            }

            if (useLibraryDriftTimes.HasValue)
                UseLibraryDriftTimes = useLibraryDriftTimes.Value;
            else
            {
                UseLibraryDriftTimes = false;
                LibraryDriftTimesResolvingPower = null;
            }

            // Consume tag
            if (reader.IsEmptyElement)
                reader.Read();
            else
            {
                reader.ReadStartElement();
                // Read child elements
                RetentionTime = reader.DeserializeElement<RetentionTimeRegression>();
                DriftTimePredictor = reader.DeserializeElement<DriftTimePredictor>();
                reader.ReadEndElement();
            }

            DoValidate();
        }
示例#14
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();
        }
示例#15
0
        public void ReadXml(XmlReader reader)
        {
            // Read tag attributes
            Start = reader.GetDoubleAttribute(ATTR.start);
            End = reader.GetDoubleAttribute(ATTR.end);
            Target = reader.GetNullableDoubleAttribute(ATTR.target);
            StartMargin = reader.GetNullableDoubleAttribute(ATTR.margin);
            if (StartMargin == null)
            {
                StartMargin = reader.GetNullableDoubleAttribute(ATTR.margin_left);
                EndMargin = reader.GetNullableDoubleAttribute(ATTR.margin_right);
            }
            CERange = reader.GetNullableDoubleAttribute(ATTR.ce_range);

            // Consume tag
            reader.Read();

            DoValidate();
        }