BioPerl

BioPerl
Type bioinformatik
Skrevet i Perl
Operativ system Linux , Mac OS X , Microsoft Windows
Første udgave 11. juni 2002 ( 2002-06-11 )
nyeste version 1.7.8 (3. februar 2021 ) ( 03-02-2021 )
Licens GNU General Public License og Artistic License
Internet side bioperl.org , metacpan.org/pod/BioPerl

BioPerl [1] [2] er en stor samling af Perl -moduler , der letter udviklingen af ​​Perl-scripts til bioinformatikopgaver . BioPerl har spillet en vigtig rolle i Human Genome Project [3] .

BioPerl er skrevet i programmeringssproget Perl , takket være dette understøttes færdige løsninger på tværs af platforme ( Linux , de fleste UNIX-lignende systemer , Mac OS X , Microsoft Windows ). Udviklet og distribueret frit og åbent. Det har et aktivt internationalt samfund af udviklere og videnskabsmænd.

Oprettelseshistorie

BioPerl er et aktivt Open Source-softwareprojekt, der vedligeholdes af Open Bioinformatics Foundation . Det første sæt Perl-koder til BioPerl blev skabt af Tim Hubbard og Jong Bhak ved Medical Research Council (Storbritannien) (MRC) center i Cambridge, hvor den første genomsekventering blev udført af Fred Sanger . MRC var et af centrene og fødestederne for moderne bioinformatik, da det havde et stort antal DNA-sekvenser og tredimensionelle proteinstrukturer.

Tim Hubbard brugte Perl - biblioteket , som indeholdt mange nyttige Perl-rutiner til bioinformatik. Jong Bhak, Tim Hubbards første kandidatstuderende , skabte scriptet . Bhak fusionerede de to Perl-subrutinebibliotekertil Bio.pl.

Navnet BioPerl blev opfundet i fællesskab af Bhak og Steven Brenner ved Center for Protein Engineering (CPE). I 1995 organiserede Brenner BioPerl-sektionen ved konferencen Intelligent Systems for Molecular Biology (ISMB) i Cambridge. BioPerl fik brugere i de kommende måneder, herunder Georg Fuellen, som var vært for et træningskursus i Tyskland. Fuellens kolleger og studerende har udvidet BioPerl kraftigt.

Yderligere blev BioPerl udvidet af andre brugere, blandt dem Steve Cherwitz (han udviklede aktivt Perl-koderne til sin gærgenomdatabase). En betydelig udvidelse kom, da Cambridge-studerende Ewan Birney sluttede sig til udviklingsteamet .

Den første stabile udgivelse fandt sted den 11. juni 2002. Den seneste stabile (i form af API) udgivelse er 1.7.8 den 3. februar 2021. Udviklerudgivelser udgives også med jævne mellemrum. Version 1.7.x af serien betragtes som den mest stabile (med hensyn til fejl) version af BioPerl og anbefales til daglig brug.

Impact on the Human Genome Project

Under sin eksistens har Human Genome Project stået over for adskillige udfordringer. Nogle af disse problemer blev løst, da mange genomiske laboratorier begyndte at bruge Perl. Et sådant problem var processen med at analysere alle DNA-sekvenserne. Nogle laboratorier byggede store monolitiske systemer med komplekse relationelle databaser, som tog evigheder at fejlsøge og implementere og blev overgået af nye teknologier. Andre laboratorier lærte at skabe modulære, løst koblede systemer, hvis dele kunne byttes rundt, efterhånden som nye teknologier dukkede op. Mange af de indledende resultater fra alle laboratorier var blandede. Til sidst blev det opdaget, at mange af trinene kunne implementeres, da løst koblede programmer kører gennem et Perl-shell-script.

Et andet problem, der er blevet rettet, er datadeling. Hvert laboratorium havde normalt forskellige programmer, de kørte med deres scripts, hvilket resulterede i flere konverteringer ved sammenligning af resultater. For at afhjælpe dette begyndte laboratorierne i fællesskab at bruge superdatasættet. Et script blev brugt til at transformere fra supersættet til sættet af hvert laboratorium, og det andet script blev brugt til at konvertere tilbage. Dette minimerede antallet af nødvendige scripts, og kommunikationen blev lettere med Perl.

Funktioner og eksempler

For at drage fordel af BioPerl har brugeren brug for en grundlæggende forståelse af Perl-programmeringssproget, herunder en forståelse af, hvordan man bruger Perl-referencer, -moduler, -objekter og -metoder i Perl.

BioPerl inkluderer ikke færdige programmer, men leverer universelle softwaremoduler til mange typiske bioinformatikopgaver. Dette letter skrivning af scripts og pipelines til manipulation af nukleotid- og aminosyresekvenser, adgang til databaser ved hjælp af forskellige biologiske datalagringsformater, eksekvering og analyse af resultater i forskellige bioinformatikprogrammer, for eksempel BLAST , ClustalW , T-COFFEE ( tcoffee . ) , HMMER og andre.

Generelt giver BioPerl-moduler dig mulighed for at:

Et eksempel på adgang til GenBank (fjerndatabase) for at få en sekvens:

#!/usr/bin/perl -w brug Bio::DB::GenBank ; min $db_obj = Bio::DB::GenBank -> ny ; # Dette objekt kan tale med GenBank min $seq_obj ; $seq_obj = $db_obj -> get_Seq_by_acc ( 'J00522' ); # using Accession Number $seq_obj = $db_obj -> get_Seq_by_version ( 'J00522.1' ); # Accession.version $seq_obj = $db_obj -> get_Seq_by_gi ( '25829' ); # GI-nummer print $seq_obj -> display_id (), "\n" ; # print menneskelæselig sekvensidentifikator print $seq_obj -> desc (), "\n" ; # print sekvensbeskrivelse print $seq_obj -> seq (), "\n" ; # udgangssekvens brug Bio::SeqIO ; min $seqOut = new Bio:: SeqIO ( - format => 'genbank' ); $seqOut -> write_seq ( $seq_obj );

Eksempelkode til konvertering af formater

brug Bio::SeqIO ; my $usage = "all2y.pl informat outfil outfileformat" ; mit $informat = skift eller $brug ; min $outfile = skift eller $brug ; mit $outformat = skift eller $brug ; min $seqin = Bio::SeqIO -> new ( - fh => * STDIN , - format => $informat , ); min $seqout = Bio::SeqIO -> new ( - file => ">$outfile" , - format => $outformat , ); while ( my $inseq = $seqin -> next_seq ) { $seqout -> write_seq ( $inseq ); }
  • Analyse af individuelle sekvenser.

Indsamling af statistik for en given sekvens

brug Bio::Tools::SeqStats ; min $seq_stats = Bio::Tools::SeqStats -> new ( $seqobj ); # Returnerer en reference til et array med to elementer, der indeholder den maksimale nedre grænse og den mindste øvre grænse for molekylvægten af ​​sekvensen my $weight = $seq_stats -> get_mol_wt (); min $monomer_ref = $seq_stats -> count_monomers (); # antal monomerer (nukleotider) # For en nukleotidsekvens min $codon_ref = $seq_stats -> count_codons (); # antal kodoner

Ansøgning

Udover direkte brug af slutbrugere [4] er BioPerl også grundlaget for en lang række bioinformatikværktøjer, herunder:

  • Degenereret primerdesign [10]
  • Forespørgsel i offentlige databaser [11]
  • Nuværende sammenligningstabel [12]

Nye værktøjer og algoritmer fra eksterne udviklere er ofte integreret direkte i BioPerl selv:

  • Arbejde med fylogenetiske træer og indlejrede taxa [13]
  • FPC-webværktøjer [14]

Fordele

I øjeblikket indeholder BioPerl omkring 1000 moduler. Det er et af de første depoter af biologiske softwaremoduler, som markant øgede bekvemmeligheden og hastigheden ved at løse bioinformatikproblemer. BioPerl har meget nemme at installere Perl-moduler og et fleksibelt globalt lager. BioPerl bruger gode testmoduler til en lang række processer.

En af styrkerne ved BioPerl er, at det giver dig mulighed for at udtrække sekvenser fra alle slags kilder: filer, biologiske fjerndatabaser ( GenBank , SwissProt/UniProt , GenPept , EMBL , SeqHound , Entrez Gene og RefSeq ), lokale databaser, uanset deres format.

Ulemper

Der er mange måder at bruge BioPerl på, fra simpel scripting til meget kompleks objektorienteret programmering. Dette gør nogle gange Perl-sproget svært at forstå. Af det store antal BioPerl-moduler er der nogle, der ikke altid fungerer som forventet.

Lignende biblioteker på andre programmeringssprog

Der er følgende BioPerl-lignende bioinformatikbiblioteker, der er implementeret i andre programmeringssprog som en del af Open Bioinformatics Foundation :

  • Bioleder
  • biopython
  • BioJava
  • BioRuby
  • BioPHP
  • BioJS

Se også

Litteratur

Noter

  1. Stajich, JE; Block, D.; Boulez, K.; Brenner, S .; Chervitz, S.; Dagdigian, C.; Fuellen, G.; Gilbert, J.; Korf, I.; Lapp, H.; Lehvaslaiho, H.; Matsalla, C.; Mungall, CJ; Osborne, B.I.; Pocock, M.R.; Schattner, P.; Senger, M.; Stein, L.D .; Stupka, E.; Wilkinson, M.D.; Birney, E. (2002). "BioPerl Toolkit: Perl Modules for the Life Sciences" . Genomforskning . 12 (10): 1611-1618. DOI : 10.1101/gr.361602 . PMC  187536 . PMID  12368254 .
  2. Arkiveret kopi . Dato for adgang: 21. januar 2007. Arkiveret fra originalen 2. februar 2007.
  3. Lincoln Stein (1996). "Hvordan Perl reddede det menneskelige genom-projekt" . Perl Journal . 1 (2). Arkiveret fra originalen 2007-02-02 . Hentet 2009-02-25 .
  4. Metoder til identifikation og kortlægning af nylige segment- og genduplikationer i eukaryote genomer // Genkortlægning, opdagelse og ekspression . - Totowa, NJ: Humana Press, 2006. - Vol. 338. - S. 9–20. - ISBN 978-1-59745-097-3 . - doi : 10.1385/1-59745-097-9:9 .
  5. Pan, X.; Stein, L .; Brendel, V. (2005). SynBrowse: En synteny-browser til sammenlignende sekvensanalyse. bioinformatik . 21 (17): 3461-3468. DOI : 10.1093/bioinformatics/bti555 . PMID  15994196 .
  6. Shah, S.P.; McVicker, G.P.; MacKworth, A.K.; Rogic, S.; Ouellette, BFF (2003). "GeneComber: Kombination af output fra genforudsigelsesprogrammer for forbedrede resultater". bioinformatik . 19 (10): 1296-1297. doi : 10.1093/bioinformatik/ btg139 . PMID 12835277 . 
  7. Lenhard, B.; Wasserman, W. W. (2002). "TFBS: Computational framework for transcription factor binding site analysis" . bioinformatik . 18 (8): 1135-1136. DOI : 10.1093/bioinformatik/18.8.1135 . PMID  12176838 .
  8. Huang, J.; Gutteridge, A.; Honda, W.; Kanehisa, M. (2006). "MIMOX: Et webværktøj til fagdisplay baseret epitopkortlægning" . BMC Bioinformatik . 7 : 451. DOI : 10.1186/1471-2105-7-451 . PMC  1618411 . PMID  17038191 .
  9. Catanho, M.; Mascarenhas, D.; Degrave, W.; De Miranda, AB ?L. (2006). BioParser. Anvendt bioinformatik . 5 (1):49-53. DOI : 10.2165/00822942-200605010-00007 . PMID  16539538 .
  10. Wei, X.; Kuhn, D.N.; Narasimhan, G. (2003). "Degenereret primerdesign via clustering". Forhandlinger. IEEE Computer Society Bioinformatics Conference . 2 :75-83. PMID  16452781 .
  11. Croce, O.; Lamarre, M.L.; Christen, R. (2006). "Forespørgsel i de offentlige databaser for sekvenser ved hjælp af komplekse nøgleord indeholdt i feature-linjerne" . BMC Bioinformatik . 7:45 DOI : 10.1186/ 1471-2105-7-45 . PMC  1403806 . PMID  16441875 .
  12. Landsteiner, B.R.; Olson, M.R.; Rutherford, R. (2005). "Current Comparative Table (CCT) automatiserer tilpassede søgninger i dynamiske biologiske databaser" . Nukleinsyreforskning . 33 (webserverproblem): W770-W773. doi : 10.1093/nar/ gki432 . PMC 1160193 . PMID 15980582 .  
  13. Llabres, M.; Rocha, J.; Rossello, F.; Valiente, G. (2006). "Om forfædrenes kompatibilitet mellem to fylogenetiske træer med indlejrede taxaer." Journal of Mathematical Biology . 53 (3): 340-364. arXiv : cs/0505086 . DOI : 10.1007/s00285-006-0011-4 . PMID  16823581 .
  14. Pampanwar, V.; Engler, F.; Hatfield, J.; Blundy, S.; Gupta, G.; Soderlund, C. (2005). "FPC-webværktøjer til ris, majs og distribution" . Plantefysiologi . 138 (1): 116-126. DOI : 10.1104/pp.104.056291 . PMC  1104167 . PMID  15888684 .