#51 Le 17/01/2017, à 17:38
- valnovice
Re : [Resolu] gestion format fasta
pingouinux : oui ! c'est cela ! bien reçu pour la remarque
Hors ligne
#52 Le 17/01/2017, à 17:55
- pingouinux
Re : [Resolu] gestion format fasta
Si j'ai bien compris, ces 2 lignes (tirées de ton exemple en #49) sont relatives au même identifiant :
>lcl|NC_031377.1_prot_YP_009306839.1_1 [gene=COX1] [protein=cytochrome c oxidase subunit I] [protein_id=YP_009306839.1] [location=1..1548]
>lcl|NC_031377.1_prot_YP_009306840.1_2 [gene=COX2] [protein=cytochrome c oxidase subunit II] [protein_id=YP_009306840.1] [location=1554..2331]
Quel est le nom de cet identifiant ? Autrement dit, quelle chaîne de caractères faut-il prendre pour l'identifiant ?
Hors ligne
#53 Le 17/01/2017, à 18:01
- valnovice
Re : [Resolu] gestion format fasta
ces 2 lignes correspondent au même identifiant qui est NC_031377.1 mais de 2 gènes différents: le premier [gene=COX1] et le 2ème [gene=COX2]
Son nom est NC_031377.1 et c'est tout ce dont on a besoin pour le premier chevron > mais c'est pas grave de garder >lcl|NC_031377.1.
Hors ligne
#54 Le 17/01/2017, à 19:27
- pingouinux
Re : [Resolu] gestion format fasta
Alors je te propose ceci, en python, que j'ai testé sur ton exemple en #49. Il faudrait avoir un petit exemple avec plusieurs identifiants.
Voici script.py
#!/usr/bin/python
import sys, re
k=0
k+=1;fic=sys.argv[k]
k+=1;out=sys.argv[k]
rec_ident=re.compile('^>lcl\|(.+)_prot[^[]+\[gene=(\w+)]')
def sortie():
for i,gene in enumerate(sorted(blocs)):
for j in range(1 if i else 0,len(blocs[gene])):
g.write("%s"%(blocs[gene][j]))
blocs={}
ident_av=''
with open(fic,'r') as f, open(out,'w') as g:
for lig in f:
k=rec_ident.match(lig)
if k:
ident=k.group(1)
gene=k.group(2).upper()
if ident!=ident_av and ident_av!='': sortie(); blocs={}; ident_av=ident
ident_av=ident
blocs[gene]=[]
blocs[gene].append(lig)
sortie()
À lancer ainsi :
./script.py fichier_de_départ fichier_de_sortie
Édité : Correction du script pour traiter correctement plusieurs identifiants (en principe)
Dernière modification par pingouinux (Le 18/01/2017, à 14:27)
Hors ligne
#55 Le 17/01/2017, à 19:49
- kholo
Re : [Resolu] gestion format fasta
pour faire avancer le schmilblic :
CO1=COI ?
CO2=COII ?
CO3=COIII ?
et
COX1=COXI ?
COX2=COXII ?
COX3=COXIII ?
???
Hors ligne
#56 Le 17/01/2017, à 20:19
- valnovice
Re : [Resolu] gestion format fasta
pingouinux : merci beaucoup! je te tiens au courant
kholo : décidément ce n'est pas un très bon exemple, les noms des gènes devraient identiques (vraiment désolée! ) ici CO1=COXI=COX1 ; CO2 = COXII=COX2
Hors ligne
#57 Le 17/01/2017, à 20:25
- valnovice
Re : [Resolu] gestion format fasta
pingouinux : en demi seconde !!!!! aaaaah!
il faut juste que je revérifie si tous le gènes sont en ordre, je vais prendre au hasard !!! déjà merciiiiiiii
Hors ligne
#58 Le 17/01/2017, à 20:35
- valnovice
Re : [Resolu] gestion format fasta
pingouinux : ça correspond !! avec séparation des 13 gènes à chaque fin de séquence ! c'est exactement ce que je cherchais ! oooh merci merci merci !!!!
et GRAND merci à tous
Dernière modification par valnovice (Le 17/01/2017, à 20:41)
Hors ligne