def tracking(gfftracking):
    """
    Read the data from the GffCompare gffcmp.tracking file and
    format as a dictionary.

    Only takes three-way matches from the file.

    :return: tcons_XXXX (key) : [[transcript_id 1],
                                [transcript_id 2],
                                [transcript_id 3]] (value)
    """
    tcons = {}
    with open(gfftracking) as file:
        for line in file:
            line = line.split()
            transcripts = line[4::]
            temp_list = []
            # '-' means that at least one pipeline did not have a matching transcript
            # only take lines with three transcripts
            if '-' not in transcripts:
                for transcript in transcripts:
                    temp_list.append(transcript.split('|')[1])
                tcons[line[0]] = temp_list
    return tcons