Você está na página 1de 21

BioJava

Anlise e breve comparao com outras Bio* frameworks

Rui Marques Bioinformtica - MI R!I "acul#a#e #e $i%ncias #a &niversi#a#e #o 'orto up()()(*(+(,alunos-#cc-fc-up-pt

BioJava

$ria#o em ./// por Thomas Down e Matthew Pocock 01ellcome 2rust !an3er Institute 4 $ambri#3e &niversit567 uma Application Programming Interface 0A'I6 para simplificar o #esenvolvimento #e software #e bioinformtica usan#o JavaObjectivos: "acilitar a reutilizao #e c8#i3o9 Implementar uma base gen rica para pro3ramas #e bioinformticaImplementar algoritmos chave na bioinformtica-

"a: parte #e uma s;rie #e Bio* toolkits<

Bio'erl9 Bio'5t=on e o BioRub5-

!uncionali"a"es

Alfabetos #e nucleot>#eos e amino-ci#os

Manipulao #e sequ%ncias I4? e parsin3 #e fic=eiros #e sequ%ncias @istribuiAes #e probabili#a#e sobre 3rupos #e sequ%ncias 'ro3ramao #inBmica Al3oritmos 3en;ticos !upport Cector Mac=ine D classificao e re3resso !eriali:ao para bases #e #a#os!uporte para interfaces 3rficos 0E&Is6

BioJava #P$

As sequ%ncias so representa#as como listas "e objectos9 no como strings!trin3s t%m vrias "esvantagens<

%ali"ao: ; poss>vel passar uma sequ%ncia #e RFA a uma funo que #everia receber como parBmetro uma sequ%ncia #e @FA#mbigui"a"e: numa sequ%ncia #e @FA a letra G2G si3nifica timina e numa sequ%ncia proteica si3nifica treoninaPro&rie"a"es: no ; poss>vel associar facilmente proprie#a#es e anotaAes a uma letra #e uma strin3@FA A HI RFA A HI 'rotein A &san#o strin3s< JAK-equals0JAK6L

'(mbols

Fo BioJava9 um nucleot>#eo #e @FA correspon#e a um obMecto 0!5mbol6 As instBncias #e um !5mbol t%m<

&m nome 0eN< tiamina6&ma anotao9 opcional 0eN< informao sobre as proprie#a#es qu>micas6&m m;to#o getMatches9 s8 relevante para o caso #e s>mbolos amb>3uos-

'rotein2ools-a06 HI @FA2ools-a06L

M to"os '(mbol

'acka3e< org)biojava)bio)s(mbol !trin3 get*ame06 - nome #o !5mbol 0eN- 2iemina6 Annotation get#nnotation06 - anotao9 opcional 0eN< informao sobre as proprie#a#es qu>micas6 Alp=abet getMatches06 - usa#o no caso #e s>mbolos ambi3uos

#l&habets

$onMunto #e objectos "o ti&o '(mbol que po#e ser encontra#o em #etermina#a sequ%ncia Nistem al3uns al+abetos standard. 7 poss>vel criar novos al+abetos) 'o#e ser in+inito< Inte3erAlp=abet9 @oubleAlp=abet?utros so +initos< @FA9 RFA9 'R?2 IF---

M to"os #l&habet

'acka3e< org)biojava)bio)s(mbol boolean contains0!5mbol s6 D testar se o alfabeto contem o !5mbol GsGOist get#l&habets06 - retorna uma lista or#ena#a #e to#os os alfabetos que compPem um alfabeto composto!5mbol get,a&'(mbol06 - retorna o !5mbol que representa o G3apG neste alfabeto!trin3 get*ame06 - retorna o nome #o alfabetovoi# vali"ate0!5mbol s6 D lana uma eNceo se o !5mbol GsG no pertence a este alfabeto---

M to"os !inite#l&habet

'acka3e< org)biojava)bio)s(mbol Al;m #os m;to#os anteriores< voi# a""'(mbol0!5mbol s6 D acrescenta um !5mbol a este alfabetoIterator iterator06 - cria um itera#or sobre os simbolos #este alfabetovoi# remove'(mbol0!5mbol s6 D remove um !5mbol #este alfabetoint size06 - o nQmero #e simbolos #o alfabeto-

// get all the DNA symbols FiniteAlphabet dna = DNATools.getDNA(); Iterator dnaI = dna.iterator(); while (dnaI.hasNext()) { Symbol dnaSymbol = (Symbol) dnaI.next(); System.out.println(dnaSymbol.getName()); }

Mo"elar 'e-u.ncias

? BioJava representa sequ%ncias como sen#o listas "e '(mbol/s 0!5mbolOist6$a#a !5mbolOist est associa"a a um al+abeto e s8 po#e conter simbolos #esse alfabeto!5mbolOists po#em ser vistas como strin3s que so compostas por objectos '(mbol9 em ve: #e caracteres-

Des&er"0cio "e mem1ria2

Fo ; na reali#a#e uma lista #e obMectos7 uma lista #e refer%ncias para obMectos !5mbol

Alp=abetMana3er J@FAK

J'roteinK A $ E 2

AA$E2EEE22$$AA$2

M to"os '(mbol3ist

get#l&habet06 - o alfabeto a que esta lista pertenceiterator06 - um itera#or sobre to#os os s>mbolos #esta listalength06 - o nQmero #e s>mbolos #a listasub3ist0int start9 int en#6 - retorna uma nova !5mbolOist conten#o os simbolos entre GstartG e Gen#G9 inclusiv;s(mbol#t0int in#eN6 D retorna o s>mbolo na posio Gin#eNG9 contan#o a partir #e .---

//create a DNA SymbolList from a String SymbolList dna = DNATools.createDNA("atcggtcggctta"); //convert dna into a String String s = dna.seqString();

'e-uence

&ma !equence ; uma !5mbolOist com mais informao9 esten#e-a'ara al;m #os m;to#os que =er#a9 tem os se3uintes<

get*ame06 - o nome #a sequ%nciaget45*06 - uma &RO ou &RI que i#entifica a sequ%ncia representa#a por este obMecto-

//create a DNA sequence with the name dna_1 Sequence dna = DNATools.createDNASequence("atgctg", "dna_1");

'e-$OTools

"erramentas para ler e escrever fic=eiros9 que cont%m sequ%ncias9 formata#os nos formatos mais comuns #e bioinformtica!eqI?2ools po#e ler e escrever nos formatos<

"asta MBO EenBank !wiss'rot Een'ept M!" "asta Ali3nments ---

M to"os 'e-$OTools

rea"6mbl 0Mava-io-Buffere#Rea#er br6 D iterar sobre sequ%ncias numa stream com o formato MBOrea"!astaD*# 0Mava-io-Buffere#Rea#er br6 - iterar sobre sequ%ncias @FA numa stream com o formato "A!2Area"!astaProtein 0Mava-io-Buffere#Rea#er br6 - iterar sobre sequ%ncias proteicas numa stream com o formato "A!2Area",enbank 0Mava-io-Buffere#Rea#er br6 - iterar sobre sequ%ncias @FA numa stream com o formato EenBankrea"'wiss&rot 0Mava-io-Buffere#Rea#er br6 - iterar sobre sequ%ncias @FA numa stream com o formato !wissprotwrite!asta 0Mava-io-?utput!tream os9 !equence seq6 D escrever a sequ%ncia GseqG no output stream GosG---

D*#Tools

"erramentas para li#ar com sequ%ncias #e @FANemplos #e al3uns m;to#os<

a06< Retorna um Atomic!5mbol esttico para GaGcreateD*#0!trin3 #na6< Retorna uma nova !5mbolOist @FA usan#o a strin3 G#naGgetD*#06< Retorna o alfabeto #o @FA-

5*#Tools

$onMunto #e ferramentas semel=antes ao @FA2ools mas para RFANemplos #e al3uns m;to#os<

transcribe0!5mbolOist list6< 2ranscreve @FA para RFAtranslate0!5mbolOist list6< 2ra#u: RFA para prote>na-

ProteinTools

$onMunto #e ferramentas para li#ar com prote>nasNemplos #e al3uns m;to#os<

createProtein0!trin3 prot6< Retorna uma nova !5mbolOista 'rotein usan#o a strin3 GprotGgetT#l&habet06< retorna o alfabeto #a prote>na inclu>#o os s>mbolos #e terminao #a tra#uo-

Distributions e 7ounts

Distribui8es so usa#as9 por eN-9 em pro3ramao #inBmica9 po#em ser treina#as ou po#em se #efinir pesos para os s>mbolosDistributions associam !5mbols a frequ%ncias7ounts associam Atomic!5mbols a conta3ensAl3uns m;to#os #e @istribution<

Distribution get*ullMo"el06 - retorna o mo#elo nulo que esta #istribuio recon=ece"ouble get9eight0!5mbol s6 D retorna a probabili#a#e #a emisso #o s>mbolo GsG nesta #istribuio-

7onclus8es e Trabalhos !uturos


7onclus8es:

BioJava ; uma framework ma#ura que po#e ser muito Qtil!er basea#a em Java ; um bom compromisso entre a performance e a le3ibili#a#e e robuste: #o c8#i3oA #ocumentao po#e mel=orar 0principalmente a #a verso )6Reescrever a framework na verso ) tornou-a mais #if>cil #e apren#er e po#e afastar pro3rama#ores mais ineNperientes-

Trabalho +uturo:

stu#o mais #etal=a#o #o BioJava ) e #as outras Bio* frameworks"a:er benchmarks #as versAes mais recentes #as Bio* frameworks

Perguntas2

Você também pode gostar