Exemplo n.º 1
0
        public ChromatographProfile ReadFromFile(string fileName)
        {
            var result = new ChromatographProfile();
            var root   = XElement.Load(fileName);

            result.Experimental   = root.GetAttributeValue("Experimental", string.Empty);
            result.Sequence       = root.GetAttributeValue("Sequence", string.Empty);
            result.Charge         = root.GetAttributeValue("Charge", 0);
            result.IdentifiedScan = root.GetAttributeValue("IdentifiedScan", 0);
            result.ObservedMz     = root.GetAttributeValue("ObservedMz", 0.0);
            result.TheoreticalMz  = root.GetAttributeValue("TheoreticalMz", 0.0);

            List <IsotopicIon> ions = new List <IsotopicIon>();

            foreach (var ionEle in root.Element("IsotopicIons").Elements("Ion"))
            {
                var ion = new IsotopicIon();
                ion.Mz        = ionEle.GetAttributeValue("Mz", 0.0);
                ion.Intensity = ionEle.GetAttributeValue("Intensity", 0.0);
                ions.Add(ion);
            }
            result.IsotopicIons = ions.ToArray();

            foreach (var proEle in root.Element("ProfileScans").Elements("ProfileScan"))
            {
                var pscan = new ChromatographProfileScan();
                result.Profiles.Add(pscan);
                pscan.Identified    = proEle.GetAttributeValue("Identified", false);
                pscan.RetentionTime = proEle.GetAttributeValue("RetentionTime", 0.0);
                pscan.Scan          = proEle.GetAttributeValue("Scan", 0);
                foreach (var scanEle in proEle.Elements("Peak"))
                {
                    var peak = new ChromatographProfileScanPeak();
                    pscan.Add(peak);
                    peak.Isotopic    = scanEle.GetAttributeValue("Isotopic", 0);
                    peak.Mz          = scanEle.GetAttributeValue("Mz", 0.0);
                    peak.Intensity   = scanEle.GetAttributeValue("Intensity", 0.0);
                    peak.Noise       = scanEle.GetAttributeValue("Noise", 0.0);
                    peak.PPMDistance = scanEle.GetAttributeValue("PPMDistance", 0.0);
                }

                pscan.RawPeaks = new List <Peak>();
                var rawPeaksELe = proEle.Element("RawPeaks");
                foreach (var rawPeakEle in rawPeaksELe.Elements("RawPeak"))
                {
                    var peak = new Peak();
                    pscan.RawPeaks.Add(peak);
                    peak.Mz        = rawPeakEle.GetAttributeValue("Mz", 0.0);
                    peak.Intensity = rawPeakEle.GetAttributeValue("Intensity", 0.0);
                    peak.Noise     = rawPeakEle.GetAttributeValue("Noise", 0.0);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public ChromatographProfile ReadFromFile(string fileName)
        {
            var result = new ChromatographProfile();

            using (var sr = new StreamReader(fileName))
            {
                var line = sr.ReadLine();
                while ((line = sr.ReadLine()) != null)
                {
                    var parts = line.Split('\t');
                    var scan  = int.Parse(parts[0]);
                    ChromatographProfileScan profilescan;
                    if (result.Profiles.Count > 0 && result.Profiles.Last().Scan == scan)
                    {
                        profilescan = result.Profiles.Last();
                    }
                    else
                    {
                        profilescan = new ChromatographProfileScan();
                        result.Profiles.Add(profilescan);
                        profilescan.Scan          = scan;
                        profilescan.RetentionTime = double.Parse(parts[1]);
                        profilescan.Identified    = bool.Parse(parts[9]);
                    }

                    var peak = new ChromatographProfileScanPeak();
                    profilescan.Add(peak);
                    peak.Isotopic    = int.Parse(parts[2]);
                    peak.Mz          = double.Parse(parts[3]);
                    peak.Intensity   = double.Parse(parts[4]);
                    peak.PPMDistance = double.Parse(parts[5]);
                    peak.Noise       = peak.Intensity / double.Parse(parts[6]);
                }
            }
            return(result);
        }