From f1c4ee0fcfae5c7c1d2bde27e89b44939720d9bd Mon Sep 17 00:00:00 2001 From: tcarver <tjc> Date: Mon, 22 Apr 2013 10:39:05 +0100 Subject: [PATCH] fix for CDS IDs in multi-sequence GFF files --- uk/ac/sanger/artemis/io/GFFStreamFeature.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/uk/ac/sanger/artemis/io/GFFStreamFeature.java b/uk/ac/sanger/artemis/io/GFFStreamFeature.java index a8508516f..74f1c4c70 100644 --- a/uk/ac/sanger/artemis/io/GFFStreamFeature.java +++ b/uk/ac/sanger/artemis/io/GFFStreamFeature.java @@ -479,13 +479,22 @@ public class GFFStreamFeature extends SimpleDocumentFeature { if(id_range_store != null) { + int offset = 0; + if(getGffSeqName() != null && contig_ranges != null && + contig_ranges.containsKey(getGffSeqName())) + { + // adjust for coordinates in multi-sequence GFF + Range offset_range = contig_ranges.get(getGffSeqName()); + offset = offset_range.getStart()-1; + } + Enumeration<String> enum_ranges = id_range_store.keys(); while(enum_ranges.hasMoreElements()) { String key = enum_ranges.nextElement(); Range range = id_range_store.get(key); - if(range.getStart() == r.getStart() && - range.getEnd() == r.getEnd()) + if(range.getStart() == r.getStart()-offset && + range.getEnd() == r.getEnd()-offset) return key; } } -- GitLab