def extract_gene_annotations_from_GTF(tab_fields):
    """Parses the description field of a gene GTF in order to organize the 
       information therein into a dictionary.
    """

    attributes = {}

    # remove trailing newline and split by semicolon
    description = tab_fields[-1].strip('\n')
    description = description.split(';')

    # Parse description
    for fields in description:
        if fields == "" or fields == " ": continue
        fields = fields.split()
        if fields[0] == '': fields = fields[1:]

        key = fields[0].replace('"', '')
        val = ' '.join(fields[1:]).replace('"', '')
        
        attributes[key] = val

    attributes["source"] = tab_fields[1]

    return attributes