Spliter un fichier fasta multiséquence en plusieurs fichiers
sue
-
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) /
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:
- Spliter un fichier fasta multiséquence en plusieurs fichiers
- Fichier bin - Guide
- Fichier epub - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
$ 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
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 ?
Encore merci pour ces réponses
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
>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
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
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
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
Lorsque je rentre cette ligne j'obtiens :
De plus il faut bien que je fasse ça pour n entre 1 et 13 pour avoir toutes mes séquences c'est ça ?
$ 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 ?
Il y a ici deux séquences dans cet exemple et 13 dans le cas de mes fichiers