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

FAQ PerlConsultez toutes les FAQ

Nombre d'auteurs : 18, nombre de questions : 250, dernière mise à jour : 29 octobre 2015  Ajouter une question

 

Bienvenue sur la FAQ Perl. Cette FAQ a pour vocation de vous enseigner ou de vous faire revoir les notions élémentaires de ce fantastique langage. Perl est très utilisé dans différents domaines depuis la gestion système, le réseaux, l'administration de bases de données, le web (CGI), la bureautique, la conception d'interfaces graphiques ou des contextes scientifiques telle la bioinformatique. Nous espérons que cette FAQ vous sera d'une grande utilité.

Vous souhaitez participer à l'amélioration de cette FAQ, n'hésitez pas !! Commentez

Bonne lecture !

SommaireCodes sources utilesDes codes sourcesBioinformatique (3)
précédent sommaire suivant
 

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. Commentez

Mis à jour le 8 mars 2011 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::SeqIO. Fichier d'entrées :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
>A1 
GATACCAGCATCGTACGTCGTACGTACGTAGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT 
>A2 
TACCACCCGATCTCGCATCGTCATGTGCGGGATCATTATGCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT 
>B1 
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGATAGATCTGACT 
>B2 
GATACCAGCCACTTCTGACGATCGATCGATATTATAAAAGGATCATTATGCCACATTCTGATCgTGGACCTGCATTATAGATCTGCCCTT 
>C1 
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT 
>C2 
GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT
Code perl : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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); 
}
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>A1 
GATACCAGCATCGTACGTCGTACGTACGTAGGGATCATTATGCCACATTCTGATCTTGGA 
CCTGCATTATAGATCTGACTT 
>A2 
TACCACCCGATCTCGCATCGTCATGTGCGGGATCATTATGCACATTCTGATCTTGGACCT 
GCATTATAGATCTGACTT 
>B1 
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGATAGATCTGACT 
>B2 
GATACCAGCCACTTCTGACGATCGATCGATATTATAAAAGGATCATTATGCCACATTCTG 
ATCgTGGACCTGCATTATAGATCTGCCCTT 
>C1 
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT 
>C2 
GATACCAGCGGGATCCTTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT

Mis à jour le 8 mars 2011 Jasmine80

Le module Bio::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.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>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
Code perl : Sélectionner tout
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
#!/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"; 
}
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
sequence consensus à 50% 
GATACCAGCGGGATCATTATGCCACATTCTGATCTTGGACCTGCATTATAGATCTGACTT? 
 
GGGATCATTATGCCACATTCTGATCTTGGACCTGCA 
GGGATCATTATGC.ACATTCTGATCTTGGACCTGCA 
GGGATCATTATGCCACATTCTGATCTTGGACCTG.. 
GGGATCATTATGCCACATTCTGATCTTGGACCTGCA 
GGGATCCTTATGCCACATTCTGATCTTGGACCTGCA 
CGGATCATTATGCCACATTCTGATCGTGGACCTGCA

Mis à jour le 8 mars 2011 Jasmine80

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.