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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    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 éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 867
    Points : 4 873
    Points
    4 873
    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é.

    @++

  4. #4
    Membre habitué 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
    Points : 141
    Points
    141
    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 habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    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 habitué 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
    Points : 141
    Points
    141
    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.

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    Pour ce qui concerne ma notion de repeat...Cela prend en compte precisement un nombre nb d'occurences (entre nbmin et nbmmax) d'un motif de n (entre min et max) paire de bases. Sachant qu'a chaque n est associé un intervelle nbmin...nbmax) particulier...
    Par exemple...

    n vaut 1; nb entre [5,7]
    n vaut 2; nb entre [4,8]
    n vaut 3; nb entre [4,7]
    etc...

    Je ne connais pas d'outils qui permettent autant une telle souplesse dans le parametrage...

    D'autant plus, comme je l'ai précisé auparavant, cela est tres facile de mise en oeuvre en perl...Donc autant m'epargner le casse tete d'un installation, d'une adaptation a un autre code ou à une utilsation...J'ai assez utilisé d'autres modules (BioPerl ou autre...) ou executable pour savoir qu'au final il m'est plus facile de programmer diectement une fonction...Bien entendu cela est subjectif...
    Par contre ton rasionnement est parfaitement justifié pour des utilisations d'algo bien plus complexe (blast, clustalW, ...)

    Voila, merci pour ton interet...Si tu as d'autres remarques, n'hésites pas...
    Bonne continuation...

  8. #8
    Membre habitué 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
    Points : 141
    Points
    141
    Par défaut
    Reçu 5/5, au fait tu es entrain de chercher à développer non pas un repeat masker mais plutot un microsatellites masker... C'est ça ?

    A ce que j'ai compris de l'exemple que tu donne, les repeat sont au fait des microsatellites du style :

    mononucléotidique (e.g. AAA) --> nbre de répétitions de 5 à 7
    dinucléotidique (e.g. ATAT) --> nbre de répétitions de 4 à 8
    ...

    Si c'est le cas, eh ben j'ai deux choses à dire :

    1- Il existe un script perl gratuit qui s'appel misa.pl et qui permet de localiser des microsatellites dans une séquence ADN, dont tu peux t'en inspirer pour ce que tu veux faire. Si ça t'intéresse en voici le lien :

    http://pgrc.ipk-gatersleben.de/misa/misa.html

    2- Si c'est vraiment de microsatellites que tu es entrain de parler je confirme le fait que ton post serait mieux placer dans le sous-forum bioinfo paske ceci t'aurait permis de parler avec des mots techniques aussi bien du domaine bio que celui de l'info.

    Good luck.

+ 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