public void ValidateNUCmerGetClusters() { // NOTE: Nigel ran this test with the same data through mmummer and mgaps and got the same result. // Gets the reference sequence from the FastA file string filePath = this.utilityObj.xmlUtil.GetTextValue(Constants.MediumSizeSequenceNodeName, Constants.FilePathNode); // Gets the query sequence from the FastA file string queryFilePath = this.utilityObj.xmlUtil.GetTextValue(Constants.MediumSizeSequenceNodeName, Constants.SearchSequenceFilePathNode); FastAParser parser = new FastAParser(); IEnumerable <ISequence> seqs1 = parser.Parse(filePath); IEnumerable <ISequence> seqs2 = parser.Parse(queryFilePath); var nuc = new Bio.Algorithms.Alignment.NUCmer(seqs1.First()) { LengthOfMUM = 5, MinimumScore = 0, }; var clusts = nuc.GetClusters(seqs2.First()); string clustCount1 = this.utilityObj.xmlUtil.GetTextValue( Constants.MediumSizeSequenceNodeName, Constants.ClustCount1Node); Assert.AreEqual(clustCount1, clusts.Count.ToString(CultureInfo.InvariantCulture)); }
/// <summary> /// Returns the cluster. /// </summary> /// <param name="referenceSequence">The Reference sequences.</param> /// <param name="originalQuerySequences">The Query sequences.</param> /// <returns>Returns list of clusters.</returns> private IList<List<IList<Cluster>>> GetCluster(IEnumerable<ISequence> referenceSequence, IEnumerable<ISequence> originalQuerySequences) { var clusters = new List<List<IList<Cluster>>>(); var clusters1 = new List<IList<Cluster>>(); IEnumerable<ISequence> querySequences = Forward ? originalQuerySequences : (Reverse ? ReverseComplementSequenceList(originalQuerySequences) : AddReverseComplementsToSequenceList(originalQuerySequences)); _queryCount += querySequences.Count(); foreach (var sequence in referenceSequence) { NUCmer nucmer = new NUCmer(sequence) { FixedSeparation = FixedSeparation, BreakLength = BreakLength, LengthOfMUM = MinMatch, MaximumSeparation = MaxGap, MinimumScore = MinCluster, SeparationFactor = (float) DiagFactor }; clusters1.AddRange(querySequences.Select(qs => nucmer.GetClusters(qs, !MaxMatch, qs.IsMarkedAsReverseComplement()))); } clusters.Add(clusters1); return clusters; }
public void ValidateNUCmerGetClusters() { // NOTE: Nigel ran this test with the same data through mmummer and mgaps and got the same result. // Gets the reference sequence from the FastA file string filePath = this.utilityObj.xmlUtil.GetTextValue(Constants.MediumSizeSequenceNodeName, Constants.FilePathNode); // Gets the query sequence from the FastA file string queryFilePath = this.utilityObj.xmlUtil.GetTextValue(Constants.MediumSizeSequenceNodeName, Constants.SearchSequenceFilePathNode); FastAParser parser = new FastAParser(); IEnumerable<ISequence> seqs1 = parser.Parse(filePath); IEnumerable<ISequence> seqs2 = parser.Parse(queryFilePath); var nuc = new Bio.Algorithms.Alignment.NUCmer(seqs1.First()) { LengthOfMUM = 5, MinimumScore = 0, }; var clusts = nuc.GetClusters(seqs2.First()); string clustCount1 = this.utilityObj.xmlUtil.GetTextValue( Constants.MediumSizeSequenceNodeName, Constants.ClustCount1Node); Assert.AreEqual(clustCount1, clusts.Count.ToString(CultureInfo.InvariantCulture)); }