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

Langage Perl Discussion :

parcour d'une séquence (2)


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut parcour d'une séquence (2)
    Bonjour,

    désolé mais le post précédent n'est pas résolu.
    Je suis plus à l'aise avec la méthode suivante néanmoins j'ai un souci:
    quand ma séquence possède plusieurs fragment de N. Je bloque pour indiquer le nom de la séquence


    fichier
    >seq_1
    ATTTTNNNNNGATCANNNNN
    >seq_2
    ATTTTGTANNNN
    >seq_3
    ATTTTAAAAAAGATCA
    >seq_4
    ATTTTNNNNN

    en effet, j'obtiens:
    seq_4 6 10
    seq_1 6 10
    16 20
    seq_3 0 0
    seq_2 9 12


    alors que je voudrais que ce soit
    seq_4 6 10
    seq_1 6 10
    seq_1 16 20#avoir indiqué seq1
    seq_3 0 0
    seq_2 9 12





    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
    19
    20
    21
    22
    while( my $ligne=<SEQ>){
      my $current_seq;
      my $pos_debut = 0;
      my $pos_fin = 0;
    *
      if($ligne =~ /^>(.+)$/){
        $current_seq = $1;
        print $current_seq."\t";
      }
      else{
        if($ligne =~ /N/){
          while($ligne =~ /(N+)/g){
            $pos_fin = pos($ligne);
            $pos_debut = $pos_fin - length($1) + 1;
            print "$pos_debut\t$pos_fin\n";
          }
        }
        else{
          print "$pos_debut\t$pos_fin\n";
        }
      }
    }

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Pour obtenir ce que tu souhaites, ce n'est pas compliqué du tout, il suffit de supprimer le premier print, et de remplacer les 2 autres par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     print "$current_seq\t$pos_debut\t$pos_fin\n";

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Merci Philou de ta réponse,

    mais j'obtiens le message suivant:
    Use of uninitialized value in concatenation (.) or string at xxx.pl line xx, <SEQ> line xx.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Il faut déplacer
    Avant le while... cette variable doit être mémorisée d'une exécution de la boucle à l'autre.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Merci merci, je suis vraiment nulle

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

Discussions similaires

  1. parcour d'une séquence
    Par pontarose dans le forum Langage
    Réponses: 5
    Dernier message: 17/06/2010, 16h52
  2. Réponses: 4
    Dernier message: 18/10/2004, 16h18
  3. [C#] [ADO] Parcours d'une grande quantité d'enregistrements
    Par Wavyx dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/09/2004, 09h16
  4. Passer une séquence en parametre
    Par djousss dans le forum CORBA
    Réponses: 2
    Dernier message: 02/12/2003, 22h39
  5. Extraire une séquence d'un fichier MPEG
    Par enzosp dans le forum DirectX
    Réponses: 2
    Dernier message: 24/02/2003, 11h30

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