Exemplo n.º 1
0
        public void WriteToFile(string fileName, List <MappedItemGroup> groups)
        {
            List <SAMAlignedItem> queries = groups.GetQueries();

            var xml = new XElement("root",
                                   queries.ToXElement(),
                                   new XElement("subjectResult",
                                                from itemgroup in groups
                                                select new XElement("subjectGroup",
                                                                    from item in itemgroup
                                                                    select new XElement("subject",
                                                                                        new XAttribute("name", item.Name),
                                                                                        from region in item.MappedRegions
                                                                                        select new XElement("region",
                                                                                                            new XAttribute("seqname", region.Region.Seqname),
                                                                                                            new XAttribute("start", region.Region.Start),
                                                                                                            new XAttribute("end", region.Region.End),
                                                                                                            new XAttribute("strand", region.Region.Strand),
                                                                                                            new XAttribute("sequence", XmlUtils.ToXml(region.Region.Sequence)),
                                                                                                            this.exportPValue ? new XAttribute("query_count_before_filter", region.QueryCountBeforeFilter) : null,
                                                                                                            this.exportPValue ? new XAttribute("query_count", region.QueryCount) : null,
                                                                                                            this.exportPValue ? new XAttribute("pvalue", region.PValue) : null,
                                                                                                            from loc in region.AlignedLocations
                                                                                                            select new XElement("query",
                                                                                                                                new XAttribute("qname", loc.Parent.Qname),
                                                                                                                                new XAttribute("loc", loc.GetLocation()),
                                                                                                                                this.exportPValue ? new XAttribute("query_count", loc.Parent.QueryCount) : null
                                                                                                                                ))))));

            xml.Save(fileName);
        }
Exemplo n.º 2
0
        public void WriteToFile(string fileName, List <FeatureItemGroup> groups)
        {
            List <SAMAlignedItem> queries = groups.GetQueries();

            var xml = new XElement("root",
                                   queries.ToXElement(),
                                   new XElement("subjectResult",
                                                from itemgroup in groups
                                                select new XElement("subjectGroup",
                                                                    from item in itemgroup
                                                                    select new XElement("subject",
                                                                                        new XAttribute("name", item.Name),
                                                                                        from region in item.Locations
                                                                                        select new XElement("region",
                                                                                                            new XAttribute("seqname", region.Seqname),
                                                                                                            new XAttribute("start", region.Start),
                                                                                                            new XAttribute("end", region.End),
                                                                                                            new XAttribute("strand", region.Strand),
                                                                                                            new XAttribute("sequence", XmlUtils.ToXml(region.Sequence)),
                                                                                                            this.exportPValue ? new XAttribute("query_count_before_filter", region.QueryCountBeforeFilter) : null,
                                                                                                            this.exportPValue ? new XAttribute("query_count", region.QueryCount) : null,
                                                                                                            this.exportPValue ? new XAttribute("pvalue", region.PValue) : null,
                                                                                                            new XAttribute("size", region.Length),
                                                                                                            from sl in region.SamLocations
                                                                                                            let loc = sl.SamLocation
                                                                                                                      select new XElement("query",
                                                                                                                                          new XAttribute("qname", loc.Parent.Qname),
                                                                                                                                          new XAttribute("loc", loc.GetLocation()),
                                                                                                                                          new XAttribute("overlap", string.Format("{0:0.##}", sl.OverlapPercentage)),
                                                                                                                                          new XAttribute("offset", sl.Offset),
                                                                                                                                          new XAttribute("query_count", loc.Parent.QueryCount),
                                                                                                                                          new XAttribute("seq_len", loc.Parent.Sequence.Length),
                                                                                                                                          new XAttribute("nmi", loc.NumberOfMismatch),
                                                                                                                                          new XAttribute("nnpm", loc.NumberOfNoPenaltyMutation)
                                                                                                                                          ))))));

            using (var sw = new StreamWriter(fileName))
            {
                sw.NewLine = Environment.NewLine;
                xml.Save(sw);
            }
        }
Exemplo n.º 3
0
        protected bool ValidateFileQuery(List <FileQuery> queries, string missingmessage, string wrongDir, string noFiles)
        {
            bool lret = true;

            if (queries.Count == 0) // necessary option missing
            {
                AddErrorMessage(missingmessage);
                lret = false;
            }

            if (lret)
            {
                // queries with wrong directory
                foreach (FileQuery q in queries)
                {
                    try
                    {
                        q.BeginSearch();
                    }
                    catch (DirectoryNotFoundException)
                    {
                        AddErrorMessage(wrongDir, q.Query);
                        ShowFullHelp = false;
                        lret         = false;
                    }
                }
            }

            if (lret && !queries.HasMatches()) // query which matches no files
            {
                AddErrorMessage(noFiles, queries.GetQueries());
                ShowFullHelp = false;
                lret         = false;
            }

            SetInvalidIfInvalid(lret);

            return(lret);
        }
        public void WriteToFile(string fileName, List <ChromosomeCountItem> groups)
        {
            using (var xw = XmlUtils.CreateWriter(fileName))
            {
                xw.WriteStartDocument();

                xw.WriteStartElement("root");

                SAMAlignedItemUtils.WriteTo(xw, groups.GetQueries());

                xw.WriteStartElement("subjectResult");
                foreach (var itemgroup in groups)
                {
                    xw.WriteStartElement("subjectGroup");

                    foreach (var name in itemgroup.Names)
                    {
                        xw.WriteStartElement("subject");
                        xw.WriteAttributeString("name", name);
                        xw.WriteEndElement();
                    }
                    foreach (var loc in itemgroup.Queries)
                    {
                        xw.WriteStartElement("query");
                        xw.WriteAttributeString("qname", loc.Qname);
                        xw.WriteEndElement();
                    }

                    xw.WriteEndElement();
                }
                xw.WriteEndElement();
                xw.WriteEndElement();

                xw.WriteEndDocument();
            }
        }
    public override void WriteToFile(string fileName, List<FeatureItemGroup> groups)
    {
      UTF8Encoding utf8 = new UTF8Encoding(false);

      Progress.SetMessage("Ready for writing ...");

      using (var ft = new FileStream(fileName, FileMode.Create))
      using (var xw = new StreamWriter(ft, utf8))
      //using (var xw = new StreamWriter(ft))
      {
        //Console.WriteLine("Start writing ... ");
        Progress.SetMessage("Start writing ... ");
        //xw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
        xw.WriteLine("<?xml version=\"1.0\"?>");
        xw.WriteLine("<root>");

        Progress.SetMessage("Getting queries ... ");
        var queries = groups.GetQueries();

        Progress.SetMessage("Writing {0} queries ...", queries.Count);
        xw.WriteLine("  <queries>");
        foreach (var query in queries)
        {
          xw.WriteLine(@"    <query name=""{0}"" sequence=""{1}"" count=""{2}"">", query.Qname, query.Sequence, query.QueryCount);
          foreach (var loc in query.Locations)
          {
            xw.WriteLine(@"      <location seqname=""{0}"" start=""{1}"" end=""{2}"" strand=""{3}"" cigar=""{4}"" score=""{5}"" mdz=""{6}"" nmi=""{7}"" nnpm=""{8}"" />",
              loc.Seqname,
              loc.Start,
              loc.End,
              loc.Strand,
              loc.Cigar,
              loc.AlignmentScore,
              loc.MismatchPositions,
              loc.NumberOfMismatch,
              loc.NumberOfNoPenaltyMutation);
          }
          xw.WriteLine("    </query>");
        }
        xw.WriteLine("  </queries>");

        Progress.SetMessage("Writing {0} subjects ...", groups.Count);
        xw.WriteLine("  <subjectResult>");
        foreach (var itemgroup in groups)
        {
          xw.WriteLine("    <subjectGroup>");
          foreach (var item in itemgroup)
          {
            xw.WriteLine("      <subject name=\"{0}\">", item.Name);
            foreach (var region in item.Locations)
            {
              xw.Write("        <region seqname=\"{0}\" start=\"{1}\" end=\"{2}\" strand=\"{3}\" sequence=\"{4}\"",
                region.Seqname,
                region.Start,
                region.End,
                region.Strand,
                XmlUtils.ToXml(region.Sequence));
              if (this.exportPValue)
              {
                xw.Write(" query_count_before_filter=\"{0}\"", region.QueryCountBeforeFilter);
                xw.Write(" query_count=\"{0}\"", region.QueryCount);
                xw.Write(" pvalue=\"{0}\"", region.PValue);
              }
              xw.WriteLine(" size=\"{0}\">", region.Length);
              foreach (var sl in region.SamLocations)
              {
                var loc = sl.SamLocation;
                xw.Write("          <query qname=\"{0}\"", loc.Parent.Qname);
                xw.Write(" loc=\"{0}\"", loc.GetLocation());
                xw.Write(" overlap=\"{0}\"", string.Format("{0:0.##}", sl.OverlapPercentage));
                xw.Write(" offset=\"{0}\"", sl.Offset);
                xw.Write(" query_count=\"{0}\"", loc.Parent.QueryCount);
                xw.Write(" seq_len=\"{0}\"", loc.Parent.Sequence.Length);
                xw.Write(" nmi=\"{0}\"", loc.NumberOfMismatch);
                xw.WriteLine(" nnpm=\"{0}\" />", loc.NumberOfNoPenaltyMutation);
              }
              xw.WriteLine("        </region>");
            }
            xw.WriteLine("      </subject>");
          }
          xw.WriteLine("    </subjectGroup>");
        }
        xw.WriteLine("  </subjectResult>");
        xw.Write("</root>");
      }
      Progress.SetMessage("Writing xml file finished.");
    }
Exemplo n.º 6
0
        public override void WriteToFile(string fileName, List <FeatureItemGroup> groups)
        {
            UTF8Encoding utf8 = new UTF8Encoding(false);

            Progress.SetMessage("Ready for writing ...");

            using (var ft = new FileStream(fileName, FileMode.Create))
                using (var xw = new StreamWriter(ft, utf8))
                //using (var xw = new StreamWriter(ft))
                {
                    //Console.WriteLine("Start writing ... ");
                    Progress.SetMessage("Start writing ... ");
                    //xw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                    xw.WriteLine("<?xml version=\"1.0\"?>");
                    xw.WriteLine("<root>");

                    Progress.SetMessage("Getting queries ... ");
                    var queries = groups.GetQueries();

                    Progress.SetMessage("Writing {0} queries ...", queries.Count);
                    xw.WriteLine("  <queries>");

                    queries.Sort((l1, l2) => l2.QueryCount.CompareTo(l1.QueryCount));
                    foreach (var query in queries)
                    {
                        xw.WriteLine(@"    <query name=""{0}"" sequence=""{1}"" count=""{2}"">", query.Qname, query.Sequence, query.QueryCount);
                        foreach (var loc in query.Locations)
                        {
                            xw.WriteLine(@"      <location seqname=""{0}"" start=""{1}"" end=""{2}"" strand=""{3}"" cigar=""{4}"" score=""{5}"" mdz=""{6}"" nmi=""{7}"" nnpm=""{8}"" />",
                                         loc.Seqname,
                                         loc.Start,
                                         loc.End,
                                         loc.Strand,
                                         loc.Cigar,
                                         loc.AlignmentScore,
                                         loc.MismatchPositions,
                                         loc.NumberOfMismatch,
                                         loc.NumberOfNoPenaltyMutation);
                        }
                        xw.WriteLine("    </query>");
                    }
                    xw.WriteLine("  </queries>");

                    Progress.SetMessage("Writing {0} subjects ...", groups.Count);
                    xw.WriteLine("  <subjectResult>");
                    foreach (var itemgroup in groups)
                    {
                        xw.WriteLine("    <subjectGroup>");
                        foreach (var item in itemgroup)
                        {
                            xw.WriteLine("      <subject name=\"{0}\">", item.Name);
                            foreach (var region in item.Locations)
                            {
                                xw.Write("        <region seqname=\"{0}\" start=\"{1}\" end=\"{2}\" strand=\"{3}\" sequence=\"{4}\"",
                                         region.Seqname,
                                         region.Start,
                                         region.End,
                                         region.Strand,
                                         XmlUtils.ToXml(region.Sequence));
                                if (this.exportPValue)
                                {
                                    xw.Write(" query_count_before_filter=\"{0}\"", region.QueryCountBeforeFilter);
                                    xw.Write(" query_count=\"{0}\"", region.QueryCount);
                                    xw.Write(" pvalue=\"{0}\"", region.PValue);
                                }
                                xw.WriteLine(" size=\"{0}\">", region.Length);
                                region.SamLocations.Sort((l1, l2) => l2.SamLocation.Parent.QueryCount.CompareTo(l1.SamLocation.Parent.QueryCount));
                                foreach (var sl in region.SamLocations)
                                {
                                    var loc = sl.SamLocation;
                                    xw.Write("          <query qname=\"{0}\"", loc.Parent.Qname);
                                    xw.Write(" loc=\"{0}\"", loc.GetLocation());
                                    xw.Write(" overlap=\"{0}\"", string.Format("{0:0.##}", sl.OverlapPercentage));
                                    xw.Write(" offset=\"{0}\"", sl.Offset);
                                    xw.Write(" query_count=\"{0}\"", loc.Parent.QueryCount);
                                    xw.Write(" seq_len=\"{0}\"", loc.Parent.Sequence.Length);
                                    xw.Write(" nmi=\"{0}\"", loc.NumberOfMismatch);
                                    xw.WriteLine(" nnpm=\"{0}\" />", loc.NumberOfNoPenaltyMutation);
                                }
                                xw.WriteLine("        </region>");
                            }
                            xw.WriteLine("      </subject>");
                        }
                        xw.WriteLine("    </subjectGroup>");
                    }
                    xw.WriteLine("  </subjectResult>");
                    xw.Write("</root>");
                }
            Progress.SetMessage("Writing xml file finished.");
        }
        public override void WriteToFile(string fileName, List <FeatureItemGroup> groups)
        {
            UTF8Encoding utf8 = new UTF8Encoding(false);

            Progress.SetMessage("Creating xml writer ... ");
            using (XmlTextWriter xw = new XmlTextWriter(fileName, utf8))
            {
                xw.Formatting = Formatting.Indented;
                Progress.SetMessage("Start writing ... ");
                xw.WriteStartDocument();

                xw.WriteStartElement("root");

                Progress.SetMessage("Getting queries ... ");
                var queries = groups.GetQueries();

                Progress.SetMessage("Writing {0} queries ...", queries.Count);
                SAMAlignedItemUtils.WriteTo(xw, queries);

                Progress.SetMessage("Writing {0} subjects ...", groups.Count);
                xw.WriteStartElement("subjectResult");
                foreach (var itemgroup in groups)
                {
                    xw.WriteStartElement("subjectGroup");
                    foreach (var item in itemgroup)
                    {
                        xw.WriteStartElement("subject");
                        xw.WriteAttribute("name", item.Name);
                        foreach (var region in item.Locations)
                        {
                            xw.WriteStartElement("region");
                            xw.WriteAttribute("seqname", region.Seqname);
                            xw.WriteAttribute("start", region.Start);
                            xw.WriteAttribute("end", region.End);
                            xw.WriteAttribute("strand", region.Strand);
                            xw.WriteAttribute("sequence", XmlUtils.ToXml(region.Sequence));
                            if (this.exportPValue)
                            {
                                xw.WriteAttribute("query_count_before_filter", region.QueryCountBeforeFilter);
                                xw.WriteAttribute("query_count", region.QueryCount);
                                xw.WriteAttribute("pvalue", region.PValue);
                            }
                            xw.WriteAttribute("size", region.Length);
                            foreach (var sl in region.SamLocations)
                            {
                                var loc = sl.SamLocation;
                                xw.WriteStartElement("query");
                                xw.WriteAttribute("qname", loc.Parent.Qname);
                                xw.WriteAttribute("loc", loc.GetLocation());
                                xw.WriteAttribute("overlap", string.Format("{0:0.##}", sl.OverlapPercentage));
                                xw.WriteAttribute("offset", sl.Offset);
                                xw.WriteAttribute("query_count", loc.Parent.QueryCount);
                                xw.WriteAttribute("seq_len", loc.Parent.Sequence.Length);
                                xw.WriteAttribute("nmi", loc.NumberOfMismatch);
                                xw.WriteAttribute("nnpm", loc.NumberOfNoPenaltyMutation);
                                xw.WriteEndElement();
                            }
                            xw.WriteEndElement();
                        }
                        xw.WriteEndElement();
                    }
                    xw.WriteEndElement();
                }
                xw.WriteEndElement();
                xw.WriteEndElement();

                xw.WriteEndDocument();

                Progress.SetMessage("Writing xml file finished.");
            }
        }
        public void WriteToFile(string fileName, List <ChromosomeCountSlimItem> items)
        {
            using (var xw = XmlUtils.CreateWriter(fileName))
            {
                xw.WriteStartDocument();

                xw.WriteStartElement("root");

                var queries = items.GetQueries();

                xw.WriteStartElement("queries");
                foreach (var q in queries)
                {
                    xw.WriteStartElement("query");
                    xw.WriteAttributeString("name", q.Qname);
                    if (!string.IsNullOrEmpty(q.Sequence))
                    {
                        xw.WriteAttributeString("seq", q.Sequence);
                    }
                    if (this.outputSample)
                    {
                        xw.WriteAttributeString("sample", q.Sample);
                    }
                    xw.WriteAttributeString("count", q.QueryCount.ToString());
                    foreach (var l in q.Chromosomes)
                    {
                        xw.WriteStartElement("location");
                        xw.WriteAttributeString("seqname", l);
                        xw.WriteEndElement();
                    }
                    xw.WriteEndElement();
                }
                xw.WriteEndElement();

                xw.WriteStartElement("subjectResult");
                foreach (var itemgroup in items)
                {
                    xw.WriteStartElement("subjectGroup");

                    foreach (var name in itemgroup.Names)
                    {
                        xw.WriteStartElement("subject");
                        xw.WriteAttributeString("name", name);
                        xw.WriteEndElement();
                    }
                    foreach (var loc in itemgroup.Queries)
                    {
                        xw.WriteStartElement("query");
                        xw.WriteAttributeString("qname", loc.Qname);
                        xw.WriteEndElement();
                    }

                    xw.WriteEndElement();
                }
                xw.WriteEndElement();

                xw.WriteEndElement();

                xw.WriteEndDocument();
            }
        }
Exemplo n.º 9
0
    public override void WriteToFile(string fileName, List<FeatureItemGroup> groups)
    {
      UTF8Encoding utf8 = new UTF8Encoding(false);
      Progress.SetMessage("Creating xml writer ... ");
      using (XmlTextWriter xw = new XmlTextWriter(fileName, utf8))
      {
        Progress.SetMessage("Start writing ... ");
        xw.WriteStartDocument();

        xw.WriteStartElement("root");

        Progress.SetMessage("Getting queries ... ");
        var queries = groups.GetQueries();

        Progress.SetMessage("Writing {0} queries ...", queries.Count);
        SAMAlignedItemUtils.WriteTo(xw, queries);

        Progress.SetMessage("Writing {0} subjects ...", groups.Count);
        xw.WriteStartElement("subjectResult");
        foreach (var itemgroup in groups)
        {
          xw.WriteStartElement("subjectGroup");
          foreach (var item in itemgroup)
          {
            xw.WriteStartElement("subject");
            xw.WriteAttribute("name", item.Name);
            foreach (var region in item.Locations)
            {
              xw.WriteStartElement("region");
              xw.WriteAttribute("seqname", region.Seqname);
              xw.WriteAttribute("start", region.Start);
              xw.WriteAttribute("end", region.End);
              xw.WriteAttribute("strand", region.Strand);
              xw.WriteAttribute("sequence", XmlUtils.ToXml(region.Sequence));
              if (this.exportPValue)
              {
                xw.WriteAttribute("query_count_before_filter", region.QueryCountBeforeFilter);
                xw.WriteAttribute("query_count", region.QueryCount);
                xw.WriteAttribute("pvalue", region.PValue);
              }
              xw.WriteAttribute("size", region.Length);
              foreach (var sl in region.SamLocations)
              {
                var loc = sl.SamLocation;
                xw.WriteStartElement("query");
                xw.WriteAttribute("qname", loc.Parent.Qname);
                xw.WriteAttribute("loc", loc.GetLocation());
                xw.WriteAttribute("overlap", string.Format("{0:0.##}", sl.OverlapPercentage));
                xw.WriteAttribute("offset", sl.Offset);
                xw.WriteAttribute("query_count", loc.Parent.QueryCount);
                xw.WriteAttribute("seq_len", loc.Parent.Sequence.Length);
                xw.WriteAttribute("nmi", loc.NumberOfMismatch);
                xw.WriteAttribute("nnpm", loc.NumberOfNoPenaltyMutation);
                xw.WriteEndElement();
              }
              xw.WriteEndElement();
            }
            xw.WriteEndElement();
          }
          xw.WriteEndElement();
        }
        xw.WriteEndElement();
        xw.WriteEndElement();

        xw.WriteEndDocument();

        Progress.SetMessage("Writing xml file finished.");
      }
    }