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 :

suppression d'une partie de blat


Sujet :

Bioinformatique Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Par défaut suppression d'une partie de blat
    Slt tt le monde!
    je dois développer un programme en bioinfo en perl!! Pour cela, j'ai du effectuer un blat!! Le petit soucis est que j'obtiens un fichier (blat_chicken.out) avec un tableau dont la 11 ème colonne contient le Q name avec :

    gi|71895710|ref|NM_001031511.1|Gallus

    Or c'est trop long et le nom du transcrit, c'est juste NM_001031511.1

    Alors cette ligne me déplace tout dans le tableau, donc il n'y a pas d'alignement!

    Donc je voudrais faire un ptit programme en perl qui me permettrait de suprimer les mots avant et après le nom du transcrit. J'ai pensé à remplacer mais le problème c'est que le numéro diffère pour chaque ligne!
    Quelqu'un aurait une idée du programme à faire? (bien que je sais quoi faire mais vu que je ne suis qu'une débutante en perl, je ne sais pas comment l'écrire!)

    Merci

  2. #2
    Membre éprouvé Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Par défaut
    Une petite expression reguliere :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $string =~ s/(NM_[\d\.]*)/$1/
    Si je me suis pas trompé ca te remplace la ligne par l'identifiant que tu souhaite.

    (bon ca c'est juste l'expression, faut d'abord parser le fichier et tout et tout)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Par défaut
    Merci, j'ai écrit ce code mais il me met une erreur à /home/miv
    Bareword found where operator expected at essai_blat.pl line 5, near "/home/miv" (Missing operator before v?)
    syntax error at essai_blat.pl line 5, near "/home/miv"
    de quoi s'agit il?

    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
     
    #! /usr/bin/perl
     
    use strict;
     
    my $blat_file = /home/miv/Stage/chr2.out;
     
    open (F, $blat_file);
     
    while(my $line = <F>) {
    	if ($line =~ /^[0-9]/) {
    		my @cur_fields = split("\t", $line);
    		$cur_fields[9] =~ s/(NM_[\d\.]*)/$1/;
    	}
    }
    close F;
    En même tps, voyez vous une autre erreur dans mon script?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Par défaut
    Salut,

    au lieu de
    my $blat_file = /home/miv/Stage/chr2.out;
    mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $blat_file = '/home/miv/Stage/chr2.out';

  5. #5
    Membre éprouvé Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Par défaut
    L'erreur a rien a voir avec le code que je t'ai donné
    Tu as oublié les double quote ("") en declarant ta variable de fichier my $blat_file

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $blat_file = "/home/miv/Stage/chr2.out";
    Edit : rah suis trop lent !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Par défaut
    En effet, il n'y a plus d'erreur mais en fait,ça marche pas!
    que manque-t'il dans mon code ci dessus (à part les doubles cotes)?

  7. #7
    Membre éprouvé Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Par défaut
    Mon expression est peut-etre pas bonne, j'ai un doute sur [\d\.]*

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

Discussions similaires

  1. suppression d'une partie de type string
    Par olivier59820 dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/06/2011, 10h30
  2. Suppression d'une partie du nom de l'onglet
    Par damien29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/05/2011, 16h41
  3. suppression d une partie de l'url
    Par mustapha_aim dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2010, 22h09
  4. Suppression d'une partie ciblée d'une surface
    Par Kafkana dans le forum MATLAB
    Réponses: 0
    Dernier message: 20/05/2010, 09h10
  5. suppression d'une partie d'un champs
    Par ntahi dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/07/2007, 18h47

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