diff --git a/uk/ac/sanger/artemis/io/GFFDocumentEntry.java b/uk/ac/sanger/artemis/io/GFFDocumentEntry.java index fd84eaf80528345cdabf72b67d8ec66bcb564311..98470fcc5a0967368a0600a228dc59041c2177ce 100644 --- a/uk/ac/sanger/artemis/io/GFFDocumentEntry.java +++ b/uk/ac/sanger/artemis/io/GFFDocumentEntry.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/io/GFFDocumentEntry.java,v 1.11 2005-04-27 08:26:58 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/io/GFFDocumentEntry.java,v 1.12 2005-04-27 10:43:15 tjc Exp $ */ package uk.ac.sanger.artemis.io; @@ -36,7 +36,7 @@ import java.util.Vector; * A DocumentEntry that can read an GFF entry from a Document. * * @author Kim Rutherford - * @version $Id: GFFDocumentEntry.java,v 1.11 2005-04-27 08:26:58 tjc Exp $ + * @version $Id: GFFDocumentEntry.java,v 1.12 2005-04-27 10:43:15 tjc Exp $ **/ public class GFFDocumentEntry extends SimpleDocumentEntry @@ -176,18 +176,21 @@ public class GFFDocumentEntry extends SimpleDocumentEntry try { - if(this_feature.getKey().getKeyString().equals("CDS")) + String key = this_feature.getKey().getKeyString(); + if(key.equals("CDS") || key.equals("polypeptide_domain")) { - if(this_feature.getQualifierByName("ID") != null) + if(this_feature.getQualifierByName("Parent") != null) { final StringVector values = - this_feature.getQualifierByName("ID").getValues(); + this_feature.getQualifierByName("Parent").getValues(); group_name = values.elementAt(0); // check the parent is a gene // if(!genes.contains(group_name)) // continue; } + else + continue; } else continue; @@ -203,15 +206,24 @@ public class GFFDocumentEntry extends SimpleDocumentEntry } else { - StringVector values = - this_feature.getQualifierByName("Parent").getValues(); - String parent = values.elementAt(0); + String parent1 = null; + String parent2 = null; + + try + { + StringVector values = + this_feature.getQualifierByName("ID").getValues(); + parent1 = values.elementAt(0); - Feature stored_feature = other_features.featureAt(0); - values = stored_feature.getQualifierByName("Parent").getValues(); - + Feature stored_feature = other_features.featureAt(0); + values = stored_feature.getQualifierByName("ID").getValues(); + parent2 = values.elementAt(0); + } + catch(NullPointerException e){} + // same ID with same Parent - if(parent.equals(values.elementAt(0))) + if((parent1 == null && parent2 == null) || + parent1.equals(parent2)) other_features.add(this_feature); }