Découpe d'un fichier fasta
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Découpe d'un fichier fasta



  1. #1
    Rammstein43

    Exclamation Découpe d'un fichier fasta


    ------

    Bonjour à tous !
    J'ai un problème tout simple à résoudre, malheuresement je n'ai pas les compétences en bio-info pour le résoudre moi-même. Voilà, j'ai un fichier fasta contenant plus 100 000 séquences et j'aimerais le découper en plusieurs fichier fasta de 10 000 séquences. Est-il possible de faire cela avec un script ? Si oui, comment ?
    Je suppose qu'il faut que je me serve des balises > situées au début de chacune de mes accessions... Le fichier se présente comme ça :

    >FGSG_11626 probable HTB1 - histone H2B
    MAPKAADKKPASKAPATASKAPEKKDAGKK TAASGDKKKRSKSRKETYSSYIYKVLKQVH
    PDTGISNRAMSILNSFVNDIFERVASEASK LAAYNKKSTISSREIQTSVRLILPGELAKH
    AVSEGTKAVTKYSSSTK
    >FGSG_04289 probable histone H4
    MTGRGKGGKGLGKGGAKRHRKILRDNIQGI TKPAIRRLARRGGVKRISAMIYEETRGVLK
    TFLEGVIRDAVTYTEHAKRKTVTSLDVVYA LKRQGRTLYGFGG
    >FGSG_05491 probable histone H4
    MTGRGKGGKGLGKGGAKRHRKILRDNIQGI TKPAIRRLARRGGVKRISAMIYEETRGVLK
    TFLEGVIRDAVTYTEHAKRKTVTSLDVVYA LKRQGRTLYGFGG
    >FGSG_09471 probable glucose-regulated protein 78 of hsp70 family
    MARSRSSMALGLGLLCWIALLFSPLAFVQT VQADDVDSYGTVIGIDLGTTYSCVGVMQKG
    KVEILVNDQGNRITPSYVAFTEDERLVGDA AKNQAAANPTNTIYDIKRLIGRKYSEKTLQ
    GDIKHFPFKVVNRDDRPVVQVEVDGAKKQF TPEEISAMVLGKMKEVAEGYLGKKVTHAVV
    TVPAYFNDNQRQATKDAGIIAGLNVLRIVN EPTAAAIAYGLDKNDGERQIIVYDLGGGTF
    DVSLLSIDDGIFEVLATAGDTHLGGEDFDQ RVINYFAKQYNQKNNVDITKDLKAMGKLKR
    EAEKAKRTLSSQKSTRIEIEAFHAGKDFSE TLTQAKFEELNIDLFKKTMKPVEQVLKDAK
    LKKSEIDDIVLVGGSTRIPKVQQLIEDFFN KKASKGINPDEAVAFGAAVQAGVLSGEEGT
    SGVVLMDVNPLTLGIETTGGVMTKLIPRNT AIPTRKSQIFSTAADNQPVVLIQVFEGERS
    LTKDNNILGKFELTGIPPAPRGVPQIEVSF ELDANGILKVSAHDKGTGKQESITITNDKG
    RLTPEEIERMVAEAEKYAEEDKATRERIEA RNGLENYAFSLKNQVNDEEGLGGKIDEEDK
    ETLLDAVKETNEWLDEHGADATAEDFEEQK EKLSNVAYPITSKMYQGAGGAGGEQDDNIH
    DEL

    Si vous avez une solution, je suis preneur

    Merci par avance,

    R

    -----
    Justice Is Lost, Justice Is Raped. Pulling Your Strings, Justice Is Done.

  2. #2
    Evil.Saien

    Re : Découpe d'un fichier fasta

    Hello,

    Si je comprends bien, tu appelles "séquences" ce qui se situe entre 2 ">" ?
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  3. #3
    Rammstein43

    Re : Découpe d'un fichier fasta

    Salut Evil. Saien, oui c'est bien cela ! Une séquence correspond à une accession + la suite d'acides aminés. En voici une :
    >FGSG_11626 probable HTB1 - histone H2B
    MAPKAADKKPASKAPATASKAPEKKDAGKK TAASGDKKKRSKSRKETYSSYIYKVLKQVH
    PDTGISNRAMSILNSFVNDIFERVASEASK LAAYNKKSTISSREIQTSVRLILPGELAKH
    AVSEGTKAVTKYSSSTK

    Etant donné qu'elles ne font pas toutes la même taille, je ne sais pas trop comment découper mon fichier fasta en plusieurs fichiers de 10 000 séquences chacun...

    En tout cas, merci pour ton intérêt
    Justice Is Lost, Justice Is Raped. Pulling Your Strings, Justice Is Done.

  4. #4
    pm42

    Re : Découpe d'un fichier fasta

    En Unix, Linux, OSX, Windows avec les bons outils, la commande split avec l'argument -p permet de découper un fichier en donnant un critère de séparation.

    J'ai essayé sur ton exemple avec split -p '^>' ce qui veut dire "ligne qui commence par >" et ça m'a donné 4 fichiers :

    Fichier 1 :

    >FGSG_11626 probable HTB1 - histone H2B
    MAPKAADKKPASKAPATASKAPEKKDAGKK TAASGDKKKRSKSRKETYSSYIYKVLKQVH
    PDTGISNRAMSILNSFVNDIFERVASEASK LAAYNKKSTISSREIQTSVRLILPGELAKH
    AVSEGTKAVTKYSSSTK

    Fichier 2 :

    >FGSG_04289 probable histone H4
    MTGRGKGGKGLGKGGAKRHRKILRDNIQGI TKPAIRRLARRGGVKRISAMIYEETRGVLK
    TFLEGVIRDAVTYTEHAKRKTVTSLDVVYA LKRQGRTLYGFGG

    Fichier 3 :

    >FGSG_05491 probable histone H4
    MTGRGKGGKGLGKGGAKRHRKILRDNIQGI TKPAIRRLARRGGVKRISAMIYEETRGVLK
    TFLEGVIRDAVTYTEHAKRKTVTSLDVVYA LKRQGRTLYGFGG

    Fichier 4 :

    >FGSG_09471 probable glucose-regulated protein 78 of hsp70 family
    MARSRSSMALGLGLLCWIALLFSPLAFVQT VQADDVDSYGTVIGIDLGTTYSCVGVMQKG
    KVEILVNDQGNRITPSYVAFTEDERLVGDA AKNQAAANPTNTIYDIKRLIGRKYSEKTLQ
    GDIKHFPFKVVNRDDRPVVQVEVDGAKKQF TPEEISAMVLGKMKEVAEGYLGKKVTHAVV
    TVPAYFNDNQRQATKDAGIIAGLNVLRIVN EPTAAAIAYGLDKNDGERQIIVYDLGGGTF
    DVSLLSIDDGIFEVLATAGDTHLGGEDFDQ RVINYFAKQYNQKNNVDITKDLKAMGKLKR
    EAEKAKRTLSSQKSTRIEIEAFHAGKDFSE TLTQAKFEELNIDLFKKTMKPVEQVLKDAK
    LKKSEIDDIVLVGGSTRIPKVQQLIEDFFN KKASKGINPDEAVAFGAAVQAGVLSGEEGT
    SGVVLMDVNPLTLGIETTGGVMTKLIPRNT AIPTRKSQIFSTAADNQPVVLIQVFEGERS
    LTKDNNILGKFELTGIPPAPRGVPQIEVSF ELDANGILKVSAHDKGTGKQESITITNDKG
    RLTPEEIERMVAEAEKYAEEDKATRERIEA RNGLENYAFSLKNQVNDEEGLGGKIDEEDK
    ETLLDAVKETNEWLDEHGADATAEDFEEQK EKLSNVAYPITSKMYQGAGGAGGEQDDNIH
    DEL

  5. A voir en vidéo sur Futura
  6. #5
    Ludwig1

    Re : Découpe d'un fichier fasta

    Salut,

    j'avais cru comprendre qu'il voulait 10000 Séquences par fichier, je pense qu'il faut encore rajouter un compteur

    Cordialement


    Ludwig

  7. #6
    pm42

    Re : Découpe d'un fichier fasta

    Citation Envoyé par Ludwig1 Voir le message
    j'avais cru comprendre qu'il voulait 10000 Séquences par fichier, je pense qu'il faut encore rajouter un compteur
    En effet. Dans ce cas, split ne fera pas directement et il faut soit un autre outil soit remerger les fichiers derrière.

  8. #7
    Ludwig1

    Re : Découpe d'un fichier fasta

    Re,

    En principe une routine avec deux boucles imbriquées devrait faire l'affaire pour le langage on à l' embarras du choix.

    Cordialement

    Ludwig

  9. #8
    pm42

    Re : Découpe d'un fichier fasta

    Citation Envoyé par Ludwig1 Voir le message
    En principe une routine avec deux boucles imbriquées devrait faire l'affaire pour le langage on à l' embarras du choix.
    Oui mais vu qu'il dit avoir des compétences limitées en info, je cherchais une solution sans programmation.

  10. #9
    Ludwig1

    Re : Découpe d'un fichier fasta

    Citation Envoyé par pm42 Voir le message
    Oui mais vu qu'il dit avoir des compétences limitées en info, je cherchais une solution sans programmation.
    re,

    Tout à fait bien que ça me semble un peut plus délicat à résoudre sans la moindre ligne de code.

    Cordialement

    Ludwig

  11. #10
    Rammstein43

    Re : Découpe d'un fichier fasta

    Bonjour à tous les deux, désolé je n'avais pas accès à mon ordinateur ce week-end... Je vous remercie pour votre aide. Je vais essayer le "split" et voir s'il y a pas moyen de fusionner les fichiers fasta qui en ressortira. Il doit bien y avoir un logiciel qui permette de faire ça ^^

    Merci encore
    Justice Is Lost, Justice Is Raped. Pulling Your Strings, Justice Is Done.

  12. #11
    Ludwig1

    Re : Découpe d'un fichier fasta

    Citation Envoyé par Rammstein43 Voir le message
    Bonjour à tous les deux, désolé je n'avais pas accès à mon ordinateur ce week-end... Je vous remercie pour votre aide. Je vais essayer le "split" et voir s'il y a pas moyen de fusionner les fichiers fasta qui en ressortira. Il doit bien y avoir un logiciel qui permette de faire ça ^^

    Merci encore
    Salut,

    De rien, l'idéal serait que tu te mettes à apprendre un peu PHP ou PYTHON par exemple ( ou autre chose)
    ça aide à résoudre ce genre
    de PB

    Cordialement

    Ludwig

  13. #12
    Rammstein43

    Re : Découpe d'un fichier fasta

    Je me suis acheté un bouquin pour Perl ce week-end, mais je vais avoir besoin d'un peu de temps ^^
    Merci encore
    Justice Is Lost, Justice Is Raped. Pulling Your Strings, Justice Is Done.

  14. #13
    polo974

    Re : Découpe d'un fichier fasta

    supposons que le fichier source s'appelle gag:
    Code:
    sed '1 s/^/\n/; 2,$ s/>/~\n>/' gag |split -t '~' -l 10000 -d --filter="tail -n+2 | grep -v '^~$' > \$FILE"
    chaque fichier produit (x00 à x09 normalement) contient 10000 séquences.

    bref, ça tient en une (longue) ligne...
    Jusqu'ici tout va bien...

  15. #14
    pm42

    Re : Découpe d'un fichier fasta

    Cela dépend de ce qu'il utilise. --filter est une option de gnu-split mais qui ne marche pas sur d'autres implémentations.

    S'il veut le faire en perl, ça donne ça :

    perl -e '$count=10000; $n=0; $l=0; open(F, "gaa"); open(G,">gaa_$n"); while($line=<F>) { if($line =~ "^>") { $l++; if($l==$count+1) { $l=1; $n++; close(G); open(G,">gaa_$n") } } print G $line }'


    Je recommenderais plutôt d'écrire un script.pl et de formatter :
    Code:
    $n=0;
    $l=0;
    $count=10000;
    open(F, "gaa");
    open(G,">gaa_$n");
    while($line=<F>) {
        if($line =~ /^>/) {
    	$l++;
    	if($l==$count+1) {
    	    $l=1; $n++; close(G); open(G,">gaa_$n")
    	}
        }
        print G $line
    }

  16. #15
    Ludwig1

    Re : Découpe d'un fichier fasta

    Citation Envoyé par pm42 Voir le message
    Cela dépend de ce qu'il utilise. --filter est une option de gnu-split mais qui ne marche pas sur d'autres implémentations.

    S'il veut le faire en perl, ça donne ça :

    perl -e '$count=10000; $n=0; $l=0; open(F, "gaa"); open(G,">gaa_$n"); while($line=<F>) { if($line =~ "^>") { $l++; if($l==$count+1) { $l=1; $n++; close(G); open(G,">gaa_$n") } } print G $line }'


    Je recommenderais plutôt d'écrire un script.pl et de formatter :
    Code:
    $n=0;
    $l=0;
    $count=10000;
    open(F, "gaa");
    open(G,">gaa_$n");
    while($line=<F>) {
        if($line =~ /^>/) {
    	$l++;
    	if($l==$count+1) {
    	    $l=1; $n++; close(G); open(G,">gaa_$n")
    	}
        }
        print G $line
    }
    Salut,
    J'opterais aussi pour ta solution, c'est lisible et ont sait ce que l'on fait.
    J'aurai juste une autre syntaxe, mais c'est secondaire.

    Cordialement

    Ludwig
    Dernière modification par Ludwig1 ; 07/03/2017 à 08h38.

  17. #16
    pm42

    Re : Découpe d'un fichier fasta

    Citation Envoyé par Ludwig1 Voir le message
    J'aurai juste une autre syntaxe, mais c'est secondaire.
    En perl encore plus que dans d'autres langages, on peut écrire les choses de plein de façons différentes.
    J'ai choisir cette syntaxe parce que c'est la plus "généraliste", la plus proche des langages courants (Pascal, C, Java...)

  18. #17
    Evil.Saien

    Re : Découpe d'un fichier fasta

    Citation Envoyé par pm42 Voir le message
    En perl encore plus que dans d'autres langages, on peut écrire les choses de plein de façons différentes
    Ca c'est bien vrai, c'en est limite voodoo parfois
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  19. #18
    Ludwig1

    Re : Découpe d'un fichier fasta

    Citation Envoyé par pm42 Voir le message
    En perl encore plus que dans d'autres langages, on peut écrire les choses de plein de façons différentes.
    J'ai choisir cette syntaxe parce que c'est la plus "généraliste", la plus proche des langages courants (Pascal, C, Java...)
    Re,

    Tout à fait, PERL me semble un bon choix d'ailleurs l'initiateur du Fil à choisi de travailler avec PERL. Il se trouve que la machine que j'utilise sait aussi avaler du PERL.

    Cordialement

    Ludwig

  20. #19
    Rammstein43

    Re : Découpe d'un fichier fasta

    Oh super, merci beaucoup Je vais essayer cela, cela devrait marcher !! Merci beaucoup à vous
    Justice Is Lost, Justice Is Raped. Pulling Your Strings, Justice Is Done.

Discussions similaires

  1. Tri d'un fichier FASTA
    Par Rammstein43 dans le forum Biologie
    Réponses: 7
    Dernier message: 12/11/2016, 22h15
  2. Un logiciel qui permet de convertir un fichier en hexadécimal vers un fichier en decimal???
    Par invite3cd28103 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 08/06/2012, 13h07
  3. convertir un fichier solidworks vers un fichier .c openGL sous visual studio ?
    Par imed4ever dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 27/02/2012, 15h21
  4. Écrire un fichier avec un .h, en ouvrant le fichier dans main
    Par AmigaOS dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 30/01/2011, 19h30
  5. [Biochimie] conversion fasta/PDB
    Par invitecc7146d2 dans le forum Biologie
    Réponses: 1
    Dernier message: 16/01/2008, 13h20