diff --git a/test/uk/ac/sanger/artemis/io/Utils.java b/test/uk/ac/sanger/artemis/io/Utils.java index ab840fef067fe8e6c0bb8ab546f473717cad7ba3..b7a10ef9185f7366cc10de45146215586206a9eb 100644 --- a/test/uk/ac/sanger/artemis/io/Utils.java +++ b/test/uk/ac/sanger/artemis/io/Utils.java @@ -34,6 +34,8 @@ import uk.ac.sanger.artemis.SimpleEntryGroup; import uk.ac.sanger.artemis.io.DocumentEntryFactory; import uk.ac.sanger.artemis.io.Entry; import uk.ac.sanger.artemis.io.EntryInformationException; +import uk.ac.sanger.artemis.io.InvalidRelationException; +import uk.ac.sanger.artemis.io.Qualifier; import uk.ac.sanger.artemis.sequence.AminoAcidSequence; import uk.ac.sanger.artemis.sequence.Bases; import uk.ac.sanger.artemis.sequence.NoSequenceException; @@ -85,6 +87,37 @@ public class Utils return null; } + /** + * Get a CDS feature with the feature ID prefix + * @param featureName + * @param features + * @return + */ + public static Feature getCDSFeatureByIdPrefix( + final String id, + final FeatureVector features) + { + try + { + for (int i=0; i<features.size(); i++) + { + Feature f = features.elementAt(i); + final Qualifier q = f.getQualifierByName("ID"); + if (q != null) + { + final String thisId = q.getValues().get(0); + if (thisId.startsWith(id) && f.isCDS()) + return f; + } + } + } + catch(InvalidRelationException e) + { + Assert.fail(e.getMessage()); + } + return null; + } + /** * Method to change the translation table being used * @param n - genetic code table number