Spliter un fichier fasta multiséquence en plusieurs fichiers

sue -  
 sue -
Bonjour,

Je possède des fichiers fasta multiséquence et je voudrais obtenir à partir de ces fichiers multiséquence ( 13 séquences ) 13 fichier différent avec chacune des séquences. De plus il faudrait que ces fichiers se nomme "ce que contient la première ligne"

Merci pour votre aide
Cordialement,



<config>Mac OS X (10.10.2) /
A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
montre un exemple de fichier
0
sue
 
Un exemple de fichier fasta multi séquence est donné ici : http://en.wikipedia.org/wiki/FASTA_format
Il y a ici deux séquences dans cet exemple et 13 dans le cas de mes fichiers
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
$ awk '/^>/{n=substr($0, 2)} {print > n}' fichier
$ ls
SEQUENCE_1 SEQUENCE_2 fichier
$ more S*
::::::::::::::
SEQUENCE_1
::::::::::::::
>SEQUENCE_1
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG
LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK
IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL
MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL
::::::::::::::
SEQUENCE_2
::::::::::::::
>SEQUENCE_2
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI
ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH
0
sue
 
Navré mais je suis un vrai néophyte, ce qui entraine une autre question...
Etant donné que ces fichiers sont nombreux dans un dossier particulier et que je dois faire de même avec tous ces fichiers es qu'un script de ce type me permettrai de tout faire de façon itérative ?
for X in $(ls) ; do awk '/^>/{n=substr($0, 13)} {print > n}' $X ; done

Encore merci pour ces réponses
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
faire simplement
awk '/^>/{n=substr($0, 13)} {print > n}'  *

si une même séquence se trouve dans plusieurs fichiers, seule la dernière restera
0
sue
 
Quand je rentre cette commande seul quelques fichier sont traité avec un message d'erreur :
awk: ref|NP_007761.1|COX3_15058 cytochrome c oxidase subunit III (mitochondrion) [Branchiostoma floridae] makes too many open files

pour certaine séquences puis le programme s'interrompt.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
on ne peut pas mettre comme nom de fichier une séquence qui contient des | ] [ ou ()
il ne faut que du texte, chiffres, ou point, tiret, etc
montre des exemples de séquences
0
sue
 
>gi|658608828|ref|YP_009045697.1| NADH dehydrogenase subunit 2 (mitochondrion) [Ideopsis similis]
aaaaaaaaaaaaaeeeeeeeeee
>gi|658608829|ref|YP_009045698.1| cytochrome c oxidase subunit I, partial (mitochondrion) [Ideopsis similis]
aaaaaaaaaaaaaaaaaaaaeeeeeeeeeeeeee
>gi|658608830|ref|YP_009045699.1| cytochrome c oxidase subunit II (mitochondrion) [Ideopsis similis]
aaaaaaaaaaaeeeeeeeeeeeeeee
>gi|658608833|ref|YP_009045700.1| ATP synthase F0 subunit 8 (mitochondrion) [Ideopsis similis]
aaeaaeaaaaeaeaeaeaaeaeaaaeeeaaeae
>gi|658608832|ref|YP_009045701.1| ATP synthase F0 subunit 6 (mitochondrion) [Ideopsis similis]
aaaaaeaeeaeaeaeaeaeaeeaeaeaeeaaeeaeeaeaeeaea
>gi|658608831|ref|YP_009045702.1| cytochrome c oxidase subunit III (mitochondrion) [Ideopsis similis]
aeeaeaeaeaeeaeaeeeaeaeeaeeeeaea
>gi|658608834|ref|YP_009045703.1| NADH dehydrogenase subunit 3 (mitochondrion) [Ideopsis similis]
eaeaeaeaeaeaeeaeeeeaeaeaaeaeeeaeaee
>gi|658608835|ref|YP_009045704.1| NADH dehydrogenase subunit 5 (mitochondrion) [Ideopsis similis]
aaeaeeaaeeaeaeaeaeaeaeeeaeaeea
>gi|658608836|ref|YP_009045705.1| NADH dehydrogenase subunit 4 (mitochondrion) [Ideopsis similis]
aeaeeaeaeaeaeaeeaaeeaeeaeaeaeeaeeaea
>gi|658608837|ref|YP_009045706.1| NADH dehydrogenase subunit 4L (mitochondrion) [Ideopsis similis]
eaeaeeaeaeeeaeeaeeaeeaeaeaeaeaeeaeeaea
>gi|658608838|ref|YP_009045707.1| NADH dehydrogenase subunit 6 (mitochondrion) [Ideopsis similis]
aeaeeaeaeeeaeaeaeaeeaeeaeeaeaeaea
>gi|658608840|ref|YP_009045708.1| cytochrome b (mitochondrion) [Ideopsis similis]
eaeaeaeeaeaeeaeeaeeaeea
>gi|658608839|ref|YP_009045709.1| NADH dehydrogenase subunit 1 (mitochondrion) [Ideopsis similis]
aeaeeaaeaeeaeeae

Voila un exemple d'un de mes fichiers, l'idéal serait qu'il ai le nom :
NADH dehydrogenase subunit 2 Ideopsis similisis
j'ai mis des "a" et "e" à la place des séquences parce que je ne pouvais pas écrire en majuscule
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
on ne prend que le champ 5
on supprime tout ce qu'il y a entre () et tout les ][ et l'espace du début
$ awk -F '|' '/^>/{gsub("[(][^)]*) |[][]|^ *", "", $5); n=$5} {print > n}' fichier
0
sue
 
Lorsque je rentre cette ligne j'obtiens :
$ awk -F '|' '/^>/{gsub("[(][^)]*) |[][]|^ *", "", $5); n=$5} {print > n}' Seq1a1
awk: syntax error in regular expression [(][^)]*) |[][]|^ * at |[][]|^ *
source line number 1
context is
/^>/{gsub("[(][^)]*) |[][]|^ *", "", >>> $5) <<<

De plus il faut bien que je fasse ça pour n entre 1 et 13 pour avoir toutes mes séquences c'est ça ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
macOS ..aie ... . essayer avec nawk
non, awk va lire tout le fichier qui contient les 13 séquences et créer les 13 fichiers
0
sue
 
ça ne fonctionne pas avec nawk ( -bash: nawk: command not found) ... Oui mac OS...
D'accord donc normalement je devrait pouvoir extraire toutes les séquence unique avec cette ligne de commande pour tous mes fichiers?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
oui
je vais essayer avec un vieil awk compatible avec celui du Mac
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer
awk -F '|' '/^>/{gsub("[(][^)]*[)] |[][]", "", $5); sub("^ ", "", $5); n=$5} {print > n}' Seq1a1
0