code: public static Location fromBioExt( int start, int length, char strand, int totalLength )
  	 {
  		int s= start;
  		int e= s + length;
  
  		if( !( strand == '-' || strand == '+' || strand == '.' ))
  		{
  			throw new IllegalArgumentException( "Strand must be '+', '-', or '.'" );
  		}
  
  		if( strand == '-' )
  		{
  			s= s - totalLength;
  			e= e - totalLength;
  		}
  
  		return new Location( s, e );
  	 }
docs: Create a location from MAF file coordinates, which represent negative
  strand locations as the distance from the end of the sequence.
  
  @param start Origin 1 index of first symbol.
  @param length Number of symbols in range.
  @param strand '+' or '-' or '.' ('.' is interpreted as '+').
  @param totalLength Total number of symbols in sequence.
  @throws IllegalArgumentException Strand must be '+', '-', '.'