Reads an extracts all attributes in the attributes section of a GTF and constructs a new dataframe wiht one collumn per attribute instead of the attributes column

    :param inGTF: GTF dataframe to be parsed
    :returns: a dataframe of the orignal input GTF with attributes parsed.

def parseGTF(inGTF):
    """
    Reads an extracts all attributes in the attributes section of a GTF and constructs a new dataframe wiht one collumn per attribute instead of the attributes column

    :param inGTF: GTF dataframe to be parsed
    :returns: a dataframe of the orignal input GTF with attributes parsed.

    """

    desc=attributesGTF(inGTF)
    ref=inGTF.copy()
    ref.reset_index(inplace=True, drop=True)
    df=ref.drop(['attribute'],axis=1).copy()
    for d in desc:
        field=retrieve_GTF_field(d,ref)
        df=pd.concat([df,field],axis=1)
    return df