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

Bioinformatique Perl Discussion :

substitution d'un motifs par le meme nombre de caracteres


Sujet :

Bioinformatique Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Par défaut substitution d'un motifs par le meme nombre de caracteres
    Bonjour,
    Je souhaiterai dans un sequence, remplacer les motifs correspondant à une expression regulière par le meme nombre d'un autre caractere (N par exemple)....

    Exemple: avec une expression reguliere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    s/([ATGC]{1})\1{4,}/ ... /g
    Je souhaiterai que

    "ATGCAAAAAAATGCTCG" devienne "ATGCNNNNNNTGCTCG"

    Je pense que c'est assez facile, mais je n'ai pas trouvé l'astuce

    Merci

  2. #2
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911

  3. #3
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 892
    Par défaut
    Salut ami bioinformaticien !

    Voici ma méthode :
    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
     
    use strict;
    use warnings;
     
    my $s = "ATGCAAAAAAATGCTCG";
    print $s."\n";
    if($s=~/(A{4,}|C{4,}|G{4,}|T{4,})/){
            my $motif = $1;
            my $substitute;
            for(0..(length($motif)-1)){
                    $substitute.='N';
            }
            $s=~s/$motif/$substitute/;
    }
    print $s."\n";
    Apparemment, cela marche.
    Et en plus, c'est facilement adaptable en fonction

    En espérant t'avoir aidé.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  4. #4
    Membre confirmé Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Par défaut
    Salut,

    Tout d'abord je me demande pourquoi ne pas avoir posté sur le sous-forum Perl > bioinformatique qui serait plus adapté pour ta requête. Ensuite, d'après ce que j'ai compris de ta question, il s'agit de masquer les répétition dans une séquence ADN... Pour cela, il existe déjà plusieurs programmes disponibles comme par exemple : repeatmasker, etc. sans compter les filtres utilisés par des programmes tel que blast et qui permettent de masquer les répétitions tout en cherchant les similitudes par alignement de séquences, notes que ces filtres sont utilisables seuls comme c'est le cas de dust. Mais bon si ça te dit de traduire ça en Perl...

    Bonne continuation et @+ sur Forum des développeurs > Autres langages et outils > Perl > Bioinformatique

  5. #5
    Membre confirmé Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Par défaut
    Merci beaucoup,

    MarneusCalgarXP -> Pas si simple, je cherche pas à remplacer seulement des motifs d'une paire de base...

    GLDavid-> J'avais deja une solution similaire mais je me demandais si la fonction substitute ne prenait pas en compte ce genre de requetes...Tant pis, je reste à ma bonne vieille méthode...

    Leishmaniose-> Tout depends de la notion de "repeat" (on va gardé ce terme puisque tu l'as employé). La notion même de repeat au sens où je la considere dans mon application n'est pas du tout identique à celle considérée par les principaux outils disponibles via le web...Et combien même aprés avoir trouver un outil disponible sur le Web, celui doit etre disponible gratuitement, et integrable dans mon logiciel...Par conséquent, etant donné toutes ses contraintes, je trouve que "developper" une fonction de 10 lignes au maximum, est bien moins couteux et forcement parfaitement adapté.
    Concernant mon post dans cette section, j'ai bien posté ici consciemment, car à mon sens, ma question ne se limite pas au domaine de la bioinformatique, mais concerne l'utilisation générale de la fonction "substitute"... J'espere avoir été clair

    Donc à bientot sur le Forum des développeurs > Autres langages et outils > Perl > je choisis la section en fonction de mes demandes...

  6. #6
    Membre confirmé Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Par défaut
    Dans ce cas est-il possible d'avoir une idée sur ta notion de repeat...

    et pour ce qui est des utilitaires que j'ai cité dans mon message, je te confirme que ce sont des solutions totalement free et qui s'adaptent bien au développement d'autres logiciels... Par exemple le dust est écrit en C, son code source est disponible ainsi que plusieurs binary adaptés à une multitude de plate-forme...

    Pour finir, je respecte parfaitement ta liberté de choisr le sous forum qui te parait le plus adapté pour ton post, et dans ce cas précis je comprend que ton post concerne l'utilisation globale de la fonction "substitute" d'où le choix du sous-forum langage. Néanmoins, je persiste à dire que la solution à ton problème ne peut être que bioinformatique... Je m'explique : As tu pensé à faire un tour sur le module BioPerl...! je suis sûr que tu trouveras une fonction toute prête pour ce genre d'application...

    Bonne continuation.

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

Discussions similaires

  1. fermeture d'un executable par lui meme
    Par adilissimo dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/07/2007, 22h39
  2. Réponses: 2
    Dernier message: 19/04/2007, 15h26
  3. [Serieux] Apprendre l'anglais oral par soi-meme
    Par cladsam dans le forum La taverne du Club : Humour et divers
    Réponses: 32
    Dernier message: 09/04/2007, 22h14
  4. Nombre d'occurence d'un motif par ligne
    Par anne-so dans le forum Langage
    Réponses: 8
    Dernier message: 22/08/2005, 19h36

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