From 733490fd53e92414b5ae46a12e69581196e3419b Mon Sep 17 00:00:00 2001 From: tcarver <tjc> Date: Fri, 13 Sep 2013 10:11:06 +0100 Subject: [PATCH] add getCDSFeatureByIdPrefix() --- test/uk/ac/sanger/artemis/io/Utils.java | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/test/uk/ac/sanger/artemis/io/Utils.java b/test/uk/ac/sanger/artemis/io/Utils.java index ab840fef0..b7a10ef91 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 -- GitLab