示例#1
0
        public IDictionary <string, IList <int> > GetMatches(SequenceModel sequenceData, string[] searches, bool ignoreCase = false, int startIndex = 0)
        {
            var sequence = _sequenceProvider.Provide(sequenceData?.FileName, sequenceData?.Content)?.First();

            _boyerMoore.IgnoreCase = ignoreCase;
            _boyerMoore.StartIndex = startIndex;
            return(_boyerMoore.FindMatch(sequence, searches));
        }
示例#2
0
        public void SimpleFindOneOutputPatternTest()
        {
            ISequence      sequence      = new Sequence(DnaAlphabet.Instance, "AGCT");
            IPatternFinder patternFinder = new BoyerMoore();
            IList <int>    actual        = patternFinder.FindMatch(sequence, "AGCT");

            HashSet <int> expected = new HashSet <int>();

            expected.Add(0);

            Assert.IsTrue(Compare(expected, actual));
        }
示例#3
0
        public void MatchWildcardPatternMiddle()
        {
            ISequence      sequence      = new Sequence(DnaAlphabet.Instance, "AGCTAGGTAGCTCAAAAAABCD");
            IPatternFinder patternFinder = new BoyerMoore();
            IList <int>    actual        = patternFinder.FindMatch(sequence, "AGCTAGGTAGCTCA*BCD");

            HashSet <int> expected = new HashSet <int>();

            expected.Add(0);

            Assert.IsTrue(Compare(expected, actual));
        }
示例#4
0
        public void BoyerMooreAlignDnaSequenceWith1000BP()
        {
            var    boyerMoore         = new BoyerMoore();
            string boyerMooreSequence =
                utilityObj.xmlUtil.GetTextValue(Constants.BoyerMooreSequence, Constants.SequenceNode);
            string referenceSequence =
                utilityObj.xmlUtil.GetTextValue(Constants.BoyerMooreSequence, Constants.SearchSequenceNode);
            string expectedMatch =
                utilityObj.xmlUtil.GetTextValue(Constants.BoyerMooreSequence, Constants.ExpectedMatch);
            ISequence boyerMooreSeq = new Sequence(Alphabets.DNA, boyerMooreSequence);

            IList <int> indexList = boyerMoore.FindMatch(boyerMooreSeq,
                                                         referenceSequence);

            Assert.AreEqual(expectedMatch, indexList[0].ToString((IFormatProvider)null));
        }
示例#5
0
        public void MultipleFindOneOutputPatternTest()
        {
            ISequence      sequence = new Sequence(DnaAlphabet.Instance, "AGCTAGGTTGGCC");
            IList <string> patterns = new List <string>();

            patterns.Add("AGCT");
            patterns.Add("AAAAA");
            IPatternFinder patternFinder = new BoyerMoore();
            IDictionary <string, IList <int> > actual = patternFinder.FindMatch(sequence, patterns);

            IDictionary <string, HashSet <int> > expected = new Dictionary <string, HashSet <int> >();
            HashSet <int> indices = new HashSet <int>();

            indices.Add(0);
            expected.Add("AGCT", indices);

            indices = new HashSet <int>();
            expected.Add("AAAAA", indices);

            Assert.IsTrue(Compare(expected, actual));
        }