public List <MappedMirnaGroup> ReadFromFile(string fileName)
        {
            List <MappedMirnaGroup> result = new List <MappedMirnaGroup>();

            XElement root  = XElement.Load(fileName);
            var      qmmap = root.ToSAMAlignedItems().ToSAMAlignedLocationMap();

            foreach (var mirnaGroupEle in root.Element("mirnas").Elements("mirnagroup"))
            {
                var group = new MappedMirnaGroup();
                result.Add(group);

                foreach (var mirnaEle in mirnaGroupEle.Elements("mirna"))
                {
                    var mirna = new MappedMirna();
                    group.Add(mirna);
                    mirna.Name     = mirnaEle.Attribute("name").Value;
                    mirna.Sequence = mirnaEle.Attribute("sequence").Value;

                    foreach (var regionEle in mirnaEle.Elements("region"))
                    {
                        var region = new MappedMirnaRegion();
                        mirna.MappedRegions.Add(region);

                        region.Region.Name = mirna.Name;
                        ParseLocation(regionEle, region.Region);

                        foreach (var posEle in regionEle.Elements("position"))
                        {
                            var position = new SequenceRegionMapped();
                            position.Region = region.Region;
                            position.Offset = int.Parse(posEle.Attribute("offset").Value);
                            region.Mapped[position.Offset] = position;

                            foreach (var queryEle in posEle.Elements("query"))
                            {
                                var qname = queryEle.Attribute("qname").Value;
                                var loc   = queryEle.Attribute("loc").Value;
                                var key   = GenerateKey(qname, loc);
                                var query = qmmap[key];
                                position.AlignedLocations.Add(query);
                                query.Features.Add(region.Region);
                            }
                        }
                    }
                }
            }
            qmmap.Clear();

            return(result);
        }
Beispiel #2
0
    public MappedMirnaRegion FindOrCreateRegion(string loc)
    {
      foreach (var region in MappedRegions)
      {
        if (region.Region.GetLocation().Equals(loc))
        {
          return region;
        }
      }

      var result = new MappedMirnaRegion();
      result.Region = SequenceRegionUtils.ParseLocation<SequenceRegion>(loc);
      this.MappedRegions.Add(result);

      return result;
    }
Beispiel #3
0
        public MappedMirnaRegion FindOrCreateRegion(string loc)
        {
            foreach (var region in MappedRegions)
            {
                if (region.Region.GetLocation().Equals(loc))
                {
                    return(region);
                }
            }

            var result = new MappedMirnaRegion();

            result.Region = SequenceRegionUtils.ParseLocation <SequenceRegion>(loc);
            this.MappedRegions.Add(result);

            return(result);
        }
 private void FindLocation(List<SAMAlignedLocation> list, List<MappedMirnaRegion> list_2, out SAMAlignedLocation loc, out MappedMirnaRegion reg)
 {
   throw new NotImplementedException();
 }
 private void FindLocation(List <SAMAlignedLocation> list, List <MappedMirnaRegion> list_2, out SAMAlignedLocation loc, out MappedMirnaRegion reg)
 {
     throw new NotImplementedException();
 }