IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Elimination de séquences redondantes plus petites


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de vinserm
    Homme Profil pro
    recherche
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : recherche

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut Elimination de séquences redondantes plus petites
    Bonjour à tous,

    J'ai un fichier de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Cluster0 CAGCCGCGTTATA 2
    Cluster1 aacaggcacagtcagtgctacAGTTCTTACAGCCGCGTTATa 75
    Cluster2 CAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTAGCTA 1
    Cluster3 CAACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCTTATA 1
    Cluster4 GCCGCGTTATA 1
    Cluster5 TATA 1
    Cluster6 TCAGTGCTACAGTTCTTACAGCCGCGTTAGTA 1
    Cluster7 CAGTCAAGTGCGTACCAGTTCTTACGCCGCGTTATA 1
    Cluster8 GTCTTACAGCGCGTTATA 1
    Cluster9 CGCCGCGTTATA 1
    Cluster10 ACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTTATA 1
    Cluster11 CTACAGTTCTTACGCGCGTTATA 1
    Cluster12 TTA 1
    Cluster13 TCAGTGCTACAGTTCTTACAGCGCGTTAGTA 1
    Cluster14 CAGGCACAGTTCAGTGCTACAGTTCTTACAGCCGGCGTTATA 1
    Cluster15 TTCTTACAGCGCGTTATA 1
    Cluster16 GTTCTTACAGCCGCGTTATA 1
    Cluster17 CAACAGCACAGTCAGTGCTACAGTCCTTACAGCCGCGTTATA 1
    Mon problème est le suivant :
    je souhaite pouvoir conserver les séquences différentes au niveau des lettres sans tenir compte de la longueur ni de la casse,
    je souhaite aussi conserver le chiffre associé aux séquences.

    Dans cet exemple, les seq 0 et 16 peuvent être éliminées, car elles matchent avec la 1; la 17, par contre, est différente de la 1, et est donc à garder.

    Idéalement le fichier voulu ressemblerait à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Cluster1 aacaggcacagtcagtgctacAGTTCTTACAGCCGCGTTATa 75
    Cluster2 CAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTAGCTA 1
    Cluster3 CAACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCTTATA 1
    Cluster6 TCAGTGCTACAGTTCTTACAGCCGCGTTAGTA 1
    Cluster7 CAGTCAAGTGCGTACCAGTTCTTACGCCGCGTTATA 1
    Cluster8 GTCTTACAGCGCGTTATA 1
    Cluster9 CGCCGCGTTATA 1
    Cluster10 ACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTTATA 1
    Cluster11 CTACAGTTCTTACGCGCGTTATA 1
    Cluster12 TTA 1
    Cluster13 TCAGTGCTACAGTTCTTACAGCGCGTTAGTA 1
    Cluster14 CAGGCACAGTTCAGTGCTACAGTTCTTACAGCCGGCGTTATA 1
    Cluster15 TTCTTACAGCGCGTTATA 1
    Cluster17 CAACAGCACAGTCAGTGCTACAGTCCTTACAGCCGCGTTATA 1
    et le fichier serait ensuite amélioré en définissant une longueur et en mettant des tirets pour les aligner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Cluster1 ----------------aacaggcacagtcagtgctacAGTTCTTACAGCCGCGTTATa 75
    Cluster2 CAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTAGCTA 1
    Cluster3 CAACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCTTATA 1
    Cluster6 ---------------------TCAGTGCTACAGTTCTTACAGCCGCGTTAGTA 1
    Cluster7 -------------CAGTCAAGTGCGTACCAGTTCTTACGCCGCGTTATA 1
    Cluster8 --------------------------------------------------GTCTTACAGCGCGTTATA 1
    Cluster9 --------------------------------------------------------------CGCCGCGTTATA 1
    Cluster10 ACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTTATA 1
    Cluster11 ---------------------------------------CTACAGTTCTTACGCGCGTTATA 1
    Cluster12 -------------------------------------------------------------------------------TTA 1
    Cluster13 -----------------------TCAGTGCTACAGTTCTTACAGCGCGTTAGTA 1
    Cluster14 -CAGGCACAGTTCAGTGCTACAGTTCTTACAGCCGGCGTTATA 1
    Cluster15 --------------------------------------------------TTCTTACAGCGCGTTATA 1
    Cluster17 CAACAGCACAGTCAGTGCTACAGTCCTTACAGCCGCGTTATA 1
    Je ne sais pas trop comment procéder pour automatiser le process. J'ai commencé par faire des alignements (avec bwa) pour me lancer dans un script qui éliminerait les différences de taille pour le même alignement, mais c'est assez lourd.
    On m'a dit que le langage awk pourrait me faciliter la tache

    Qu'en pensez vous ? Je ne connais pas awk, pourrais je avoir quelques pistes ?

    Merci pour votre aide!

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    Bonjour,

    avant de parler langage, il faut parler algorithme : comment ferais-tu "à la main" ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti Avatar de vinserm
    Homme Profil pro
    recherche
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : recherche

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut
    Je prendrais chaque motif un à un et ferais une boucle pour les comparer aux autres séquences de façon à pouvoir detecter et éliminer les redondances.
    Mais ca n'est pas forcement la démarche la plus pertinente

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    ça ne te semble pas léger comme algorithme ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Pour l'alignement, un simple printf suffit. Avec ou sans awk.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat atgc.txt
    atgf
    toto
    maman
    marché
    superhéros
    tztz
    tata
    ami
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ awk '{printf("%40s\n",$0);}' atgc.txt
                                        atgf
                                        toto
                                       maman
                                      marché
                                  superhéros
                                        tztz
                                        tata
                                         ami

    Combien as-tu de lignes au maximum ?

  6. #6
    Membre averti Avatar de vinserm
    Homme Profil pro
    recherche
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : recherche

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut
    un maximum de 50 lignes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. menu plus petit??
    Par kevinf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 17/10/2005, 11h40
  2. Afficher le plus petit des nombres
    Par wkm1807 dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2005, 23h46
  3. [TP] Tirer 10 dates et afficher la plus petite
    Par moustaphes dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 16/08/2005, 09h54
  4. [CR8.5] le plus petit numéro de commande
    Par Damien69 dans le forum Formules
    Réponses: 3
    Dernier message: 26/05/2004, 10h35
  5. Réponses: 3
    Dernier message: 16/12/2002, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo