From 568a0d3c27df5c1e2784dd8dfdc1bfe5c388d1b4 Mon Sep 17 00:00:00 2001 From: asivache Date: Tue, 26 May 2009 21:36:50 +0000 Subject: [PATCH] exon coordinates are now parsed correctly (?). IF DELIMITER IS THE LAST CHARACTER IN A STRING, String.split() DOES NOT return empty field as the last one; instead, the last field returned will be the one immediately before such delimiter! Wicked. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@822 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/playground/gatk/refdata/rodRefSeq.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/refdata/rodRefSeq.java b/java/src/org/broadinstitute/sting/playground/gatk/refdata/rodRefSeq.java index 3e2f3a031..9640957a2 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/refdata/rodRefSeq.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/refdata/rodRefSeq.java @@ -52,9 +52,10 @@ public class rodRefSeq extends BasicReferenceOrderedDatum { public boolean isExon() { - if ( records == null ) return false; + if ( records == null ) return false; for ( RefSeqRecord r : records) { for ( GenomeLoc e : r.getExons() ) { +// System.err.println("EXON: "+e); if (location.getStart() >= e.getStart() && location.getStart() <= e.getStop() ) return true; } } @@ -75,6 +76,8 @@ public class rodRefSeq extends BasicReferenceOrderedDatum { for ( RefSeqRecord r : records ) { b.append(' '); b.append(r.getTranscriptId()); + b.append("; "+ r.getNumExons() + " exons: "); + for ( GenomeLoc e : r.getExons() ) b.append(" " + e); } return b.toString(); } @@ -247,11 +250,11 @@ class RefSeqRecord { assert exon_starts.length == exon_stops.length : "Data format error: numbers of exon start and stop positions differ"; assert exon_starts.length == eframes.length : "Data format error: numbers of exons and exon frameshifts differ"; - exons = new ArrayList(exon_starts.length-1); - exon_frames = new ArrayList(eframes.length - 1); + exons = new ArrayList(exon_starts.length); + exon_frames = new ArrayList(eframes.length); - for ( int i = 0 ; i < exon_starts.length - 1 ; i++ ) { - exons.add(new GenomeLoc(contig_name, Integer.parseInt(exon_starts[i]+1), Integer.parseInt(exon_stops[i]) ) ); + for ( int i = 0 ; i < exon_starts.length ; i++ ) { + exons.add(new GenomeLoc(contig_name, Integer.parseInt(exon_starts[i])+1, Integer.parseInt(exon_stops[i]) ) ); exon_frames.add(Integer.decode(eframes[i])); } }