Click here to load reader

PERL ízelítő

  • View
    21

  • Download
    2

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Text of PERL ízelítő

  • PERLzeltPractical Extraction and Report LanguagePathologically Eclectic Rubbish Lister

  • Mirt kell programozni? A szmtgpek megknnytik azon problmk megoldst, amik szmtgp nlkl fel sem merlnnek

    Az informci mennyisgnek nvekedtvel egyre bvl igny van nagy volumen szmtsok/vizsglatok vgrehajtsra,egyre nagyobb adathalmazon kell vgrehajtani a feladatokat,az adott objektumot tbb mdon (tbbfle programmal) vizsgljuk, amik sokszor egyms eredmnyt (is) hasznljk.A rutin vizsglatoktl eltekintve llandan vltoz krdseket tesznk fel, jabb mdszereket/adatbzisokat hasznlunk

    Ezen clokhoz automatizlhat (batch, nem interaktv) s szabadon vltoztathat megoldsokra van szksg.

  • Mirt pp a Perl? A Perl kifejlesztsnek clja: Egyszer dolgokat egyszeren!

    Egyszer, de ugyanakkor gazdag s teljes programozsi nyelvBrmilyen programozsi feladat megoldhat vele, a legtbb egyszerbben, mint ms nyelvekkelBioinformatikai felhasznlsra specilis eszkzket fejlesztettek ki

  • (Perl) scriptek sszehasonltsa kommercilis programokkalA jl szervezett, esetleg knnyen kezelhet integrlt bioinformatikai programcsomagok htrnya, hogy jobbra elssorban interaktv felhasznlsra kszltek.Nehezen automatizlhatk, nem testre szabhatak s nagyon drgk.

    Megjegyzend, hogy a bioinformatikai vizsgldsok sorn az esetek tbbsgben igen egyszer tevkenysgeket vgznk:

    file-ok formtumnak megvltoztatsa,szekvencik kivgsa, elhvsuk adatbzisokbl,egyszer keressek, illesztsek

    GCG Programok hasznlatnak statisztikja

    reformat

    .

    17%

    chopup

    .

    14%

    fetch

    .

    11%

    bestfit

    .

    9%

    lookup

    .

    6%

    gap

    .

    5%

    fasta

    .

    5%

    pileup

    .

    4%

    blast

    .

    3%

    paupsearch

    .

    3%

    paupdisplay

    .

    2%

    motifs

    .

    2%

    stringsearch

    .

    2%

    names

    .

    2%

    gyebek

    .

    15%

  • (Perl) scriptek sszehasonltsa kommercilis programokkalEgy script testreszabottan a felhasznl ignyeit elgtit ki. (Ld. pl )Tetszleges szm objektum vizsglatra automatizlhat, statisztikai elemzs is kszthetAz eredmny automatikusan tovbb analizlhat, pl. a keress eltt mg ismeretlen szekvencik vizsglata is megoldottIngyenes

    Ugyanakkor interaktvan is hasznlhatGrafikus fellet is kszthet rutin clokraKnnyen tanulhat s feljeszthet

  • PerlA Unix rsze de minden ms op.rendszeren is futtathat (pl. Cygwin)A knny tanulhatsg s hasznlat rdekben ms nyelvekbl klcsnztt szintaxist hasznl (unix, C, awk, angol)Programozst knnyt, intuitv automatizmusokat tartalmaz (automatikus tipus-konverzi, dinamikus tmbk, stb.)A regulris kifejezsek egyedlll eszkzt knlnak szveges file-ok rtelmezsreObjektum orientlt programozst is lehetv tesz modulok hasznlatval

  • BioPerlA nehzkes, gyakran ismtld bioinformatikai feladatok megknnytsre, a felesleges prhuzamos fejlesztsek megelzsre ltrehozott nyilt kd kezdemnyezs Bioinformatikusok ltal magas szinten, hasonl cl ms projectekkel integrltan ltrehozott, s alaposan dokumentlt modulok gyjtemnye (http://doc.bioperl.org/releases/bioperl-1.2/) A tudomnyos kzssg kzremkdse s ignyei szerint folyamatosan fejld ingyenes eszkz

  • FEEDBACKMailing 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. [email protected] - General discussion http://bio.perl.org/MailList.html - About the mailing listsReporting BugsReport bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via email or the web: [email protected] http://bugzilla.bioperl.org/

  • A Perl legegyszerbb pt elemeiUtastsokVltozkVltoz tpusok, $,@,%, stringSpci vltozk @_, $_Ciklusok: foreach $f(@v) {};while () {};

  • Az objektumok (adatstruktrk kiterjesztse)Elrejtett tartalomEljrsok (methods, fggvnyek, szubrutinok)Konstruktorok (utastsok kiterjesztse)rkls

  • RegExRegulris kifejezs:Karakterek mintzatnak lekpezse (kdolsa)Tallat esetn egy logikai vltoz IGAZ rtket vesz felif (/GATATC/) {print EcoRV};m/pattern/tr/pattern/replacement/ # tr/ATGC/TACG/ (#mellkhats!)s/pattern/replacement/egimosx # s/idei/tavaji/

  • RegEx szintaxis$szoveg =~ s/a((ny)|p)((uci)|a|u)/valaki/ig;

  • RegEx karakter osztlyok/[tT]here/;/[a-zA-Z]/; # brmely bet/[0-9]/; # brmely szmjegy/[^A-Z]/;#brmely karakter, ami nem nagybet

  • RegEx horgonyforeach(@CDS) {$atg++ if /\AATG/};print "$atg gn tudja a szablyt\n";

  • RegEx sorozatokforeach (@primers) {next if (/[CG]{4,}$/);}

    MaxMinMegengedett tartomny{n,m}{n,m}?Legalbb n-szer, max m-szer{n,}{n,}?Legalbb n-szer{n}{n}?Pontosan n-szer**?0 vagy tbb (mint {0,})++?1 vagy tbb (mint {1,})???0 vagy 1-szer (mint {0,1})

  • RegEx vltozk s kiterjesztsek(?(felttel)igen-kif.|nem-kif.) (?(felttel)igen-kifejezs) $1, $2, $9, $+ Az els... kilencedik, utls zrjel tallatas/([^c])ei/$1ie/g;$& A tallat$` A tallat eltt minden$' A tallat utni rsz... s mg sokan msok ...

  • File formtumokAz egymstl fggetlenl fejlesztett programok ms s ms informcit tartalmaznak, klnbz formtumokat hasznlnak, klnbzik a szintaxisA file formtumok talaktsa nkl a programok inkompatibilisekA formtumok talaktsa nem mindig egyszerFASTAEMBLGenbankA regulris kifejezsek nagyban megknnytettk a fjlok rtelmezst, az egyes szakaszok felismerst beolvasst.Ma mr van sokkal jobb eszkz is:BioPerl

  • Seq object

  • A vilg legrvidebb file-format konvertl programjause Bio::SeqIO; $in = Bio::SeqIO->newFh(-file => "inputfilename" , '-format' => 'Fasta'); $out = Bio::SeqIO->newFh('-format' => 'EMBL'); print $out $_ while ; Hasznlata pl Unix alatt: fasta2EMBL inputfilename > outfileuse 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 objectEgy szekvencival kapcsolatban sokfle informcit kell szmon tartaniAminosav/nukleinsav sorrendBibliogrfiai informciSzrmazs (organizmus)Feature, megnevezett szakaszSzakasz hatraiFunkciKeresztreferencikAminosav sorrendEgyb annotciEzen informcikat tartalmazhatja az adatbzis, ill. adatfileUgyanezeket, jl kezelhet formban tartalmaznia kell a szekvencia objektumnak is

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

  • A Seq object alatt meghzd objektumok hasznlata$seqstr = $seqobj->seq(); # a szekvencia, mint betsor$seqstr = $seqobj->subseq(10,50); # a szekvencia egy rsze

    @features = $seqobj->get_SeqFeatures(); # A legfels szint, az annotcik halmaza egy objektumokat tartalmaz vektorban foreach my $feat ( @features ) { print "Feature ",$feat->primary_tag," starts ",$feat->start," ends ", $feat->end," strand ",$feat->strand,"\n"; # a feature objektumok megtartjk a sajt vonatkoz szekvencijukat print "Feature sequence is ",$feat->seq->seq(),"\n" } # seq objektumnak lehet species bejegyzse if( defined $seq->species ) { print "Sequence is from ",$species->binomial_name," [",$species->common_name,"]\n"; } # Az annotci is egy kln objektum fajta: Bio::AnnotationCollection $ann = $seqobj->annotation(); # annotation object Az egyik lehetsges annotci a vonatkoz referencik gyjtemnye. foreach my $ref ( $ann->get_Annotations('reference') ) { print "Reference ",$ref->title,"\n"; }

  • Location objectA location object hasznos minden olyan esetben, ha valami hasonlt egy tartomnyra: egy feature-hz vagy alignment-hez trstott szakasz, stb. Tartomnyok, listk, s pontosan meg nem hatrozhat helyek is lehetnek. my $fuzzylocation = new Bio::Location::Fuzzy (-start => '
  • A Seq object feltltseuse 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 => akrki', valami => brmi lehet' } ); $seq->add_SeqFeature($feat); print $out $seq;

  • A SeqFeature kapcsolata ms modulokkal

  • A SeqFeature megjelentseBio::Graphics::Panel, Bio::Graphics::Glyph, add_track, ...

    .png fjlok kszthetk

  • Analzis segdprogramok# A szekvencia, mint karakterfzr$seqobj->seq;# A szekvencia egy rsze, mint karakterfzr$seqobj->subseq(10,40);# A szekvencia egy rsze, mint Bio::PrimarySeq objektum$seqobj->trunc(10,100);

    $seqobj->translate;$seqobj->revcom;

    A minus szlon lv gn aminosav sorrendje:my $trans_trunc_rev = $seqobj->trunc(59100,59633)->revcom->translate();

  • Analzis segdprogramokSeqStats objectprint "\nMonomer counts using statistics object\n"; $seq_stats = Bio::Tools::SeqStats->new(-seq=>$seqobj); $hash_ref = $seq_stats->count_monomers(); # DNA v AAforeach $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";

  • Analzis segdprogramokSeqUtils, RestrictionEnzy

Search related