# Recuperation de l'identifiant du gene : Hsapiens, Celegans, Dmelanogaster, Mmusculus, Rnorvegicus, Athaliana + Ecoli, Scerevisiae
elifi[0:10]=="DR KEGG;":
iforganism=="homo+sapiens":
ifORF=='NA':
ORF=re.search(r"(hsa:)(?P<ug>\S+)(;)",i)
ifORFisnotNone:
ORF=ORF.group('ug')
ORF='hsa:'+str(ORF)
else:
ORF='NA'
iforganism=="caenorhabditis+elegans":
ifORF=='NA':
ORF=re.search(r"(cel:)(?P<ug>\S+)(;)",i)
ifORFisnotNone:
ORF=ORF.group('ug')
ORF='cel:'+str(ORF)
else:
ORF='NA'
iforganism=="drosophila+melanogaster":
ifORF=='NA':
ORF=re.search(r"(dme:)(?P<ug>\S+)(;)",i)
ifORFisnotNone:
ORF=ORF.group('ug')
ORF='dme:'+str(ORF)
else:
ORF='NA'
iforganism=="mus+musculus":
ifORF=='NA':
ORF=re.search(r"(mmu:)(?P<ug>\S+)(;)",i)
ifORFisnotNone:
ORF=ORF.group('ug')
ORF='mmu:'+str(ORF)
else:
ORF='NA'
iforganism=="rattus+norvegicus":
ifORF=='NA':
ORF=re.search(r"(rno:)(?P<ug>\S+)(;)",i)
ifORFisnotNone:
ORF=ORF.group('ug')
ORF='rno:'+str(ORF)
else:
ORF='NA'
#if organism == "escherichia+coli" :
# if ORF == 'NA' :
# ORF = re.search(r"(eco:)(?P<ug>\S+)(;)", i)
# if ORF is not None:
# ORF = ORF.group('ug')
# ORF = 'eco:' + str(ORF)
# else :
# ORF = 'NA'
#if organism == "saccharomyces+cerevisiae" :
# if ORF == 'NA' :
# ORF = re.search(r"(sce:)(?P<ug>\S+)(;)", i)
# if ORF is not None:
# ORF = ORF.group('ug')
# ORF = 'sce:' + str(ORF)
# else :
# ORF = 'NA'
# Recuperationdu nom du gene, des synonymes et de l'identifiant du gene
ifi[0:2]=="GN":
# Recuperation des synonymes
iftest==1:
ligneSyn=i.split(";")
n=len(i)
listeLigne=ligneSyn[0].strip("GN ")
laLigne=listeLigne.replace(" ","")
listeSyn=laLigne.split(",")
Supprimer=[]
forkinrange(0,len(listeSyn)):# enlever {...}
sup=re.search(r"({)(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)+"}"
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"({)(?P<supp>\S+)$",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"^(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
Supprimer.append(k)
forsinSupprimer:
dellisteSyn[s]
m=len(listeSyn)
ifi[n-1]==";"andm>0:# tester si c'est la derniere ligne
test=0
listeSyn[m-1]=listeSyn[m-1].replace(";","")
elifm==0:
test=0
listeSyn=[]
else:
dellisteSyn[m-1]
iflen(listeSyn)>0:
ajout=";".join(listeSyn)
Syn=Syn+ajout+";"
SYN=re.search(r"(Synonyms=)",i)
ifSYNisnotNone:
listeLigne=i.split(";")
iflen(listeLigne)==2:# la ligne ne contient que les synonymes, et la liste est complete sur une seule ligne
listeLigne[0]=listeLigne[0].strip("GN Synonyms=")
laLigne=listeLigne[0].replace(" ","")
listeSyn=laLigne.split(",")
Syn=''
Supprimer=[]
forkinrange(0,len(listeSyn)):# enlever {...}
sup=re.search(r"({)(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)+"}"
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"({)(?P<supp>\S+)$",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"^(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
Supprimer.append(k)
forsinSupprimer:
dellisteSyn[s]
Syn=";".join(listeSyn)
Syn=Syn+";"
eliflen(listeLigne)==1:# la ligne ne contient que les synonymes, et la liste ne se termine pas a la premiere ligne, elle est donc sur au moins deux lignes
test=1
listeLigne[0]=listeLigne[0].strip("GN Synonyms=")
laLigne=listeLigne[0].replace(" ","")
listeSyn=laLigne.split(",")
Syn=''
Supprimer=[]
forkinrange(0,len(listeSyn)):# enlever {...}
sup=re.search(r"({)(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)+"}"
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"({)(?P<supp>\S+)$",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"^(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
Supprimer.append(k)
forsinSupprimer:
dellisteSyn[s]
dellisteSyn[-1]
Syn=";".join(listeSyn)
Syn=Syn+";"
else:# la ligne contient diverses informations en plus des synonymes, il faut donc retrouver le fragment concernant les synonymes
forjinrange(0,len(listeLigne)):
SYN=re.search(r"(Synonyms=)",listeLigne[j])
ifSYNisnotNone:
iflisteLigne[-1]=="":# la liste se termine sur cette ligne
ifj==0:
listeLigne[j]=listeLigne[j].strip("GN Synonyms=")
else:
listeLigne[j]=listeLigne[j].strip(" Synonyms=")
laLigne=listeLigne[j].replace(" ","")
listeSyn=laLigne.split(",")
Syn=''
Supprimer=[]
forkinrange(0,len(listeSyn)):# enlever {...}
sup=re.search(r"({)(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)+"}"
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"({)(?P<supp>\S+)$",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"^(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
Supprimer.append(k)
forsinSupprimer:
dellisteSyn[s]
Syn=";".join(listeSyn)
Syn=Syn+";"
else:# la liste est sur plusieurs lignes
test=1
listeLigne[j]=listeLigne[j].strip(" Synonyms=")
laLigne=listeLigne[j].replace(" ","")
listeSyn=laLigne.split(",")
Syn=''
Supprimer=[]
forkinrange(0,len(listeSyn)):# enlever {...}
sup=re.search(r"({)(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)+"}"
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"({)(?P<supp>\S+)$",listeSyn[k])
ifsupisnotNone:
sup=sup.group('supp')
sup="{"+str(sup)
listeSyn[k]=listeSyn[k].replace(sup,"")
sup=re.search(r"^(?P<supp>\S+)(})",listeSyn[k])
ifsupisnotNone:
Supprimer.append(k)
forsinSupprimer:
dellisteSyn[s]
dellisteSyn[-1]
Syn=";".join(listeSyn)
Syn=Syn+";"
else:
SYN='NA'
else:
SYN='NA'
# Recuperation de l'identifiant du gene : Scerevisiae + Ecoli