Exemplo n.º 1
0
        /// <summary>
        /// Build Suffix Tree using reference sequence
        /// </summary>
        /// <param name="referenceSequence">sequence to build SuffixTree</param>
        /// <returns>Suffix Tree</returns>
        protected override ISuffixTree BuildSuffixTree(ISequence referenceSequence)
        {
            ISuffixTreeBuilder suffixTreeBuilder = Factory.CreateNew(referenceSequence);
            ISuffixTree        suffixTree        = suffixTreeBuilder.BuildSuffixTree(referenceSequence);

            return(suffixTree);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Traverse the suffix tree using query sequence and return list of MUMs
        /// </summary>
        /// <param name="suffixTree">Suffix tree</param>
        /// <param name="referenceSequence">Reference sequence</param>
        /// <param name="sequence">Query sequence</param>
        /// <param name="lengthOfMUM">Minimum length of MUM</param>
        /// <returns>List of MUMs</returns>
        protected override IList <MaxUniqueMatch> Streaming(
            ISuffixTree suffixTree,
            ISequence referenceSequence,
            ISequence sequence,
            long lengthOfMUM)
        {
            ISuffixTreeBuilder suffixTreeBuilder = Factory.CreateNew(referenceSequence);

            return(suffixTreeBuilder.FindMatches(suffixTree, sequence, lengthOfMUM));
        }
Exemplo n.º 3
0
        public void TestFindMaximumMatchInSequence()
        {
            string   sequenceString = "BANANA";
            Sequence sequence       = new Sequence(Alphabets.Protein, sequenceString);

            using (SimpleSuffixTreeBuilder simpleSuffixTreebldr = new SimpleSuffixTreeBuilder())
            {
                ISuffixTreeBuilder simpleSuffixTreeBuilder = simpleSuffixTreebldr;
                ISuffixTree        simpleSuffixTree        = simpleSuffixTreeBuilder.BuildSuffixTree(sequence);

                string   queryString   = "ANA";
                Sequence querySequence = new Sequence(Alphabets.Protein, queryString);

                IList <MaxUniqueMatch> MUMs = simpleSuffixTreeBuilder.FindMaximumMatches(simpleSuffixTree, querySequence, 3);

                // Verify the count of MUMs found
                Assert.AreEqual(1, MUMs.Count);
                simpleSuffixTreeBuilder = null;
            }
        }