perl kalbos biblioteka bioperl

20
Perl kalbos Perl kalbos biblioteka biblioteka BioPerl BioPerl Prof Prof . Robertas Damaševičius . Robertas Damaševičius KTU Programų inžinerijos katedra, KTU Programų inžinerijos katedra, Studentų 50- Studentų 50- 409a 409a Email: Email: robertas.damasevicius(at)ktu.lt robertas.damasevicius(at)ktu.lt

Upload: jonah-mckenzie

Post on 03-Jan-2016

74 views

Category:

Documents


0 download

DESCRIPTION

Perl kalbos biblioteka BioPerl. Prof . Robertas Damaševičius KTU Programų inžinerijos katedra, Studentų 50- 409a Email: robertas.damasevicius(at)ktu.lt. BioPerl. Bioinformaciniams skaičiavimams skirtų Perl klasių biblioteka Naudota žmogaus genomo dekodavimo projekte - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Perl kalbos biblioteka  BioPerl

Perl kalbos bibliotekaPerl kalbos biblioteka BioPerlBioPerl

ProfProf. Robertas Damaševičius. Robertas DamaševičiusKTU Programų inžinerijos katedra, KTU Programų inžinerijos katedra,

Studentų 50-Studentų 50-409a409aEmail: Email: robertas.damasevicius(at)ktu.ltrobertas.damasevicius(at)ktu.lt

Page 2: Perl kalbos biblioteka  BioPerl

BioPerlBioPerl

Bioinformaciniams skaičiavimams Bioinformaciniams skaičiavimams skirtų Perl klasių bibliotekaskirtų Perl klasių biblioteka

Naudota žmogaus genomo Naudota žmogaus genomo dekodavimo projektedekodavimo projekte

Geriausiai išvystyta: bibliotekos Geriausiai išvystyta: bibliotekos kitoms kalboms (BioJava, BioPython) kitoms kalboms (BioJava, BioPython) dar tik kuriamosdar tik kuriamos

http://www.bioperl.orghttp://www.bioperl.org

2Perl and BioPerl - Craig A. Struble

Page 3: Perl kalbos biblioteka  BioPerl

BioPerl sprendžiamos BioPerl sprendžiamos problemosproblemos

Priėjimas prie vietinėse ir nutolusiose Priėjimas prie vietinėse ir nutolusiose duomenų bazėse saugomų sekų duomenųduomenų bazėse saugomų sekų duomenų

Duomenų bazių ir failų įrašų formatų Duomenų bazių ir failų įrašų formatų transformavimastransformavimas

Atskirų sekų apdorojimasAtskirų sekų apdorojimas Panašių sekų paieškaPanašių sekų paieška Sekų sugretinimasSekų sugretinimas Genų ir kitų DNR struktūrinių elementų Genų ir kitų DNR struktūrinių elementų

paieškapaieška Kompiuterio skaitomų sekų anotacijų Kompiuterio skaitomų sekų anotacijų

sukūrimassukūrimas

3Bioinformatika (B110M100)

Page 4: Perl kalbos biblioteka  BioPerl

Pagrindiniai BioPerl Pagrindiniai BioPerl moduliai (1)moduliai (1)

BioPerl modulis PaskirtisBio::Seq Sekos objektasBio::SimpleAlign Daugybinis sekų sugretinimasBio::DB::GenBank Duomenų bazės objekto sąsaja su

GenBank duomenų bazeBio::DB::NCBIHelper NCBI duom. bazės užklausų procedūrosBio::Index::Fasta FASTA formato failų indeksavimasBio::Index::GenBank GenBank formato failų indeksavimasBio::Tools::Blast BioPerl BLAST sekos analizės objektas

4Bioinformatika (B110M100)

Page 5: Perl kalbos biblioteka  BioPerl

Pagrindiniai BioPerl Pagrindiniai BioPerl moduliai (2)moduliai (2)

BioPerl modulis PaskirtisBio::Tools::CodonTable BioPerl kodonų lentelės objektasBio::Tools::SeqPattern BioPerl sekos šablono arba motyvo

objektas Bio::Tools::SeqStats Tam tikros sekos statistinę informaciją

saugantis objektasBio::Tools::Blast::Run::LocalBlast

BioPerl modulis skirtas lokaliai BLAST analizei atlikti

Bio::Tools::Blast::Run::Webblast

BioPerl modulis skirtas BLAST analizei atlikti naudojant HTTP sąsają

5Bioinformatika (B110M100)

Page 6: Perl kalbos biblioteka  BioPerl

Funkcijos darbui su sekomis get_sequence - seka parsiunčiama internetu

iš standartinių nutolusių duomenų bazių read_sequence - seka skaitima iš failo read_all_sequences – visos sekos skaitomos

iš failo new_sequence - seka sukūriama iš eilutės write_sequence - seka įrašoma į failą translate - atliekamas sekos transliavimas blast_sequence - atliekamas sekos

sugretinimas su nutolusiose DB saugomomis sekomis naudojant BLAST algoritmą

write_blast - BLAST ataskaita išsaugoma faile

Page 7: Perl kalbos biblioteka  BioPerl

Sekos sukūrimas: Sekos sukūrimas: objektinisobjektinis

$seq = Bio::Seq->new($seq = Bio::Seq->new(’-’-seq’=>’actgtggcgtcaact’, seq’=>’actgtggcgtcaact’,

’’-desc’=>’Sample Bio::Seq object’, -desc’=>’Sample Bio::Seq object’,

’’-display_id’ => ’something’, -display_id’ => ’something’,

’’-accession_number’ => ’accnum’, -accession_number’ => ’accnum’,

’’-moltype’ => ’dna’ );-moltype’ => ’dna’ );

Sukuriamas Sukuriamas Bio::SeqBio::Seq tipo objektas, tipo objektas, kurio savybei kurio savybei –seq–seq priskiriama eilutės priskiriama eilutės tipo seka.tipo seka.

7Bioinformatika (B110M100)

Page 8: Perl kalbos biblioteka  BioPerl

Sekos sukūrimas: funkcinis

$seq = new_sequence("GATTACA", "enzyme“, “X1”);

Grąžinama reikšmė: Bio::Seq tipo objektas

Argumentai: Seka Sekos pavadinimas (galima nenurodyti) Sekos numeris (galima nenurodyti)

Page 9: Perl kalbos biblioteka  BioPerl

Priėjimas prie Priėjimas prie nutolusiose duomenų nutolusiose duomenų bazėse saugomų sekųbazėse saugomų sekų

$gb = new Bio::DB::GenBank();$gb = new Bio::DB::GenBank();

$seq1 = $gb->$seq1 = $gb->get_Seq_by_idget_Seq_by_id(’MUSIGHBA1’);(’MUSIGHBA1’);

$seq2 = $gb->$seq2 = $gb->get_Seq_by_accget_Seq_by_acc(’AF303112’))(’AF303112’))

Objektinis priėjimas prie GenBank Objektinis priėjimas prie GenBank duomenų bazėsduomenų bazės

Duomenys gali būti paimami pagal Duomenys gali būti paimami pagal sekos prieigos numerį (sekos prieigos numerį (get_Seq_by_accget_Seq_by_acc) arba ) arba kodą (kodą (get_Seq_by_idget_Seq_by_id))

9Bioinformatika (B110M100)

Page 10: Perl kalbos biblioteka  BioPerl

Priėjimas prie Priėjimas prie nutolusiose DB saugomų nutolusiose DB saugomų

sekų: funkcinissekų: funkcinis$seq = $seq = get_sequenceget_sequence('swiss', ('swiss',

"ROA1_HUMAN");"ROA1_HUMAN");

Funkcinis priėjimas prie GenBank Funkcinis priėjimas prie GenBank duomenų bazės duomenų bazės

Grąžinama reikšmė: Bio::Seq tipo objektas ArgumentaiArgumentai

Duomenų bazės pavadinimas (‘Duomenų bazės pavadinimas (‘swissprot', swissprot', 'genbank', 'genpept', 'embl', 'refseq''genbank', 'genpept', 'embl', 'refseq') )

Sekos pavadinimasSekos pavadinimas

10Bioinformatika (B110M100)

Page 11: Perl kalbos biblioteka  BioPerl

Duomenų bazių ir failų Duomenų bazių ir failų įrašų formatų įrašų formatų

transformavimastransformavimasuse Bio::SeqIO;use Bio::SeqIO;

$in = Bio::SeqIO->new(’-file’ => "infile", $in = Bio::SeqIO->new(’-file’ => "infile", ’-format’ => ’-format’ => ’Fasta’Fasta’);’);

$out = Bio::SeqIO->new(’-file’ => ">outfile", $out = Bio::SeqIO->new(’-file’ => ">outfile", ’-format’ => ’-format’ => ’EMBL’EMBL’);’);

while ( my $seq = $in->next_seq() ) { $out-while ( my $seq = $in->next_seq() ) { $out->write_seq($seq); }>write_seq($seq); }

Objektinis sekos saugomos FASTA formatu Objektinis sekos saugomos FASTA formatu transformavimas į EMBL formatą transformavimas į EMBL formatą

Formatui nurodyti naudojama Formatui nurodyti naudojama Bio::SeqIOBio::SeqIO objekto objekto savybė savybė formatformat

Galimos formato reikšmės: ‘Fasta’, EMBL, ‘Genbank’Galimos formato reikšmės: ‘Fasta’, EMBL, ‘Genbank’

11Bioinformatika (B110M100)

Page 12: Perl kalbos biblioteka  BioPerl

DB ir failų įrašų formatų DB ir failų įrašų formatų transformavimas: transformavimas:

funkcinisfunkciniswrite_sequencewrite_sequence(">new_file.gb", (">new_file.gb",

'genbank', $seq)'genbank', $seq);;

Įrašo seką nurodytu formatu į failąĮrašo seką nurodytu formatu į failą Argumentai:Argumentai:

Failo pavadinimasFailo pavadinimas Formatas (‘Fasta’, EMBL, ‘Genbank’)Formatas (‘Fasta’, EMBL, ‘Genbank’) Bio:SeqBio:Seq tipo sekos objektas tipo sekos objektas

12Bioinformatika (B110M100)

Page 13: Perl kalbos biblioteka  BioPerl

Sekų apdorojimasSekų apdorojimas

Nukleotidų sekos transliavimas:Nukleotidų sekos transliavimas: Objektiškai: naudojamas Objektiškai: naudojamas Bio::SeqBio::Seq objekto objekto

metodas metodas translatetranslate()()$my_seq_object = new Bio::Seq();$my_seq_object = new Bio::Seq();

$translation1 = new Bio::PreSeq();$translation1 = new Bio::PreSeq();

$translation1 = $my_seq_object->$translation1 = $my_seq_object->translate;translate; Funkciškai: naudojama funkcija translateFunkciškai: naudojama funkcija translate

$seq2 = $seq2 = translatetranslate($seq2);($seq2); Argumentas: sekos tipo objektasArgumentas: sekos tipo objektas Grąžinama: skos tipo objektasGrąžinama: skos tipo objektas

13Bioinformatika (B110M100)

Page 14: Perl kalbos biblioteka  BioPerl

1 pavyzdys: darbas su funkcijomis

use Bio::Perl;$seq_object = get_sequence('swiss', "ROA1_HUMAN");print "Sekos pavadinimas: ", $seq_object->display_id, "\

n";print "Sekos numeris: ", $seq_object->accession_number,

"\n";print "Seka: ", $seq_object->seq(), "\n";write_sequence(">roa1.fasta", 'fasta', $seq_object);$nseq = read_sequence("roa1.fasta");$seq2 =

new_sequence("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA", "MANO_SEKA", "AL12232");

print "Sekos pavadinimas: ", $seq2>display_id, "\n";print "Sekos numeris: ", $seq2->accession_number, "\n";print "Seka: ", $seq2->seq(), "\n";$seq3 = translate($seq2);print "Amino rugsciu seka: ", $seq3->seq(), "\n";

Page 15: Perl kalbos biblioteka  BioPerl

2 pavyzdys: darbas su objektais

use Bio::Perl;$gb = new Bio::DB::GenBank; $seqio = $gb->get_Stream_by_id(["J00522", "AF303112",

"2981014"]);print "Sekos: \n";while (my $seq = $seqio->next_seq) { print "Sekos numeris: ", $seq->accession_number, "\n"; print "Sekos ilgis: ", $seq->length, "\n"; print "Seka:", $seq->seq(), "\n"; }$seqio = $gb->get_Stream_by_id(["J00522", "AF303112",

"2981014"]);my $seq_out = Bio::SeqIO->new('-file' => ">gb_sekos.fa", '-

format' => 'Fasta');while (my $seq = $seqio->next_seq()) { $seq_out->write_seq($seq); }

Page 16: Perl kalbos biblioteka  BioPerl

Sekos statistinė Sekos statistinė informacijainformacija

use SeqStats;use SeqStats;

$seq_stats = Bio::Tools::SeqStats-$seq_stats = Bio::Tools::SeqStats->new($seqobj);>new($seqobj);

$weight = $seq_stats->$weight = $seq_stats->get_mol_wtget_mol_wt();();

# sekos molekulinis svoris# sekos molekulinis svoris

$codon_ref = $seq_stats->$codon_ref = $seq_stats->count_codonscount_codons();();

# kodonu skaicius sekoje# kodonu skaicius sekoje

Naudojami Bio::Tools::SeqStats objekto Naudojami Bio::Tools::SeqStats objekto metodai.metodai.

16Bioinformatika (B110M100)

Page 17: Perl kalbos biblioteka  BioPerl

3 pavyzdysuse Bio::Perl;use Bio::Tools::SeqStats;$seqobj = get_sequence('genbank',"AF303112");$seq_stats = Bio::Tools::SeqStats->new($seqobj);$weight = $seq_stats->get_mol_wt();print "Mol svoris:", $$weight[0], "-", $$weight[1],"\n";$monomer = $seq_stats->count_monomers();print "Nukleotidu skaicius: \n";foreach $base (sort keys %$monomer) {

print $base, "= ", %$monomer->{$base},"\n";}

$codon = $seq_stats->count_codons(); print "Kodonu skaicius: \n";foreach $base (sort keys %$codon) {

print $base, "= ", %$codon->{$base},"\n";}

Page 18: Perl kalbos biblioteka  BioPerl

Sekos sugretinimas su Sekos sugretinimas su nutolusia duomenų baze nutolusia duomenų baze

naudojant BLASTnaudojant BLAST$input = Bio::Seq->new(’-id’=>"test query", $input = Bio::Seq->new(’-id’=>"test query",

’-seq’=>"ACTAAGTGGGGG"); ’-seq’=>"ACTAAGTGGGGG");

$blast_report = $factory->blastall($input);$blast_report = $factory->blastall($input);

Gražinamas Gražinamas blast_reportblast_report objektas yra objektas yra BPlite, BPpsilite, BPbl2seq BPlite, BPpsilite, BPbl2seq arbaarba Blast Blast tipo priklausomai nuo paieškos tipo.tipo priklausomai nuo paieškos tipo.

18Bioinformatika (B110M100)

Page 19: Perl kalbos biblioteka  BioPerl

Sekos sugretinimas su Sekos sugretinimas su nutolusia DB naudojant nutolusia DB naudojant

BLAST: funkcinisBLAST: funkcinis$blast_result = $blast_result = blast_sequenceblast_sequence($seq)($seq)

Argumentas: sekos tipo objektas arba seka Argumentas: sekos tipo objektas arba seka (eilutė)(eilutė)

Grąžinama reikšmė: BLAST tipo objektasGrąžinama reikšmė: BLAST tipo objektas

BLAST ataskaitos įrašymas:BLAST ataskaitos įrašymas:

write_blastwrite_blast($filename,$blast_result);($filename,$blast_result); Argumentai:Argumentai:

Failo vardasFailo vardas BLAST objekto vardasBLAST objekto vardas

19Bioinformatika (B110M100)

Page 20: Perl kalbos biblioteka  BioPerl

ŠaltiniaiŠaltiniai James TisdallJames Tisdall. . Beginning Perl for Beginning Perl for

Bioinformatics, O'Reilly (2001).Bioinformatics, O'Reilly (2001). Arthur W. ChouArthur W. Chou. Programming and Perl for . Programming and Perl for

Bioinformatics. Bioinformatics. http://cs.clarku.edu/~achou/binf101/index.htm

Craig A. StrubleCraig A. Struble. . Perl and BioPerlPerl and BioPerl. . http://www.mscs.mu.edu/~cstruble/class/mscs230/fall2002/notes/PerlAndBioPerl.ppt

Will Hsiao. AWill Hsiao. An Introduction to Perl for n Introduction to Perl for bioinformaticsbioinformatics. . http://www.bioinformatics.ca/workshop_pages/bioinformatics2004_vancouver/talks/8.1_Lecture_Hsiao_2004_web.ppt

20Bioinformatika (B110M100)