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 :

séquence à modifier


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut séquence à modifier
    Bonjour,

    Le problème est assez simple mais je ne sais pas quelle est la meilleure façon de procéder.
    J'ai deux séquences $seq et $seq_ali et je cherche à obtenir $seq_ali_modif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    use strict;
    use warnings;
     
    my $seq = 'ATgcTGtC';
    my $seq_ali = 'ATG..CTGT.C';
     
     
    my $seq_ali_modif = 'ATg..cTGt.C';
    Pourriez-vous me conseiller?


    Merci;

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Voici la solution que j'ai trouvé mais cela ne me parait pas terrible, je me demande si il n'y a pas moyen de mieux faire avec des expressions régulières.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    use strict;
    use warnings;
     
    my $seq = 'ATgcTGtC';
    my $seq_ali = 'ATG..CTGT.C';
    my $seq_ali_modif = "";
     
    my @a_seq_ali = split (//, $seq_ali);
    my @a_seq = split (//, $seq);
     
    my $j = 0;
     
    foreach my $nuc (@a_seq_ali){
        if($nuc !~ /\./){
            print "$nuc\t$a_seq[$j]\n";
            if($a_seq[$j] !~ /$nuc/i){
                print "ERREUR\n";
            }
            else{
                $seq_ali_modif .= $a_seq[$j];
            }
            $j++;
        }
        else{
            $seq_ali_modif .= '.';
        }
    }
     
    print $seq_ali_modif ."\n";
    # ATg..cTGt.C
    Avec une expression régulière dans ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my ($sous_seq, $reste) = ($seq_ali =~ /^([a-z]+)\.(.*)$/i);
    # on récupère la première partie avant le point
    if ($seq =~ /($sous_seq)(.*)$/i){
        $seq_ali_modif = $1.$reste;
        # on place les minuscules
    }
    Merci pour vos conseils,

Discussions similaires

  1. [2012] Modifier une valeur de séquence
    Par Papy214 dans le forum Développement
    Réponses: 2
    Dernier message: 22/02/2014, 13h52
  2. Réponses: 5
    Dernier message: 10/03/2013, 08h37
  3. Modifier prochaine valeur d'une séquence
    Par macben dans le forum Oracle
    Réponses: 2
    Dernier message: 10/07/2007, 12h08
  4. Réponses: 7
    Dernier message: 30/03/2007, 08h47
  5. Oracle : Modifier la valeur courante d'une séquence
    Par arkienou dans le forum Oracle
    Réponses: 7
    Dernier message: 10/08/2006, 09h08

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