PERL ízelítő Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister.

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

Zenetár a webszerverünkön, avagy XML használata PHP 5 alatt. Ercsey Balázs (laze) – netpeople.hu.
Programozás III STRING-XML.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Operációs rendszerek gyakorlat 10. Gyakorlat Vakulya Gergely.
SZENT ISTVÁN EGYETEM GAZDASÁG- ÉS TÁRSADALOMTUDOMÁNYI KAR TUDOMÁNYOS DIÁKKÖRI KONFERENCIA NOVEMBER 25. AUTO-SZŰRŐ FEJLESZTÉSE OLAP JELENTÉSEK UTÓLAGOS,
Tömbök C#-ban.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
BioGén tábor 2006 DNS szekvencia analízis, internetes adatbázisok a genetika szolgálatában Kósa János Semmelweis Egyetem ÁOK I.sz Belgyógyászati Klinika.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
JavaScript.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
PERL ízelítő Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister.
Új funkciók az EBSCOhost-ban november 21. Egyetemi Könyvtár Szeged.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Készítette: Pető László
Ellenőrző kérdések a)Auto-indexing enabled b)Auto-indexing disabled c)Nem eldönthető 1.
Adatbázis-kezelés ACCESS program:
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
Scriptnyelvek 9. gyakorlat Papp Gyula április 29.
PHP Webprogramozás alapjai
ADATBÁZISOK
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Kliensoldali Programozás
Operációs rendszerek gyakorlat sed, awk parancsok.
Vizuális és web programozás II.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
SZENT ISTVÁN EGYETEM GAZDASÁG- ÉS TÁRSADALOMTUDOMÁNYI KAR TUDOMÁNYOS DIÁKKÖRI KONFERENCIA NOVEMBER 25. AUTO-SZŰRŐ FEJLESZTÉSE OLAP JELENTÉSEK UTÓLAGOS,
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 8. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Összetett adattípusok
Összetett adattípusok
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Objektum orientált programozás a gyakorlatban
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Scala KOVÁCS VINCENT. Gyűjtemények – Collections  Scala több féle gyűjteménnyel rendelkezik:  Listák (Lists)  Halmazok (Sets)  Maps  Tuple  A gyűjtemények.
APEX BMF, II. félév.
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
Visual Basic 2008 Express Edition
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
Egyenesvonalú (lineáris) adatszerkezetek
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Webprogramozó tanfolyam
A Visual Basic nyelvi elemei
Power Lutár Patrícia Pellek Krisztián.  -ltLess than  -leLess than or equal to  -gtGreater than  -geGreater than or equal to  -eqEqual to  -neNot.
Táblázatkezelés KÉPLETEK.
Illés Zoltán ELTE Informatikai Kar
Programozás, programtervezés
Java web programozás 7-8..
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Informatikai gyakorlatok 11. évfolyam
Alapok Gyakorlat 2015/16 őszi szemeszter Automatizálási tanszék.
Készítette: Rummel Szabolcs Elérhet ő ség: Linux kezelése.
Script nyelvek előadás
Script nyelvek előadás
Script nyelvek előadás
Script nyelvek előadás
A CLIPS keretrendszer
Microsoft SQL licenselés a gyakorlatban
Előadás másolata:

PERL ízelítő Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister

Miért kell programozni? „A számítógépek megkönnyítik azon problémák megoldását, amik számítógép nélkül fel sem merülnének” Az információ mennyiségének növekedtével egyre bővülő igény van nagy volumenű számítások/vizsgálatok végrehajtására, egyre nagyobb adathalmazon kell végrehajtani a feladatokat, az adott objektumot több módon (többféle programmal) vizsgáljuk, amik sokszor egymás eredményét (is) használják. A rutin vizsgálatoktól eltekintve állandóan változó kérdéseket teszünk fel, újabb módszereket/adatbázisokat használunk Ezen célokhoz automatizálható ( „batch”, nem interaktív ) és szabadon változtatható megoldásokra van szükség.

Miért épp a Perl? A Perl kifejlesztésének célja: „Egyszerű dolgokat egyszerűen!” Egyszerű, de ugyanakkor gazdag és teljes programozási nyelv Bármilyen programozási feladat megoldható vele, a legtöbb egyszerűbben, mint más nyelvekkel Bioinformatikai felhasználásra speciális eszközöket fejlesztettek ki

A jól szervezett, esetleg könnyen kezelhető integrált bioinformatikai programcsomagok hátránya, hogy jobbára elsősorban interaktív felhasználásra készültek. Nehezen automatizálhatók, nem testre szabhatóak és nagyon drágák. Megjegyzendő, hogy a bioinformatikai vizsgálódások során az esetek többségében igen egyszerű tevékenységeket végzünk: file-ok formátumának megváltoztatása, szekvenciák kivágása, előhívásuk adatbázisokból, egyszerű keresések, illesztések (Perl) scriptek összehasonlítása kommerciális programokkal

Egy script testreszabottan a felhasználó igényeit elégítit ki. (Ld. pl… )Ld. pl… Tetszőleges számú objektum vizsgálatára automatizálható, statisztikai elemzés is készíthető Az eredmény automatikusan tovább analizálható, pl. a keresés előtt még ismeretlen szekvenciák vizsgálata is megoldott Ingyenes Ugyanakkor interaktívan is használható Grafikus felület is készíthető rutin célokra Könnyen tanulható és feljeszthető (Perl) scriptek összehasonlítása kommerciális programokkal

Perl A Unix része de minden más op.rendszeren is futtatható (pl. Cygwin) A könnyű tanulhatóság és használat érdekében más nyelvekből kölcsönzött szintaxist használ (unix, C, awk, angol) Programozást könnyítő, intuitív automatizmusokat tartalmaz (automatikus tipus-konverzió, dinamikus tömbök, stb.) A „reguláris kifejezések” egyedülálló eszközt kínálnak szöveges file-ok értelmezésére Objektum orientált programozást is lehetővé tesz „modulok” használatával

BioPerl A nehézkes, gyakran ismétlődő bioinformatikai feladatok megkönnyítésére, a felesleges párhuzamos fejlesztések megelőzésre létrehozott nyilt kódú kezdeményezés Bioinformatikusok által magas szinten, hasonló célú más projectekkel integráltan létrehozott, és alaposan dokumentált modulok gyűjteménye ( ) A tudományos közösség közreműködése és igényei szerint folyamatosan fejlődő ingyenes eszköz

FEEDBACK Mailing Lists User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to one of the Bioperl mailing lists. Your participation is much appreciated. - General discussion - About the mailing lists Reporting Bugs Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via or the web:

A Perl legegyszerűbb építő elemei Utasítások Változók Változó típusok, string Spéci $_ Ciklusok:  foreach {…};  while (<>) {…};

Az objektumok (adatstruktúrák kiterjesztése) Elrejtett tartalom Eljárások ( methods, függvények, szubrutinok ) Konstruktorok (utasítások kiterjesztése) Öröklés

RegEx Reguláris kifejezés: Karakterek mintázatának leképezése (kódolása) Találat esetén egy logikai változó IGAZ értéket vesz fel if (/GATATC/) {print “EcoRV”}; m/pattern/ tr/pattern/replacement/ # tr/ATGC/TACG/ (#mellékhatás!) s/pattern/replacement/egimosx # s/idei/tavaji/

RegEx szintaxis Metakarakter Jelentés \ Meváltoztatja a következő karakter jelentését. Az újsor karakter kivételével bármivel egyezik (kivéve, ha /s ) ^ A string (vagy sor, ha /m ) eleje $ A string (vagy sor, ha /m ) vége * Az előző elemből 0 vagy több darab + Az előző elemből 1 vagy több darab ? Az előző elemből 0 vagy 1 darab {...} Az előző elemből előfordulási számának tartománya [...] A zárójelek közötti elemek bármelyikével egyezik (karakter osztály) (...) Reguláris kifejezések csoportja | Vagy a jel előtti, vagy az utáni kifejezéssel egyezik $szoveg =~ s/a((ny)|p)((uci)|a|u)/valaki/ig;

RegEx karakter osztályok /[tT]here/; /[a-zA-Z]/; # bármely betű /[0-9]/; # bármely számjegy /[^A-Z]/;#bármely karakter, ami nem nagybetű KódJelentés \d Számjegy, vagyis: [0-9] \D Nem számjegy, vagyis: [^0-9] \w Alfanumerikus jel, vagyis: [a-zA-Z_0-9] \W Nem alfanumerikus jel, vagyis: [^a-zA-Z_0-9] \s „Színtelen” karakter, vagy: [\t\n\r\f] \S Látható karakter, vagy: [^\t\n\r\f]

RegEx horgony JelJelentés ^ A string eleje $ A string vége \b Szó széle ( \w és \W között ) \B Bárhol, csak nem a szóhatáron \A A string eleje \Z A string vége, vagy az újsor előtt \z A string vége \G Ott, ahol az előző m//g abbahagyta {$atg++ if /\AATG/}; print "$atg gén tudja a szabályt\n";

RegEx sorozatok MaxMinMegengedett tartomány {n, m}{n, m}? Legalább n-szer, max m-szer {n,}{n,}? Legalább n-szer {n}{n}? Pontosan n-szer **? 0 vagy több (mint {0,} ) ++? 1 vagy több (mint {1,} ) ??? 0 vagy 1-szer (mint {0,1} ) foreach { next if (/[CG]{4,}$/); … }

RegEx változók és kiterjesztések (?(feltétel)igen-kif.|nem-kif.) (?(feltétel)igen-kifejezés) $1, $2, … $9, $+ Az első... kilencedik, utólsó zárójel találata s/([^c])ei/$1ie/g; $& A találat $` A találat előtt minden $' A találat utáni rész... és még sokan mások...

File formátumok Az egymástól függetlenül fejlesztett programok más és más információt tartalmaznak, különböző formátumokat használnak, különbözik a szintaxis A file formátumok átalakítása nékül a programok inkompatibilisek A formátumok átalakítása nem mindig egyszerű FASTA EMBL Genbank A reguláris kifejezések nagyban megkönnyítették a fájlok értelmezését, az egyes szakaszok felismerését beolvasását. Ma már van sokkal jobb eszköz is: BioPerl

Seq object A Bioperl fő szekvencia-objektuma Se magát a szekvenciát, se a járulékos információkat nem látjuk. I/O műveletekhez külön modult használunk: SeqIO Szekvencia beolvasása file-ból: $seqio = Bio::SeqIO->new( '-format' => 'embl', -file => 'myfile.dat'); $seqobj = $seqio->next_seq(); Szekvencia kiírása file-ba: $out = Bio::SeqIO->new(-file => ">outputfilename", '-format' => 'EMBL') ; print $out $seqobj; Szekvencia letöltése adatbázisból (GCG: Fetch) $db = Bio::DB::GenBank->new(); $seqobj = $db->get_Seq_by_acc('X78121'); Szekvencia előállítása betűfüzérből (stringből) $seqobj = Bio::Seq->new( -display_id => 'my_id', -seq => $sequence_as_string);

A világ legrövidebb file-format konvertáló programja use Bio::SeqIO; $in = Bio::SeqIO->newFh(-file => "inputfilename", '-format' => 'Fasta'); $out = Bio::SeqIO->newFh('-format' => 'EMBL'); print $out $_ while ; Használata pl Unix alatt: fasta2EMBL inputfilename > outfile use Bio::SeqIO; $infile = shift; $infile =~ /(\w+)(\.\w)?/; $outfile = $1. '.embl' ; $in = Bio::SeqIO->newFh(-file => $infile, '-format' => 'Fasta'); $out = Bio::SeqIO->newFh(-file => $outfile,'-format' => 'EMBL'); print $out $_ while ; fasta2EMBL inputfilename

Seq object Egy szekvenciával kapcsolatban sokféle információt kell számon tartani Aminosav/nukleinsav sorrend Bibliográfiai információ Származás (organizmus) „Feature”, megnevezett szakasz  Szakasz határai  Funkció  Keresztreferenciák  Aminosav sorrend Egyéb annotáció Ezen információkat tartalmazhatja az adatbázis, ill. adatfile Ugyanezeket, jól kezelhető formában tartalmaznia kell a szekvencia objektumnak is

Egy SwissProt file és egy Bio::Seq object komponensei

A Seq object alatt meghúzódó objektumok használataSeq object $seqstr = $seqobj->seq(); # a szekvencia, mint betűsor $seqstr = $seqobj->subseq(10,50); # a szekvencia egy = $seqobj->get_SeqFeatures(); # A legfelső szint, az annotációk halmaza egy objektumokat tartalmazó vektorban foreach my $feat ) { print "Feature ",$feat->primary_tag," starts ",$feat->start," ends ", $feat->end," strand ",$feat->strand,"\n"; # a feature objektumok megtartják a saját vonatkozó szekvenciájukat print "Feature sequence is ",$feat->seq->seq(),"\n" } # seq objektumnak lehet species bejegyzése if( defined $seq->species ) { print "Sequence is from ",$species->binomial_name," [",$species- >common_name,"]\n"; } # Az annotáció is egy külön objektum fajta: Bio::AnnotationCollection $ann = $seqobj->annotation(); # annotation object Az egyik lehetséges annotáció a vonatkozó referenciák gyűjteménye. foreach my $ref ( $ann->get_Annotations('reference') ) { print "Reference ",$ref->title,"\n"; }

Location object A location object hasznos minden olyan esetben, ha valami hasonlít egy tartományra: egy „feature”-höz vagy „alignment”-hez társított szakasz, stb. Tartományok, listák, és pontosan meg nem határozható helyek is lehetnek. my $fuzzylocation = new Bio::Location::Fuzzy (-start => ' 90, -loc_type => '.');

A Seq object „feltöltése” use Bio::SeqFeature::Generic; use Bio::SeqIO; $in = Bio::SeqIO->newFh(-file => $ARGV[0]); $out = Bio::SeqIO->newFh(); $seq = ; $feat = new Bio::SeqFeature::Generic ( -start => 10, -end => 100, -strand => -1, -primary => 'repeat', -source => 'repeatmasker', -score => 1000, -tag => { new => 1, author => ‘akárki', valami => ‘bármi lehet' } ); $seq->add_SeqFeature($feat); print $out $seq;

A SeqFeature kapcsolata más modulokkal

A SeqFeature megjelenítése Bio::Graphics::Panel, Bio::Graphics::Glyph, add_track,....png fájlok készíthetők

Analízis segédprogramok # A szekvencia, mint karakterfüzér $seqobj->seq; # A szekvencia egy része, mint karakterfüzér $seqobj->subseq(10,40); # A szekvencia egy része, mint Bio::PrimarySeq objektum $seqobj->trunc(10,100); $seqobj->translate; $seqobj->revcom; A „minus” szálon lévő gén aminosav sorrendje: my $trans_trunc_rev = $seqobj->trunc(59100,59633)->revcom->translate();

Analízis segédprogramok SeqStats object print "\nMonomer counts using statistics object\n"; $seq_stats = Bio::Tools::SeqStats->new(-seq=>$seqobj); $hash_ref = $seq_stats->count_monomers(); # DNA v AA foreach $base (sort keys %$hash_ref) { print "Number of bases of type ", $base, "= ", %$hash_ref->{$base},"\n";} print "\nCodon counts without statistics object\n"; $hash_ref = Bio::Tools::SeqStats->count_codons($seqobj); foreach $base (sort keys %$hash_ref) { print "Number of codons of type ", $base, "= ", %$hash_ref->{$base},"\n"; } $weight = Bio::Tools::SeqStats->get_mol_wt($seqobj); print "\nMolecular weight (without statistics object) of sequence ", $seqobj->id(), " is between ", $$weight[0], " and ", $$weight[1], "\n";

use Bio::SeqUtils; # legyen $seq egy Bio::PrimarySeqI szerű object $util = new Bio::SeqUtils; $polypeptide_3char = $util->seq3($seq); # vagy $polypeptide_3char = Bio::SeqUtils->seq3($seq); # vagy Bio::SeqUtils->seq3($seq, $polypeptide_3char); # transzláció 3 vagy 6 = = Bio::SeqUtils->translate_6frames($seq); $re1 = new Bio::Tools::RestrictionEnzyme(-NAME = $re1->cut_seq($seqobj); $re2 = new Bio::Tools::RestrictionEnzyme ( -NAME =>'EcoRV--GAT^ATC', # új enzimek felvétele -MAKE =>'custom'); Analízis segédprogramok SeqUtils, RestrictionEnzyme object

use Bio::Tools::Sigcleave (); $sigcleave_object = new Bio::Tools::Sigcleave(-file=>'sigtest.aa', -desc=>'test sigcleave protein seq', -type=>'AMINO', -threshold=>'3.5' ); %raw_results = $sigcleave_object->signals; $formatted_output = $sigcleave_object->pretty_print; Pretty_print output: SIGCLEAVE of sigtest from: 1 to 146 Report scores over 3.5 Maximum score 4.9 at residue 131 Sequence: FVILAAMSIQGSA-NLQTQWKSTASLALET | (signal) | (mature peptide) Other entries above 3.5 Maximum score 3.7 at residue 112 Sequence: CSRQLFGWLFCKV-HPGAIVFVILAAMSIQGSANLQTQWKSTASLALET | (signal) | (mature peptide) Analízis segédprogramok Sigcleave object

BLAST Mivel ez a leggyakrabban végrehajtott keresés, ennek mgkönnyítésére külön modul áll rendelkezésre Helyi és interneten keresztüli futtatás azonos módon kezelhető Az eredmény-file ismeretlen számú találatot tartalmaz, ismeretlen szignifikancia értékkel, hosszal, stb. Ezek értelmezését is leegyszerűsíti Blast eredmény-file

BLAST

Stand-alone BLAST use Bio::DB::SwissProt; my $database = new Bio::DB::SwissProt; my $query = $database->get_Seq_by_id('TAUD_ECOLI'); #vagy valami Seq obj. my $factory = Bio::Tools::Run::StandAloneBlast->new( 'program' => 'blastp', 'database' => 'swissprot', _READMETHOD => "Blast" ); $factory->outfile('blast.out'); my $blast_report = $factory->blastall($query); my $result = $blast_report->next_result; while( my $hit = $result->next_hit()) { print "\thit name: ", $hit->name(), " significance: ", $hit->significance(), "\n"; }

Remote Blast 1 use Bio::SeqIO; use Bio::Tools::Run::RemoteBlast; my $Seq_in = Bio::SeqIO->new (-file => $ARGV[0], -format => 'fasta'); my $query = $Seq_in->next_seq(); my $factory = Bio::Tools::Run::RemoteBlast->new ( '-prog' => 'blastp', '-data' => 'swissprot', _READMETHOD => "Blast" ); my $blast_report = $factory->submit_blast($query); my $max_number = 100; my $trial = 0;

Remote Blast 2 while ( = $factory->each_rid ) { print STDERR "\nSorry, maximum number of retries $max_number exceeded\n" if $trial >= $max_number; last if $trial >= $max_number; $trial++; print STDERR "waiting... ".(5*$trial)." units of time\n" ; # RID = Remote Blast ID (e.g: ) foreach my $rid ) { my $rc = $factory->retrieve_blast($rid); if( !ref($rc) ) { if( $rc < 0 ) { # retrieve_blast returns -1 on error $factory->remove_rid($rid); } # retrieve_blast returns 0 on 'job not finished‘ sleep 5*$trial; }

Remote Blast 3 else { #---- Blast done ---- $factory->remove_rid($rid); my $result = $rc->next_result; print "database: ", $result->database_name(), "\n"; while( my $hit = $result->next_hit ) { print "hit name is: ", $hit->name, "\n"; while( my $hsp = $hit->next_hsp ) { print "score is: ", $hsp->score, "\n"; }

Egyéb modulok bioperl-1.2::Bio bioperl-1.2::Bio::Align bioperl-1.2::Bio::AlignIO bioperl-1.2::Bio::Assembly bioperl-1.2::Bio::Biblio bioperl-1.2::Bio::Cluster bioperl-1.2::Bio::Coordinate bioperl-1.2::Bio::Annotation bioperl-1.2::Bio::Coordinate::Result bioperl-1.2::Bio::DB bioperl-1.2::Bio::DB::Biblio bioperl-1.2::Bio::DB::Flat bioperl-1.2::Bio::DB::Flat::BDB bioperl-1.2::Bio::DB::GFF bioperl-1.2::Bio::DB::Query bioperl-1.2::Bio::Das bioperl-1.2::Bio::Event bioperl-1.2::Bio::Expression bioperl-1.2::Bio::Factory bioperl-1.2::Bio::Graphics bioperl-1.2::Bio::Graphics::Glyph bioperl-1.2::Bio::Index bioperl-1.2::Bio::LiveSeq bioperl-1.2::Bio::Location bioperl-1.2::Bio::Map bioperl-1.2::Bio::Matrix bioperl-1.2::Bio::Ontology bioperl-1.2::Bio::Phenotype bioperl-1.2::Bio::Root bioperl-1.2::Bio::Search bioperl-1.2::Bio::Seq bioperl-1.2::Bio::SeqFeature bioperl-1.2::Bio::Structure bioperl-1.2::Bio::Symbol bioperl-1.2::Bio::Taxonomy bioperl-1.2::Bio::Tools bioperl-1.2::Bio::Tools::Alignment bioperl-1.2::Bio::Tools::BPlite bioperl-1.2::Bio::Tools::Blast bioperl-1.2::Bio::Tools::HMMER bioperl-1.2::Bio::Tools::Phylo bioperl-1.2::Bio::Tools::Phylo::Molphy bioperl-1.2::Bio::Tools::Phylo::PAML bioperl-1.2::Bio::Tools::Phylo::Phylip bioperl-1.2::Bio::Tools::Prediction bioperl-1.2::Bio::Tools::Run bioperl-1.2::Bio::Tools::Sim4 bioperl-1.2::Bio::Tools::StateMachine bioperl-1.2::Bio::Tree bioperl-1.2::Bio::Variation...

BioPerl Class- és Object struktúra A BioPerl Class- és Object struktúra meglehetősen szerteágazó BioPerl Class- és Object struktúra NEM kell azonnal átlátni az egészet; A Perl és a BioPerl az egyszerű kezdés szem előtt tartásával készült ld pl bioperl / bioperl.org perl.org/ perl.org/