
Des codes sources perlConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 59, dernière mise à jour : 27 mai 2011
Sommaire
→
Bioinformatique- participer à l'amélioration des codes en bioinformatique de cette source ;
- de soumettre des corrections ou toutes idées, d'amélioration ;
- de contribuer.
N'hésitez pas, faites vos propositions ici. 7 commentaires ![]()
Le but est de récupérer les identifiants et leur séquence une à une de façon simple et rapide grâce au module Bio::SeqIOBio::SeqIO. Fichier d'entrées :
>A1
GATACCAGCATCGTACGTCGTACGTACGTAGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>A2
TACCACCCGATCTCGCATCGTCATGTGCGGGATCATTATGCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>B1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGATAGATCTGACT
>B2
GATACCAGCCACTTCTGACGATCGATCGATATTATAAAAGGATCATTATGCCACATTCTGATCgTGGACCTGCATTATAGATCTGCCCTT
>C1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>C2
GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
#!/usr/bin/perl
use strict;
use warnings;
use Bio::SeqIO;
# fichier d'entrée
my $in = Bio::SeqIO->new( -file => "test.txt", '-format' => 'Fasta' );
# fichier de sortie
my $out = Bio::SeqIO->new( -file => ">exit.fas", '-format' => 'Fasta' );
# récupération des séquences
while ( my $seq = $in->next_seq() ) {
my $id = $seq->primary_id;
my $sequence = $seq->seq;
# écriture dans le fichier de sortie
$out->write_seq($seq);
}
>A1
GATACCAGCATCGTACGTCGTACGTACGTAGGGATCATTATGCCACATTCTGATCTTGGA
CCTGCATTATAGATCTGACTT
>A2
TACCACCCGATCTCGCATCGTCATGTGCGGGATCATTATGCACATTCTGATCTTGGACCT
GCATTATAGATCTGACTT
>B1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGATAGATCTGACT
>B2
GATACCAGCCACTTCTGACGATCGATCGATATTATAAAAGGATCATTATGCCACATTCTG
ATCgTGGACCTGCATTATAGATCTGCCCTT
>C1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>C2
GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
Le module Bio::AlignIOBio::AlignIO permet de récupérer et d'analyser les séquences une à une en gardant les positions des gaps. On peut donc aussi récupérer un bloc de sous-séquences en gardant leur alignement, mais également obtenir la séquence consensuelle de cet alignement.
>A1/1-60
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
.
>A2/1-57
..TACCAGCGGGATCATTATGC.ACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
.
>B1/1-55
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTG....ATAGATCTGACT.
.
>C1/1-60
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
.
>C2/1-60
GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
.
>B2/1-61
GATACCAGCCGGATCATTATGCCACATTCTGATCGTGGACCTGCATTATAGATCTGCCCT
T
#!/usr/bin/perl
use strict;
use warnings;
use Bio::AlignIO;
# fichier d'entrée
my $inputfilename = 'file.fsa';
my $in = Bio::AlignIO->new(
-file => $inputfilename,
'-format' => 'fasta'
);
my $aln = $in->next_aln();
# recherche de la séquence consensus à 50%
print "sequence consensus à 50%\n";
print $aln->consensus_string(50), "\n\n";
# manipulation de séquences alignées
foreach my $seq ( $aln->each_seq ) {
# récupération de sous-séquences
my $res = $seq->subseq( 10, 45 );
print $res, "\n";
}
sequence consensus à 50%
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT?
GGGATCATTATGCCACATTCTGATCTTGGACCTGCA
GGGATCATTATGC.ACATTCTGATCTTGGACCTGCA
GGGATCATTATGCCACATTCTGATCTTGGACCTG..
GGGATCATTATGCCACATTCTGATCTTGGACCTGCA
GGGATCCTTATGCCACATTCTGATCTTGGACCTGCA
CGGATCATTATGCCACATTCTGATCGTGGACCTGCA



