Traitement Fichiers GenBank
Salut,
Je suis parvenu à extraire la majeure partie des informations d'un fichier GenBank grâce au module Bio::SeqIO.
En revanche lorsque je récupère les annotations je ne récupère pas les positions ce qui est assez problématique.
Voici une partie du fichier gb, ce que je n'arrive pas à récupérer est en gras
Citation:
FEATURES Location/Qualifiers
source 1..1460
/organism="Homo sapiens"
/mol_type="mRNA"
/db_xref="taxon:9606"
/chromosome="19"
/map="19q13.12"
gene 1..1460
/gene="FXYD3"
/gene_synonym="MAT8; PLML"
/note="FXYD domain containing ion transport regulator 3"
/db_xref="GeneID:5349"
/db_xref="HGNC:4027"
/db_xref="MIM:604996"
exon 1..132
/gene="FXYD3"
/gene_synonym="MAT8; PLML"
/inference="alignment:Splign"
/number=1
misc_feature 129..131
/gene="FXYD3"
/gene_synonym="MAT8; PLML"
/note="upstream in-frame stop codon"
exon 133..228
/gene="FXYD3"
/gene_synonym="MAT8; PLML"
/inference="alignment:Splign"
/number=2
exon 229..282
/gene="FXYD3"
/gene_synonym="MAT8; PLML"
/inference="alignment:Splign"
/number=5
Voici donc le script en question
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
| #!/usr/bin/perl
use strict;
use warnings;
use Bio::SeqIO;
my $in = Bio::SeqIO->new(-format => 'GenBank', -file => $ARGV[0]) || die "Erreur, $!";
my $seq_object = $in->next_seq();
#ACCESSION
my $num_acc = $seq_object->accession();
print "Numéro d'Accession : ".$num_acc."\n";
#DEFINITION
my $desc = $seq_object->desc();
print "Description : ".$desc."\n";
#VERSION/GI
my $gi = $seq_object->primary_id();
my $version = $seq_object->version();
print "VERSION : ".$num_acc.".".$version."\t"."GI : ".$gi."\n";
print "\n\n";
#ORGANISM
my $espece = $seq_object->species()->node_name();
print "Organisme : ".$espece."\n";
#CLASSIFICATION
my @classification = $seq_object->species()->classification();
@classification = reverse(@classification);
my $j = 0;
print "Classification : "."\n";
foreach (@classification){
for(my $i=0; $i<$j; $i++){
print " ";
}
print $_."\n";
$j++;
}
print "\n\n";
#Annotations
my @annotations = $seq_object->annotation()->get_Annotations();
foreach (@annotations){
my $tagname = uc($_->tagname());
print $tagname." : ".$_->display_text()."\n";
}
print "\n\n";
#FEATURES
my @features = $seq_object->get_SeqFeatures();
foreach my $features_object (@features){
my $primary_tag = $features_object->primary_tag();
$primary_tag = uc($primary_tag);
print $primary_tag." :\n";
for($features_object->get_all_tags()){
my $tag = $_;
print "\t".$tag." : ";
for my $valeur ($features_object->get_tag_values($tag)){
print $valeur."\n";
}
}
print "\n\n";
}
print "Afficher séquence -Y/N- ? ";
chomp(my $choix = <STDIN>);
if($choix eq 'y'){
print "\n"."SEQUENCE : "."\n";
print $seq_object->seq."\n";
} |