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
This commit is contained in:
asivache 2009-05-26 21:36:50 +00:00
parent f4119c17de
commit 568a0d3c27
1 changed files with 8 additions and 5 deletions

View File

@ -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<GenomeLoc>(exon_starts.length-1);
exon_frames = new ArrayList<Integer>(eframes.length - 1);
exons = new ArrayList<GenomeLoc>(exon_starts.length);
exon_frames = new ArrayList<Integer>(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]));
}
}