120 likes | 267 Views
Perl kalbos biblioteka BioPerl (tęsinys). Doc. Robertas Damaševičius KTU Programų inžinerijos katedra, Studentų 50-415 Email : damarobe @ soften.ktu.lt. Daugybinis sekų sugretinimas.
E N D
Perl kalbos bibliotekaBioPerl (tęsinys) Doc. Robertas Damaševičius KTU Programų inžinerijos katedra, Studentų 50-415 Email: damarobe@soften.ktu.lt
Daugybinis sekų sugretinimas Bioinformatika (B110M100) • BioPerl turi sąsają standartinei daugybinio sugretinimo programai Clustalw. Sukuriamas Clustalw tipo objektas, nustatomos parametrų reikšmės ir iškviečiama align () metodas. use Bio::Tools::Run::Alignment::Clustalw; @params = (’ktuple’ => 2, ’matrix’ => ’BLOSUM’); $factory = Bio::Tools::Run::Alignment::Clustalw ->new (@params); $ktuple = 3; $factory ->ktuple ($ktuple); $seq_array_ref = \@seq_array; $aln = $factory ->align ($seq_array_ref);
Sekų sugretinimas naudojant išorės programą • Naudojama programa clustalw2 system ("clustalw2 gb_sekos2.fa -OUTFILE=gb_sekos.aln"); • Sugretinimo rezultatų nuskaitymas iš failo naudojant AlignIO $io = Bio::AlignIO ->new (-file => "gb_sekos.aln", -format => "clustalw"); $aln = $io ->next_aln; • Konsensuso sekos radimas $consensus = $aln ->consensus_string ($threshold_percent); • Sekų sutapimo apskaičiavimas $percent = $aln ->percentage_identity;
Filogenetinė analizė • Tikslas: nustatyti evoliucinius sąryšius tarp organizmus ir atvaizduoti juos kaip filogenetinį medį • Filogenetinis (evoliucinis) medis: medis parodantis evoliucinius ryšius tarp įvairių rūšių, kurie manoma turi bendrą protėvį • Kiekvienas mazgas atitinka jo šakų protėvį • šakų ilgis kartais atitinka laiko vienetus. Bioinformatika (B110M100) 4
Evoliucinio medžio sudarymas (1) Bioinformatika (B110M100) • Medžio sudarymas naudojant atstumų tarp sekų metrikas $dfactory = Bio::Tree::DistanceFactory ->new (-method => 'NJ'); $stats = Bio::Align::ProteinStatistics ->new; $distmat = $stats ->distance(-align => $aln, -method => 'Kimura'); $tree = $dfactory ->make_tree ($distmat); • Medžių sudarymo algoritmai: • Neighbor-Joining (NJ) / Kaimynų apjungimo • Unweighted Pair Group Method with Arithmetic Mean (UPGMA) • DNR sekoms naudojamas Bio::Align::DNAStatistics objektas • Atstumų metrikos • DNR sekoms: Jukes-Cantor, Kimura, Felsenstein, Tajima-Nei, Tamura • Baltymų sekoms: Kimura
Evoliucinio medžio sudarymas (2) Bioinformatika (B110M100) 6 Evoliucinio medzio spausdinimas Newick formatu $treeout = Bio::TreeIO ->new (-format => 'newick'); $treeout ->write_tree ($tree); Evoliucinio medžio piešimas grafiniu formatu (PostScript) $obj1 = Bio::Tree::Draw::Cladogram ->new (-tree => $tree, -compact => 0); $obj1 ->print (-file => "tree.eps"); Galima peržiūrėti su Adobe Photoshop programa
Newick formatas • Filogenetiniai medžiai gali būti atvaizduojami grafiškai naudojant Newick formatą: • skliaustai ( ... ) – reiškia visą medį arba atskirą pomedį; • kablelis – atskiriamos medžio šakos; • dvitaškis – naudojamas šakos ilgiui nurodyti; • kabliataškis – žymi medžio pabaigą. Bioinformatika (B110M100) 7
Filogenetinio medžio pavyzdys ((simpanze,zmogus),((orangutangas,gibonas),gorila)); Bioinformatika (B110M100) 8
Straipsnių paieška PubMed duomenų bazėje • Sukuriamas Bio::Biblio tipo bibliografinės užklausos objektas $biblio = Bio::Biblio ->new ( -access => 'eutils' ); • Paieška pagal tam tikrą lauką (straipsnio numerį, autorių, anotaciją, pavadinimą) $biblio -> find ('pyragas', 'authors'); $biblio->find ('Support Vector Machine','abstract'); • Straipsnio paėmimas: naudojamas objektas Bio::Biblio::IO $xml = $biblio ->get_next; $io = Bio::Biblio::IO ->new ( -data => $xml, -format => 'medlinexml' ); $article = $io ->next_bibref ();
Straipsnių analizė • Straipsnio autoriai: @aut=%$article ->{'_authors'}; • Autoriaus pavardė: $aut[0][$i] ->{'_lastname'}; • Pavadinimas: $pav=%$article ->{'_title'}; • Anotacija: $anot= %$article ->{'_abstract'};
Pavyzdys # Print docs from PubMed with term “Breast Cancer” use Bio::Biblio; my $biblio = new Bio::Biblio; my $collection = $biblio ->find (“breast cancer”); while ($collection ->has_next) { print $collection ->get_next; } Perl and BioPerl - Craig A. Struble
Paieška FASTA faile pagal šabloną Naudoti Bioperl modulius use Bio::SeqIO::fasta; use Bio::Seq; $io = new Bio::SeqIO::fasta (-file =>$ARGV[0]); $count = 0; while ($seq = $io ->next_seq ()) { if ($seq ->seq () =~ m/[A|G]TATA/) { $count++; } } print $count . "\n"; Failo vardas skaitomas iš komandinės eilutės Skaičiuojama kiek sekų turi tam tikrą šabloną Rezultatas