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 09/08/2011, 19h20   #1
Invité de passage
 
Femme marie lefevre
Étudiant
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Femme marie lefevre
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 0
Points : 0
Par défaut obtenir la classification phylogenetique à partird'un rapport GenBank

bonjour

En parsant un rapport GenBank j'ai reussi à obtenir un tableau contenant la classification de mon espece.Maintenant j'aimerai classer mes résultats par ordre ,classe et sous embranchement.
Pour cela j'ai essayer d'utiliser bio::species et bio::taxon mais impossible d'obtenir ce que je cherche la seule chose que j'arrive à obtenir c'est le genre (qui ne m'interesse pas) si quelqu'un vois une solution je suis preneuse car là je suis complètement bloquée

Merci
marie.lefebvre1608 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 10h11   #2
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Bonjour Marie,



Citation:
En parsant un rapport GenBank j'ai reussi à obtenir un tableau contenant la classification de mon espece.Maintenant j'aimerai classer mes résultats par ordre ,classe et sous embranchement.
La classification selon quel critère?
Peux-tu me donner un accession pour lequel tu dois retrouver l'ordre, la classe et le sous-embranchement?

La taxonomie n'est pas mon domaine et je n'ai qu'une seule fois travailler sur les taxons. J'avais écrit un script récupérant l'organisme, l'isolat et le taxon. Celui-ci pourra peut-être t'aider pour te donner des pistes.


Citation:
entrée :
-------------

my $query_string = "DQ426532 [Accession]";




sortie :
-----------

description : Aspergillus versicolor isolate YNLF-29 18S ribosomal RNA gene, partial sequence; internal transcribed spacer 1, 5.8S ribosomal RNA gene, and internal transcribed spacer 2, complete sequence; and 28S ribosomal RNA gene, partial sequence.
organism : Aspergillus_versicolor
accession : DQ426532
gi number : 89348008
seq_length : 521

==> division : Plants
organism : Aspergillus_versicolor
isolate : YNLF-29
mol_type : genomic DNA
db_xref : taxon:46472
isolation_source : air in hospital laboratory environment
note : PCR_primers=fwd_name: ITS1, rev_name: ITS4




Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/local/bin/perl
 
use strict;
use warnings;
 
 
 
#------------- Feature2.pl 
# Bio::SeqFeatureI - Abstract interface of a Sequence Feature
 
 
 
use Bio::DB::GenBank;
use Bio::DB::Taxonomy;
 
my $tax = Bio::DB::Taxonomy->new(-source => 'entrez');
 
 
my $db="nucleotide";
my $gb = new Bio::DB::GenBank;
 
 
my $query_string = "DQ426532 [Accession]";
 
my $query = Bio::DB::Query::GenBank->new(-db=>$db,
				    -query=>$query_string,
				  );
 
 
 
eval { $gb->get_Stream_by_query($query)};
 
if ($@) {
	print "0\n";
}
 
else{
	my $stream = $gb->get_Stream_by_query($query);
 
	while (my $gb_data = $stream->next_seq){
 
		use Data::Dumper;
		# print Dumper $gb_data;
 
		my $description = $gb_data->desc();
		print "\ndescription : $description\n";
		my ($orga) = $description =~ m/(\w+\s\w+)/;
		$orga =~ s/\s/_/;
		print "organism : $orga\n";
 
		my $accession = $gb_data->accession_number();
		print "accession : $accession\n";
		my $gi = $gb_data->primary_id();
		print "gi number : $gi\n";
 
		my $sequence = $gb_data->seq();
		my $ref_sequence = \$sequence;
		my $seq_length = length($sequence);
		print "seq_length : $seq_length\n\n";
 
 
 
		my $taxon = $tax->get_taxon(-gi => $gi);
		my $division = $taxon->division();
 
		print "==> division : $division\n";
 
 
		my ($organism, $strain, $isolate, $mol_type, $chromosome, $db_xref, $isolation_source, $note);				
		my ($product, $len, $strand, $start, $end, $sous_seq);
 
 
		# Returns an array of sub Sequence Features
		foreach my $feat ( $gb_data->get_SeqFeatures() ) {
 
			if($feat->has_tag('organism') ){
				($organism) = $feat->get_tag_values('organism');
				$organism =~ s/\s/_/;
				print "organism : ", $organism, "\n";
			}
 
			if($feat->has_tag('strain') ){
				($strain) = $feat->get_tag_values('strain');
				print "strain : ", $strain, "\n";
			}
 
			if($feat->has_tag('isolate') ){
				($isolate) = $feat->get_tag_values('isolate');
				print "isolate : ", $isolate, "\n";
			}
 
			if($feat->has_tag('mol_type') ){
				($mol_type) = $feat->get_tag_values('mol_type');
				print "mol_type : ", $mol_type, "\n";
			}
 
			if($feat->has_tag('chromosome') ){
				($chromosome) = $feat->get_tag_values('chromosome');
				print "chromosome : ", $chromosome, "\n";
			}
 
			if($feat->has_tag('db_xref') ){
				($db_xref) = $feat->get_tag_values('db_xref');
				print "db_xref : ", $db_xref, "\n";
			}
 
			if($feat->has_tag('isolation_source') ){
				($isolation_source) = $feat->get_tag_values('isolation_source');
				print "isolation_source : ", $isolation_source, "\n";
			}
 
			if($feat->has_tag('note') ){
				($note) = $feat->get_tag_values('note');
				print "note : ", $note, "\n\n";
			}
 
		}
 
	}
}


NB : lorsque je dois récupérer des informations sur Genbank, lors de l'utilisation de leur objet, le module Data:umper m'a toujours été d'une grande aide afin de voir les informations contenues dans ces objets souvent très complexes.
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 20h04   #3
Invité de passage
 
Femme marie lefevre
Étudiant
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Femme marie lefevre
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 0
Points : 0
bonjour
tout d'abord merci pour ta réponse mais mon problème reste le même parceque j'ai l' impression que le module bio::taxon ne permet pas de faire ce que je veux
Je te donne une exemple pour le numéro d'accession HM385133.1 je souhaite afficher juste Crustacea Malocostra Isopoda . J’espère que j'ai été claire.
Merci d'avance

Marie
marie.lefebvre1608 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 09h31   #4
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
C'est très clair.


Voici comment utiliser Data::Dumper :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/local/bin/perl
 
use strict;
use warnings;
 
 
use Bio::Taxon;
use Data::Dumper;
 
 
#------------- bio_taxon.pl
# Bio::Taxon - A node in a represented taxonomy
 
 
# recherche de Crustacea Malocostra Isopoda
 
 
my $entrez_dbh = Bio::DB::Taxonomy->new(-source => 'entrez');
 
my $gi = 300223465;
 
my $taxon = $entrez_dbh->get_taxon(-gi => $gi);
 
print Dumper $taxon;

Voici ce qui est renvoyé :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$VAR1 = bless( {
                 '_id' => '829779',
                 'create_date' => '2010/06/17',
                 'db_handle' => bless( {
                                         '_entrez_params' => {
                                                               'retmode' => 'xml',
                                                               'report' => 'xml',
                                                               'db' => 'taxonomy',
                                                               'tool' => 'Bioperl'
                                                             },
                                         'requests_redirectable' => [
                                                                      'GET',
                                                                      'HEAD'
                                                                    ],
                                         'from' => undef,
                                         'timeout' => 180,
                                         'parse_head' => 1,
                                         'max_redirect' => 7,
                                         'protocols_forbidden' => undef,
                                         'no_proxy' => [],
                                         'protocols_allowed' => undef,
                                         'use_eval' => 1,
                                         '_entrez_url' => 'http://www.ncbi.nih.gov/entrez/eutils/',
                                         'agent' => 'libwww-perl/5.806',
                                         'def_headers' => undef,
                                         '_root_verbose' => 0,
                                         'proxy' => {},
                                         'max_size' => undef
                                       }, 'Bio::DB::Taxonomy::entrez' ),
                 '_desc' => {},
                 '_ncbi_tax_id_provided' => 1,
                 '_creation_id' => 1,
                 'update_date' => '2010/06/17',
                 '_names_hash' => {
                                    'scientific' => [
                                                      'Isopoda sp. BOLD:AAH4108'
                                                    ],
                                    'division' => [
                                                    'Invertebrates'
                                                  ]
                                  },
                 'genetic_code' => '1',
                 'mitochondrial_genetic_code' => '5',
                 'rank' => 'species',
                 'pub_date' => '2010/07/12'
               }, 'Bio::Taxon' );
Tu peux donc via Bio::Taxon récupérer Isopoda, mais pas Crustacea Malocostra.
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 11h19   #5
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
                                       'db_handle' => bless( {
                                                               'db' => {
                                                                         'node_data' => {
                                                                                          'list2' => [
                                                                                                       'Metazoa',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list9' => [
                                                                                                       'unclassified Isopoda',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list5' => [
                                                                                                       'Malacostraca',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list8' => [
                                                                                                       'Isopoda',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list4' => [
                                                                                                       'Crustacea',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list10' => [
                                                                                                        'Isopoda sp. BOLD:AAH4108',
                                                                                                        'no rank'
                                                                                                      ],
                                                                                          'list3' => [
                                                                                                       'Arthropoda',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list7' => [
                                                                                                       'Peracarida',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list1' => [
                                                                                                       'Eukaryota',
                                                                                                       'no rank'
                                                                                                     ],
                                                                                          'list6' => [
                                                                                                       'Eumalacostraca',
                                                                                                       'no rank'
                                                                                                     ]
                                                                                        },
Les informations dont tu as besoin sont bien là (cf mon premier script), sans passer par Bio::Taxon.
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h44.


 
 
 
 
Partenaires

Hébergement Web