BioPerl

Fiche logiciel validé
  • Création ou MAJ importante : 24/10/11
  • Correction mineure : 07/12/13
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : ,

BioPerl : bibliothèque Perl de modélisation et traitement de données de biologie

  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Téléchargement
  • Version évaluée : 1.6.0
  • Langue(s) de l'interface : anglais
  • Licence : autre

    BioPerl comme la plupart des modules perl est livré sous la licence ArtisticPerl qui définit le cadre de la copie et de la modification des modules perl. Il autorise les utilisateurs à faire toute modification du package sur leur site, et de le redistribuer tant que les modifications sont duement signalées.

Description
Fonctionnalités générales

BioPerl est une bibliothèque comportant un ensemble de modules Perl facilement utilisables dans des programmes ou scripts pour la manipulation et le traitement de données biologiques, plus particulièrement celles issues de la génomique, la génétique ou de l'analyse du transcriptome. Bioperl fournit des outils pour l'indexation, l'interrogation et l'extraction de banques de données publiques ou locales, des filtres pour un très grand nombre de sorties de programmes usuels en bioinformatique (blast, clustalw, hmmer, est2genome, ...) permettant ainsi de réaliser simplement des enchaînements de programmes (pipelines).

Autres fonctionnalités

Dans le cadre du développement d'un projet d'envergure plus importante qu'un simple pipeline, bioperl offre une modélisation objet détaillée et extensible de nombreux concepts de biologie moléculaires. Il est souvent judicieux d'utiliser ou d'hériter de ces classes pour modéliser un problème, car il est souvent préférable d'utiliser des méthodes efficaces et souvent largement testées plutôt que de les réécrire.

Interopérabilité

L'utilisation de Bioperl permet une très haute intéropérabilité, car la bibliothèque propose un modèle de données standardisé permettant de stocker des données hétérogènes provenant de nombreuses sources. A l'aide de bioperl, il est par exemple possible de modéliser de manière identique des gènes prédits à partir de différents prédicteurs, ou extraits de différentes bases de données. L'utilisation de cette couche métier standardisée est très pratique pour lire des données provenant de différentes sources et les récrire dans d'autres formats spécifiques afin de les soumettre à de nouveaux programmes.

Contexte d'utilisation dans mon laboratoire/service

Le contexte d'utilisation de BioPerl est très large. On peut utiliser Bioperl dans des simples scripts pour extraire de l'information de banques de données ou analyser des résultats d'un programme, d'enchaînement de programmes (pipeline) ou pour des projets plus complexes nécessitant de la modélisation de données biologiques.

Voici un exemple qui en illustre quelques fonctionnalités :

use Bio::DB::GenBank;
use Bio::DB::Query::GenBank;

# 1. Extraction  directe des  données de genbank grâce au serveur Entrez et formattage au format fasta

# Recuperation des donnees au NCBI
my $gb  = Bio::DB::GenBank->new() ;

# la requete Entrez (voir http://www.ncbi.nlm.nih.gov/books/bv.fcgi?rid=help... ) pour plus details
# Ici on recherche les proteines d'un organisme, on a par  exemple la requete suivante : CIONA[ORGN] pour recuperer les sequences de ciona*   

my $querystr = $org.'[ORGN]';

# On recherche parmi la banque protein
my $query = Bio::DB::Query::GenBank->new
                ( -query   => $querystr,
                  -db      => 'protein'
                ) ;

# On recupere un objet Bio::SeqIO
my $seqio = $gb->get_Stream_by_query($query) ;

# Création d'un objet Bio::SeqIO de type fasta
my $fasta=Bio::SeqIO(-file => 'ciona.fa', -format => 'fasta');

# Ecriture du fichier fasta et stockage des séquences dans un tableau

my  @prots=(); #  tableau contenant un ensemble de sequences proteiques
while (my $seq = $seqio->next_seq()){
       $fasta->write_seq($seq);
       push @prots, $seq;
}

# 2. Lecture et filtre d'un fichier de blast, on utilise ici un blast installé localement et des banques formatées et installées localement
my $blastrun = Bio::Tools::Run::StandAloneBlast->new(program =>"blastp", database =>"uniprot", e => "1e-05");
my $blast_report = $blastrun->blastall (\@prots);

# $blast_report est un Bio::SearchIO il peut être facilement parcouru
while ( my $result = $blast_report->next_result() ) {
       while( my $hit = $result->next_hit ) {
            while( my $hsp = $hit->next_hsp ) {
                  if ($hsp->frac_identical > 0.75) {
                           print join "\t", $result->query_name(), $hit->name() "\n";
                   }
            }
     }
}

Limitations, difficultés, fonctionnalités importantes non couvertes

Bien que bioperl offre quelques scripts pour réaliser des tâches courantes, son intérêt réside surtout dans son utilisation pour réaliser des scripts, pipelines ou projets spécifiques et sophistiqués. Dans ce dernier cas, l'utilisation de bioperl s'adressera plus particulièrement à des développeurs familiers de la programmation objet en perl. En raison de la relative tolérance en programmation du langage Perl, la réutilisation de "recettes" bioperl sans une compréhension parfaite de leur fonctionnement peut engendrer des effets de bord incontrôlés fort gênants et pas forcément flagrants.

D'autre part, il arrive que les modules “parser” permettant d'analyser les sorties de programmes (par exemple certains Bio::Tools::*) ne soient pas à jour pour les versions courantes des programmes en question.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

GMOD GBrowse et Cmap, package <a href="http://www.ensembl.org/index.html>ensembl, etc...

D'autre part, bioperl est intégré au moins aux distributions Debian et Ubuntu, il est également présent sur le CPAN.

Plates-formes

Bioperl est installé sur l'ensemble des plate-formes bioinformatiques du réseau Rénabi, et très certainement sur l'ensemble des plate-formes bioinformatiques mondiales. Si ce n'est pas le cas demandez le !

Autres logiciels aux fonctionnalités équivalentes

Biojava et BioPython proposent des modèles et des outils comparables mais dans leur langage respectif. L'ensemble de ces bibliothèques font partie du projet OpenBio .

Environnement de développement
Type de structure associée au développement

Le développement de BioPerl se fait sous forme collaborative. Un groupe restreint de développeurs gère l'ajout de module dans la base SVN, chaque développeur est responsable de son module.

Eléments de pérennité

BioPerl est un projet libre extrêmement actif et réalisé à l'aide d'un effort collaboratif d'une très large communauté. Sa réutilisabilité et son extensibilité lui confèrent un atout majeur dans le monde de la bioinformatique où le nombre de logiciels et de standards croit continuellement.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

La documentation de bioperl est largement étoffée. Sur le site de bioperl on trouve des tutoriels (http://www.bioperl.org/wiki/Tutorials ) pour démarrer ou pour des utilisateurs plus avertis, une FAQ (http://www.bioperl.org/wiki/FAQ ) et des HOWTOs (http://www.bioperl.org/wiki/HOWTOs ) extrêmement fournies.

Pour aider à rédiger des scripts bioperl, on trouve naturellement la documentation de l'API en ligne (http://doc.bioperl.org ), et surtout le deobfuscator (http://www.bioperl.org/wiki/Deobfuscator ) permettant de visualiser simplement l'ensemble des méthodes de n'importe quelle classe, que ces méthodes soient implémentées dans la classe ou bien héritées.

Contributions

Une manière simple de contribuer est d'ajouter des modules (par exemple pour prendre en charge les sorties de nouveaux programmes bioinformatiques).
Les modifications de codes ou l'ajout de nouveaux modules doivent être signalées par l'intermédiaire de la mailing list, puis à travers un compte Bugzilla afin de notifier et/ou corriger directement les bugs, si la communauté le juge opportun.