예제 #1
0
 private void Instance_SequenceParseCompleted(iDnaSequence sender, int nodeCount)
 {
     if (sender != null)
     {
         textBlockNodeCount.Text = sender.Count.ToString();
     }
 }
예제 #2
0
        public static async Task <iDnaSequence> FromString(string str)
        {
            iDnaSequence sequence = new iDnaSequence();

            await sequence.ParseString(str);

            return(sequence);
        }
예제 #3
0
        private void _sequence_SequenceParseCompleted(iDnaSequence sender, int nodeCount)
        {
            if (_sequence == null)
            {
                return;
            }

            // assign repeats and hairpins only after parse string process is complete
            _sequence.RepeatsRegionIndex  = _deserializedRepeatIndexes;
            _sequence.HairpinsRegionIndex = _deserializedHairPinIndexes;
            _sequence.NotifySequenceLoaded();
        }
예제 #4
0
        public iDnaRegionIndex(iDnaSequence sequence, string regionName) : base()
        {
            _name = regionName;

            if (sequence == null)
            {
                return;
            }

            int min = sequence.Min(i => i.Index),
                max = sequence.Max(i => i.Index);

            _limitMin = min;
            _limitMax = max;

            _minValue = min;
            _maxValue = max;
        }
예제 #5
0
        /// <summary>
        /// rebuild sequence basket (repeats and hairpins) from region indexes
        /// </summary>
        /// <param name="sourceSequence">the parent sequence to which the basket should be attached</param>
        /// <param name="sourceList">the region index list</param>
        /// <returns>the list of sequence basket</returns>
        protected static List <iDnaSequence> RegionListToSequenceList(iDnaSequence sourceSequence, iDnaRegionIndexList sourceList)
        {
            List <iDnaSequence> list = new List <iDnaSequence>();

            if (sourceList == null || sourceList.Count() <= 0 || sourceSequence == null)
            {
                return(list);
            }

            foreach (var region in sourceList)
            {
                var nodes = sourceSequence.Where(i => i.Index >= region.MinValue && i.Index <= region.MaxValue);

                if (nodes == null || nodes.Count() <= 0)
                {
                    continue;
                }

                list.Add(new iDnaSequence(region.Name, nodes, refOnly: true, nOccurrences: region.Occurrences));
            }
            return(list);
        }
예제 #6
0
        protected override void OnStartup(StartupEventArgs e)
        {
            if (e == null)
            {
                base.OnStartup(e);
                return;
            }

            string[]     args = e.Args;
            iDnaSequence seq  = iDnaSequence.Instance;

            if (args != null && args.Length > 0)
            {
                _startupFileName = args[0];
            }

            if (seq != null)
            {
                seq.SequenceParseCompleted += Seq_SequenceParseCompleted;
            }

            base.OnStartup(e);
        }
예제 #7
0
 /// <summary>
 /// for deserialzation !
 /// </summary>
 /// <param name="seq"></param>
 internal void SetParentSequenceNoCheck(iDnaSequence seq)
 {
     _parentSequence = seq;
 }
예제 #8
0
 public iDnaRegionIndexList(iDnaSequence sequence, string regionName)
 {
     _parentSequence = sequence;
 }
예제 #9
0
 private void Seq_SequenceParseCompleted(iDnaSequence sender, int nodeCount)
 {
     SetMainWindowTitle(iDnaSequence.Instance.Name);
 }
예제 #10
0
 void InitialzeRootSequence()
 {
     _sequence = iDnaSequence.Instance;
     _sequence.SequenceParseCompleted += _sequence_SequenceParseCompleted;
 }
예제 #11
0
 public iDnaSequenceContract(iDnaSequence sequence) : base()
 {
     _sequence = sequence;
 }
예제 #12
0
 public iDnaSequenceContract() : base()
 {
     _sequence = iDnaSequence.Instance;
 }
예제 #13
0
 public iDnaNode(iDnaSequence parentSequence, iDnaBase rootBase, int index) : base()
 {
     _parentSequence = parentSequence;
     _base           = rootBase;
     _index          = index;
 }