/// <summary> /// Validate the DeBruijnNode ctor by passing the kmer and validating /// the node object. /// </summary> /// <param name="nodeName">xml node name used for different testcases</param> internal void ValidateDeBruijnNodeCtor(string nodeName) { string filePath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string kmerLength = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.KmerLengthNode); string nodeExtensionsCount = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.NodeExtensionsCountNode); string kmersCount = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.KmersCountNode); string leftNodeExtensionCount = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.LeftNodeExtensionsCountNode); string rightNodeExtensionCount = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.RightNodeExtensionsCountNode); // Get the input reads and build kmers IEnumerable<ISequence> sequenceReads = null; using (FastAParser parser = new FastAParser(filePath)) { sequenceReads = parser.Parse(); // Build the kmers using this this.KmerLength = int.Parse(kmerLength, (IFormatProvider)null); this.SequenceReads.Clear(); this.SetSequenceReads(sequenceReads.ToList()); IList<KmersOfSequence> lstKmers = new List<KmersOfSequence>( (new SequenceToKmerBuilder()).Build(this.SequenceReads, this.KmerLength)); // Validate the node creation // Create node and add left node. ISequence seq = this.SequenceReads.First(); KmerData32 kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[0].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode node = new DeBruijnNode(kmerData, 1); kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[1].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode leftnode = new DeBruijnNode(kmerData, 1); DeBruijnNode rightnode = new DeBruijnNode(kmerData, 1); node.SetExtensionNode(false, true, leftnode); node.SetExtensionNode(true, true, rightnode); // Validate DeBruijnNode class properties. Assert.AreEqual(nodeExtensionsCount, node.ExtensionsCount.ToString((IFormatProvider)null)); Assert.AreEqual(kmersCount, node.KmerCount.ToString((IFormatProvider)null)); Assert.AreEqual(leftNodeExtensionCount, node.LeftExtensionNodesCount.ToString((IFormatProvider)null)); Assert.AreEqual(rightNodeExtensionCount, node.RightExtensionNodesCount.ToString((IFormatProvider)null)); Assert.AreEqual(leftNodeExtensionCount, node.LeftExtensionNodesCount.ToString((IFormatProvider)null)); Assert.AreEqual(rightNodeExtensionCount, node.RightExtensionNodesCount.ToString((IFormatProvider)null)); } ApplicationLog.WriteLine("Padena P1 : DeBruijnNode ctor() validation for Padena step2 completed successfully"); }
/// <summary> /// Validate AddRightEndExtension() method of DeBruijnNode /// </summary> /// <param name="nodeName">xml node name used for different testcases</param> internal void ValidateDeBruijnNodeAddRightExtension(string nodeName) { string filePath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string kmerLength = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.KmerLengthNode); // Get the input reads and build kmers using (FastAParser parser = new FastAParser(filePath)) { IEnumerable<ISequence> sequenceReads = parser.Parse(); // Build kmers from step1 this.KmerLength = int.Parse(kmerLength, null); this.SequenceReads.Clear(); this.SetSequenceReads(sequenceReads.ToList()); IList<KmersOfSequence> lstKmers = new List<KmersOfSequence>((new SequenceToKmerBuilder()).Build(this.SequenceReads, this.KmerLength)); // Validate the node creation // Create node and add left node. ISequence seq = this.SequenceReads.First(); KmerData32 kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[0].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode node = new DeBruijnNode(kmerData, 1); kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[1].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode rightNode = new DeBruijnNode(kmerData, 1); node.SetExtensionNode(true, true, rightNode); Assert.AreEqual(lstKmers[1].Kmers.First().Count, node.RightExtensionNodesCount); } ApplicationLog.WriteLine(@"Padena BVT :DeBruijnNode AddRightExtension() validation for Padena step2 completed successfully"); }
/// <summary> /// Validate RemoveExtension() method of DeBruijnNode /// </summary> /// <param name="nodeName">xml node name used for different testcases</param> internal void ValidateDeBruijnNodeRemoveExtension(string nodeName) { string filePath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string kmerLength = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.KmerLengthNode); // Get the input reads and build kmers IEnumerable<ISequence> sequenceReads = null; FastAParser parser = new FastAParser(); parser.Open(filePath); sequenceReads = parser.Parse().ToList(); parser.Close (); // Build kmers from step1 this.KmerLength = int.Parse(kmerLength, (IFormatProvider)null); this.SequenceReads.Clear(); this.SetSequenceReads(sequenceReads.ToList()); IList<KmersOfSequence> lstKmers = new List<KmersOfSequence>( (new SequenceToKmerBuilder()).Build(this.SequenceReads, this.KmerLength)); // Validate the node creation // Create node and add left node. ISequence seq = this.SequenceReads.First(); KmerData32 kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[0].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode node = new DeBruijnNode(kmerData, 1); kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[1].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode leftnode = new DeBruijnNode(kmerData, 1); DeBruijnNode rightnode = new DeBruijnNode(kmerData, 1); node.SetExtensionNode(false, true, leftnode); node.SetExtensionNode(true, true, rightnode); // Validates count before removing right and left extension nodes. Assert.AreEqual(lstKmers[1].Kmers.First().Count, node.RightExtensionNodesCount); Assert.AreEqual(1, node.RightExtensionNodesCount); Assert.AreEqual(1, node.LeftExtensionNodesCount); // Remove right and left extension nodes. node.RemoveExtensionThreadSafe(rightnode); node.RemoveExtensionThreadSafe(leftnode); // Validate node after removing right and left extensions. Assert.AreEqual(0, node.RightExtensionNodesCount); Assert.AreEqual(0, node.LeftExtensionNodesCount); ApplicationLog.WriteLine(@"Padena P1 :DeBruijnNode AddRightExtension() validation for Padena step2 completed successfully"); }
/// <summary> /// Validate the DeBruijnNode ctor by passing the kmer and validating /// the node object. /// </summary> /// <param name="nodeName">xml node name used for different testcases</param> internal void ValidateDeBruijnNodeCtor(string nodeName) { string filePath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string kmerLength = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.KmerLengthNode); // Get the input reads and build kmers FastAParser parser = new FastAParser(); parser.Open( filePath.Replace("\\", System.IO.Path.DirectorySeparatorChar.ToString())); IEnumerable<ISequence> sequenceReads = parser.Parse().ToList(); parser.Close (); // Build the kmers using assembler this.KmerLength = int.Parse(kmerLength, null); this.SequenceReads.Clear(); this.SetSequenceReads(sequenceReads.ToList()); IList<KmersOfSequence> lstKmers = new List<KmersOfSequence>((new SequenceToKmerBuilder()).Build(this.SequenceReads, this.KmerLength)); // Validate the node creation // Create node and add left node. ISequence seq = this.SequenceReads.First(); KmerData32 kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[0].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode node = new DeBruijnNode(kmerData, 1); kmerData = new KmerData32(); kmerData.SetKmerData(seq, lstKmers[1].Kmers.First().Positions[0], this.KmerLength); DeBruijnNode leftnode = new DeBruijnNode(kmerData, 1); node.SetExtensionNode(false, true, leftnode); Assert.AreEqual(lstKmers[1].Kmers.First().Count, node.LeftExtensionNodesCount); ApplicationLog.WriteLine( "Padena BVT : DeBruijnNode ctor() validation for Padena step2 completed successfully"); }