IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Des codes sources perlConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 59, dernière mise à jour : 27 mai 2011 

 
OuvrirSommaireBioinformatique
Si vous souhaitez :
  • 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 Donner une note à l´article (5)

Créé le 2011-03-08  par djibril

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 :

test.txt
Sélectionnez
>A1
GATACCAGCATCGTACGTCGTACGTACGTAGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>A2
TACCACCCGATCTCGCATCGTCATGTGCGGGATCATTATGCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>B1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGATAGATCTGACT
>B2
GATACCAGCCACTTCTGACGATCGATCGATATTATAAAAGGATCATTATGCCACATTCTGATCgTGGACCTGCATTATAGATCTGCCCTT
>C1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>C2
GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
 
Sélectionnez
#!/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);
}
Résultat
Sélectionnez
>A1
GATACCAGCATCGTACGTCGTACGTACGTAGGGATCATTATGCCACATTCTGATCTTGGA
CCTGCATTATAGATCTGACTT
>A2
TACCACCCGATCTCGCATCGTCATGTGCGGGATCATTATGCACATTCTGATCTTGGACCT
GCATTATAGATCTGACTT
>B1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGATAGATCTGACT
>B2
GATACCAGCCACTTCTGACGATCGATCGATATTATAAAAGGATCATTATGCCACATTCTG
ATCgTGGACCTGCATTATAGATCTGCCCTT
>C1
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
>C2
GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
Créé le 2011-03-08  par Jasmine80

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.

file.fsa
Sélectionnez
>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
 
Sélectionnez
#!/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";
}
Résultat
Sélectionnez
sequence consensus à 50%
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT?

GGGATCATTATGCCACATTCTGATCTTGGACCTGCA
GGGATCATTATGC.ACATTCTGATCTTGGACCTGCA
GGGATCATTATGCCACATTCTGATCTTGGACCTG..
GGGATCATTATGCCACATTCTGATCTTGGACCTGCA
GGGATCCTTATGCCACATTCTGATCTTGGACCTGCA
CGGATCATTATGCCACATTCTGATCGTGGACCTGCA
Créé le 2011-03-08  par Jasmine80
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2011 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.