Précédent   Forum des professionnels en informatique > Autres langages > Perl > Bioinformatique
Bioinformatique Toutes vos questions sur les scripts Perl associés à la bioinformatique, modules bioperl, projets bioinformatiques, etc ... Avant de poster, veuillez consulter les cours Perl et les critiques de livres.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/02/2011, 10h26   #1
Futur Membre du Club
 
Inscription : août 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 77
Points : 15
Points : 15
Par défaut perl Bio::SeqIO=>récupérer la ligne entière

Bonjour,

Comment récupérer la ligne ENTIERE de mon fichier fasta?

exemple:
>eb|xxx|xxx; xxxx xxxxx xxxx xxxxx xxxxx
catgtacgtgtagttagtagtacgtcagtacgtca
catgacgtcatgatcctgatcggatacggta

A l'aide de mon script, je récupère seulement: eb|xxx|xxx;
(je pense que cela est du à l'espace après le point virgule!)
Je voudrais récupérer: eb|xxx|xxx; xxxx xxxxx xxxx xxxxx xxxxx

Merci par avance

Mon script:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
my $file = 'xxx.fa ';
my $in  = Bio::SeqIO->new(-file => $file , '-format' => 'fasta');
my %hash;
my $nb_seq++;
 
while ( my $seq = $in->next_seq() ){
    $nb_seq++;          
    $hash{$seq->seq} = $seq->primary_id ;
}
foreach my $seq (keys %hash){   
    print ">$hash{$seq}\n$seq\n";
}
pontarose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 11h12   #2
Membre éprouvé
 
Avatar de Beniou
 
Homme
Inscription : novembre 2009
Messages : 347
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : novembre 2009
Messages : 347
Points : 485
Points : 485
Bonjour,

En fait pour Bioperl, l'identifiant fasta est tout ce qui se trouve sur la ligne commençant par ">" jusqu'au premier espace ou retour ligne (accessible via les fonctions primary_id ou display_id). Ensuite, il considère que cela fait partie de la description (avec la fonction desc).

Donc si tu veux récupérer toute la ligne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
my $file = 'xxx.fa ';
my $in  = Bio::SeqIO->new(-file => $file , '-format' => 'fasta');
my %hash;
my $nb_seq++;
 
while ( my $seq = $in->next_seq() ){
    $nb_seq++;          
    $hash{$seq->seq} = $seq->display_id.$seq->desc ;
}
foreach my $seq (keys %hash){   
    print ">$hash{$seq}\n$seq\n";
}
Beniou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 11h26   #3
Futur Membre du Club
 
Inscription : août 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 77
Points : 15
Points : 15
Merci beaucoup Beniou, j'ai compris
pontarose est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h45.


 
 
 
 
Partenaires

Hébergement Web