/** Tests the adding of features */ public void TestAdd () { Sequence seq = new Sequence( AlphabetType.DNA, "acgt" ); FeatureList featureList = new FeatureList( "Test" ); seq.AddFeatures( featureList ); Feature feature1 = new Feature( "Test1", 1, 3, +1 ); Feature feature2 = new Feature( "Test2", 1, 3, +1 ); featureList.Add( feature1, false ); featureList.Add( feature2, true ); Assert.AreEqual( 2, featureList.Count ); Assert.AreEqual( null, feature1.BaseSequence ); Assert.AreEqual( seq, feature2.BaseSequence ); }
/** Tests the adding of feature lists */ public void TestAddList () { FeatureList featureList1 = new FeatureList( "Test" ); featureList1.Add( new Feature( "Test1", 1, 3, +1 ) ); featureList1.Add( new Feature( "Test2", 1, 3, +1 ) ); FeatureList featureList2 = new FeatureList( "Test" ); featureList2.Add( new Feature( "Test3", 1, 3, +1 ) ); featureList2.Add( new Feature( "Test4", 1, 3, +1 ) ); featureList1.Append( featureList2, true ); Assert.AreEqual( "Test1", featureList1[0].Name ); Assert.AreEqual( "Test2", featureList1[1].Name ); Assert.AreEqual( "Test3", featureList1[2].Name ); Assert.AreEqual( "Test4", featureList1[3].Name ); }
public void TestGetFeatureSequence() { Sequence seq = new Sequence(AlphabetType.DNA, "acgta"); FeatureList featureList = new FeatureList("test"); Feature feature = new Feature("feature1", 2, 4, +1); featureList.Add(feature); seq.AddFeatures(featureList); Assert.AreEqual("cgt", feature.Letters()); }
/** Tests the getter of features */ public void TestFeature () { FeatureList featureList = new FeatureList( "Test" ); Feature feature1 = new Feature( "Test1", 1, 3, +1 ); Feature feature2 = new Feature( "Test2", 1, 3, +1 ); featureList.Add( feature1, false ); featureList.Add( feature2, true ); var t = featureList[ 0 ]; bool ans = feature1.Equals( featureList[0] ); Assert.IsTrue( feature1.Equals( featureList[0] ) ); Assert.IsTrue( feature2.Equals( featureList[1] ) ); Assert.IsTrue( feature2.Equals( featureList[-1] ) ); Assert.IsTrue( feature1.Equals( featureList[2] ) ); Assert.IsTrue( feature2.Equals( featureList[-3] ) ); Assert.IsTrue( feature1.Equals( featureList[4] ) ); Assert.IsTrue( feature1.Equals( featureList["Test1"] ) ); Assert.IsTrue( feature2.Equals( featureList["Test2"] ) ); }
public List<Matched> PerformSearch(string BioPatMLContent, SequenceContract sequence) { List<Matched> matchedList = new List<Matched>(); StringReader sr = new StringReader(BioPatMLContent); Definition MyPatterns = null; using (BioPatMLPatternReader reader = new BioPatMLPatternReader()) { MyPatterns = reader.ReadBioPatML(sr); } Sequence targetSequence = new Sequence(sequence.AlphabetName, sequence.Characters); SequenceList matches = new FeatureList(); IPattern MatchingPattern = MyPatterns.MainPattern; #region If bioPatML pattern is SeriesBest OR SetBest : Search by best if (MatchingPattern is SeriesBest || MatchingPattern is SetBest) { Match match = targetSequence.SearchBest(0, 0, MatchingPattern); matches.Add(match); } #endregion #region Else, pattern is Motif, Any, Anchor, Prosite, RegularEx : Search by normal else //The rest { matches = targetSequence.Search(1, targetSequence.Length, MatchingPattern); } #endregion for (int i = 0; i < matches.Count; i++) { Match matched = matches[i] as Match; matchedList.Add(new Matched (matched.Similarity, matched.Start, matched.End, matched.Length, matched.Letters(), sequence.Name)); } return matchedList; }
/// <summary> /// Creates a feature list with all features of the sequences of the list /// which match the given feature name . /// </summary> /// <param name="featureListName"> /// Name of the feature lists which contain the features to extract. /// </param> /// <param name="featureName">Feature name.</param> /// <returns> /// Returns a feature list with all features which name matches the /// given feature name over all sequences of the sequence list. /// /// </returns> public FeatureList Features(String featureListName, String featureName) { FeatureList featureList = new FeatureList(featureListName); for (int i = 0; i < Count; i++) { FeatureList list = this[i].Features(featureListName); if (list != null) { for (int j = 0; j < list.Count; j++) { Feature feature = list.Feature(j); if (feature.AnnotationValue("Name").Equals(featureName)) featureList.Add(feature); } } } return (featureList); }
/// <summary> /// Setter for a match object on base of another match object. /// </summary> /// <param name="match">Match object with initial values.</param> public void Set(Match match) { Set(match.BaseSequence, match.Start, match.Length, match.Strand, match.Similarity); this.MatchPattern = match.MatchPattern; //this.Name = match.MatchPattern.PatternName; this.impact = match.impact; FeatureList subMatchList = match.SubMatchedList; if (subMatchList != null) { if (MatchedList == null) { FeatureList matchList = new FeatureList("SubMatches"); for (int i = 0; i < subMatchList.Count; i++) matchList.Add(Clone((Match)subMatchList.Feature(i))); MatchedList = matchList; } else { for (int i = 0; i < subMatchList.Count; i++) ((Match)MatchedList.Feature(i)).Set((Match)subMatchList.Feature(i)); } } else MatchedList = null; }
/** Tests the search for a feature which covers a given position */ public void TestInside () { Sequence seq = new Sequence( AlphabetType.DNA, "acgtactgactg" ); FeatureList featureList = new FeatureList( "Test" ); Feature feature1 = new Feature( "Test1", 2, 4, +1 ); Feature feature2 = new Feature( "Test2", 7, 10, +1 ); featureList.Add( feature1 ); featureList.Add( feature2 ); featureList.AttachSequence( seq ); Assert.AreEqual( feature1, featureList.Inside( seq, 2 ) ); Assert.AreEqual( feature1, featureList.Inside( seq, 4 ) ); Assert.AreEqual( null, featureList.Inside( seq, 1 ) ); Assert.AreEqual( null, featureList.Inside( seq, 5 ) ); Assert.AreEqual( feature2, featureList.Inside( seq, 7 ) ); Assert.AreEqual( feature2, featureList.Inside( seq, 10 ) ); Assert.AreEqual( null, featureList.Inside( seq, 6 ) ); Assert.AreEqual( null, featureList.Inside( seq, 11 ) ); }
/// <summary> /// This method transfers all available features from the MBF sequence and /// populate them into biopatml features data type. /// In this version only its name, start and end location is populated. /// </summary> /// <param name="metadata"></param> /// <returns></returns> private FeatureList ExtractFeatures(GenBankMetadata metadata) { List<FeatureItem> mbfFeatures = metadata.Features.All; FeatureList bioFeatureList = new FeatureList(); foreach (FeatureItem item in mbfFeatures) { #region Constructs the feature outline first //Strand is always assumed to be forward +1 QUT.Bio.BioPatML.Sequences.Feature bioFeature = new QUT.Bio.BioPatML.Sequences.Feature (item.Key, item.Location.Start, item.Location.End, 1); bioFeatureList.Add(bioFeature); #endregion #region Adds the qualifier key and values to Feature using AnnotationList AnnotationList annList = new AnnotationList(); foreach (KeyValuePair<string, List<string>> qualitfier in item.Qualifiers) annList.Add(qualitfier.Key, qualitfier.Value[0]); bioFeature.AddAnnotations(annList); #endregion } return bioFeatureList; }