Des codes sources perlConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 59, dernière mise à jour : 27 mai 2011
- 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