code: private static Feature parseLine(String s) {
  		//FIXME update to use regex split on tabs
  		//FIXME better errors on parse failures
  		String[] line = p.split(s);
  		String seqname =line[0].trim();
  
  		String source =line[1].trim();
  
  		String type =line[2].trim();
  
  
  		String locStart =line[3].trim();
  
  		String locEnd =line[4].trim();
  
  		Double score;
  
  		try {
  			score = Double.parseDouble(line[5].trim());
  		} catch (Exception e) {
  			score = 0.0;
  		}
  
  
  		char strand = line[6].trim().charAt(0);
  		//added by scooter willis to deal with glimmer predictions that
  		//have the start after the end but is a negative strand
  		int locationStart = Integer.parseInt(locStart);
  		int locationEnd = Integer.parseInt(locEnd);
  		if(locationStart > locationEnd){
  			int temp = locationStart;
  			locationStart = locationEnd;
  			locationEnd = temp;
  
  		}
  		Location location = Location.fromBio(locationStart, locationEnd, strand);
  
  		assert (strand == '-') == location.isNegative();
  
  		int frame;
  		try {
  			frame = Integer.parseInt(line[7].trim());
  		} catch (Exception e) {
  			frame = -1;
  		}
  		String attributes=line[8];
  	/*    //grab everything until end of line (or # comment)
  		start = end + 1;
  		end = s.indexOf('#', start);
  		String attributes = null;
  		if (end < 0) {
  			attributes = new String(s.substring(start));
  		} else {
  			attributes = new String(s.substring(start, end));
  		}
   */
  		return new Feature(seqname, source, type, location, score, frame, attributes.split("#")[0]);
  
  	}
docs: create Feature from line of GFF file