code: static public LinkedHashMap<String, ChromosomeSequence> loadFastaAddGeneFeaturesFromGmodGFF3(File fastaSequenceFile, File gffFile,boolean lazyloadsequences) throws Exception {
  		LinkedHashMap<String, DNASequence> dnaSequenceList = FastaReaderHelper.readFastaDNASequence(fastaSequenceFile,lazyloadsequences);
  		LinkedHashMap<String, ChromosomeSequence> chromosomeSequenceList = GeneFeatureHelper.getChromosomeSequenceFromDNASequence(dnaSequenceList);
  		FeatureList listGenes = GFF3Reader.read(gffFile.getAbsolutePath());
  		addGmodGFF3GeneFeatures(chromosomeSequenceList, listGenes);
  		return chromosomeSequenceList;
  	}
docs: Lots of variations in the ontology or descriptors that can be used in GFF3 which requires writing a custom parser to handle a GFF3 generated or used
  by a specific application. Probably could be abstracted out but for now easier to handle with custom code to deal with gff3 elements that are not
  included but can be extracted from other data elements.
  @param fastaSequenceFile
  @param gffFile
  @param lazyloadsequences If set to true then the fasta file will be parsed for accession id but sequences will be read from disk when needed to save memory
  @return
  @throws Exception