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 :

BioPerl rendre insensible à la casse et primary_id


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
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Par défaut BioPerl rendre insensible à la casse et primary_id
    Bonjour !

    En fait j'ai un souci pour rendre une séquence entrée par l'utilisateur insensible à la casse lors d'une recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while ( my $seq = $in->next_seq()){
        if($seq->desc=~ /$tag/){
            $garde->write_seq($seq);
        }
        else{
            $keep->write_seq($seq);
        }
    j'ai essayé de mettre /$tag/i, m/$tag/i, /(i?)$tag/... rien n'y fait ..
    Est-ce à cause du module BioPerl?

    J'ai un autre souci concernant l'accession du primary_id, je souhaite le modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while ( my $seq = $in1->next_seq()) {
     
    				my $primary_id = $seq->primary_id();
    				my $new_primary_id = "$comment".$primary_id;		
    				$seq->primary_id($new_primary_id);
     
    				$out1->write_seq($seq);		}
    Je voudrais rajouter le mot contenu dans $comment à l'identification d'entrée pour obtenir

    >gi|22212273|gb|AAM92877.1| type II hair-specific keratin [Homo sapiens]

    =>

    >mot_gi|22212273|gb|AAM92877.1| type II hair-specific keratin [Homo sapiens]

    Merci d'avance à qui pourra m'aider !

  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
    Bonjour,

    J'ai testé sur un objet de type
    $VAR1 = bless( {
    'primary_id' => 'gi|22212273|gb|AAM92877.1|',
    'primary_seq' => bless( {
    'display_id' => 'gi|22212273|gb|AAM92877.1|',
    'primary_id' => 'gi|22212273|gb|AAM92877.1|',
    'desc' => 'type II hair-specific keratin [Homo sapiens]',
    'seq' => 'atgtcgtgtacgtagtaaccgtagtac',
    'alphabet' => 'dna'
    }, 'Bio:rimarySeq' )
    }, 'Bio::Seq' );
    gi|22212273|gb|AAM92877.1|
    Pour rendre la recherche insensible à la casse, le fonctionne très bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        if($seq->desc=~ /$tag/i){
            ...
        }
    Pour ce qui est de modifier l'identifiant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $out = FileHandle->new(">chemin.txt");
    my $in  = Bio::SeqIO->new(-file => 'chemin fichier', '-format' => 'Fasta');
    my $comment = 'commentaire';
    while ( my $seq = $in->next_seq()) {
          print  $out ">".$comment.$seq->primary_id().$seq->desc()."\n".$seq->seq()."\n";
    }
    Remarque

    Les doubles quotes sont inutiles dans ton expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $new_primary_id = "$comment".$primary_id;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Par défaut
    Merci Jasmine !!

    En fait pour le i, c'est juste que j'avais regardé dans des fichiers où certaines séquences n'étaient pas bien délimitées (primary_id collé à la desc) du coup il ne le voyait pas... Je pensais que ça venait du i... Merci pour m'avoir orienté dans la bonne direction !

    Pour la modif de l'identifiant, ça marche super bien mais une fois dans mon script complet, il y un problème de "IO::Handle bad open mode"... Je vais continuer à chercher d'où ça vient...

    Merci pour tes réponses

  4. #4
    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
    Tu dois utiliser le module FileHandle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    use FileHandle;
    ...
    my $out = FileHandle->new(">chemin.txt");
    ou sinon directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $out = "test.txt";
    open(OUT, ">".$out);	# Ouvre en écriture
    print OUT...;
    close(OUT);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Par défaut
    Oui oui j'ai ajouté le module ! Du coup le petit script marche bien seul, mais pas quand je l'intègre à mon application en Tk....
    Ma version d'avant avec juste Bio::SeqIO fonctionne bien mais ne donne pas ce que j'attends comme nouvel id ...
    Je suis vraiment perdue... Je vois pas d'où ça peut venir, le problème se situe bien à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $out = FileHandle->new(">chemin.txt");
    même avec le module...

    Ou alors ça vient du fait que je laisse l'utilisateur choisir le nom du fichier via Tk, et que je stocke ça dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $out = FileHandle->new(-file => ">$NomFinal");
    je sais pas....

    EDIT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    my $out1 = $NomFinal;
    		my $in1 = Bio::SeqIO->new(-file => "$Source1", -format => "Fasta");
     
     
    		while ( my $seq = $in1->next_seq()) {
     
    			open (OUT, ">".$out1)
    			print  OUT ">".$seq->primary_id().$seq->desc()."\n".$seq->seq()."\n\n";
     
    			print  OUT ">".$comment.$seq->primary_id().$seq->desc()."\n".$seq->seq()."\n\n";
     
    			close (OUT);
     
    			}
    Là il est pas d'accord à cause du > après print OUT, j'ai essayé '>' idem ...

  6. #6
    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
    C'est incorrect
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $out = FileHandle->new(-file => ">$NomFinal");
    Ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $out = FileHandle->new(">$NomFinal");
    Tu devrais vérifier que l'extension du fichier est bien introduite sinon cela ne fonctionnera pas.

    Ou alors, tu demandes à l'utilisateur un nom sans extension et tu l'ajoutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $out = FileHandle->new(">$NomFinal".'.txt');

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

Discussions similaires

  1. Rendre une colonne insensible à la casse
    Par SBOU_42 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 12/06/2013, 16h45
  2. Rendre Wamp insensible à la casse
    Par Beho Double dans le forum Apache
    Réponses: 2
    Dernier message: 15/05/2009, 18h50
  3. Rendre requête insensible à la casse
    Par pierrot67 dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/02/2007, 18h53
  4. Recherche insensible à la casse ET insensible aux accents.
    Par Bernard Grosdoy dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 10/07/2005, 03h32
  5. Tri insensible à la casse [IB7]
    Par patquoi dans le forum Débuter
    Réponses: 4
    Dernier message: 02/06/2003, 08h56

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