def main(gff_file,bed_corrected): gff = Gff(gff_file) bed = Bed(bed_corrected) gffLength = gff.__len__() gff_index = 0 info, before = '','' fp=open(gff_file+'.modified','w') for index in range(gffLength): item = gff.__getitem__(index) info = item.accn if item.accn != 'UNDEF': if item.type == 'gene': gene_bed = bed.__getitem__(gff_index).__str__().split('\t')[3] gene_list = gene_bed.split('|') paralist = item.accn.split(';') print(gene_bed, paralist) if len(gene_list) == 1 and len(paralist)==2: gene1, gene2 = paralist[0].split(',')[0], paralist[1].split(',')[0] if gene_bed == gene1: item.__setattr__("accn", paralist[0]) before = paralist[0] elif gene_bed == gene2: item.__setattr__("accn", paralist[1]) before = paralist[1] else: before = item.accn else : before = item.accn gff_index = gff_index + 1 else: item.__setattr__("accn",before) else: pass fp.write(str(item)+'\n') fp.close()