BioJava:CookbookPortuguese:Sequence
From BioJava
Contents |
Como eu crio uma Sequence de uma String ou crio de volta uma String de um Objeto Sequence?
Há muito tempo que se utiliza uma sequencia representando-a como uma String como por exemplo "atgccgtggcatcgaggcatatagc". Este é um método bastante conveniente para vizualizar de forma simples a representação de um polímero biológico complexo. O BioJava utiliza SymbolLists e Sequences para representar este polímeros biológicos como Objetos. Um objeto do tipo Sequence' estende SymbolList e provê métodos extras para armazenar coisas, como por exemplo, o nome da sequencia ou qualquer critério.
Dentro da Sequence e SymbolList o polímero não é armazenado como uma String. O BioJava diferencia os resíduos do polímero como objetos do tipo Symbol que vêm de Alphabets diferentes. Deste modo é fácil dizer se uma sequencia pertence a DNA ou RNA ou qualquer outra coisa, em outras palavras o símbolo 'A' do DNA não é igual ao símbolo 'A' do RNA. A parte fundamental está na necessidade de existir um metodo em que um programador possa converter uma String facilmente legível em um Objeto do Biojava, bem como permitir que inverso também ocorra. Desta forma, o BioJava possui Tokenizers que podem ler uma String de um texto e convertê-laem um objeto Sequence do BioJava ou um objeto SymbolList. No caso de DNA, RNA e Proteina você pode fazer isto com uma única chamada de método. A chamada é feita para um método estático das classes DNATools, RNATools ou ProteinTools.
String para SymbolList
import org.biojava.bio.seq.*; import org.biojava.bio.symbol.*; public class StringToSymbolList { public static void main(String[] args) { try { //cria um DNA SymbolList a partir de uma String SymbolList dna = DNATools.createDNA("atcggtcggctta"); //cria um RNA SymbolList a partir de uma String SymbolList rna = RNATools.createRNA("auugccuacauaggc"); //cria uma Protein SymbolList a partir de uma String SymbolList aa = ProteinTools.createProtein("AGFAVENDSA"); } catch (IllegalSymbolException ex) { //isto irá acontecer se utilizar um caracter não aceito pela IUB. ex.printStackTrace(); } } }
String para Sequence
import org.biojava.bio.seq.*; import org.biojava.bio.symbol.*; public class StringToSequence { public static void main(String[] args) { try { //cria uma sequencia de DNA com o nome dna_1 Sequence dna = DNATools.createDNASequence("atgctg", "dna_1"); //cria uma sequencia de RNA sequence com o nome rna_1 Sequence rna = RNATools.createRNASequence("augcug", "rna_1"); //cria uma sequencia de Protein com o nome prot_1 Sequence prot = ProteinTools.createProteinSequence("AFHS", "prot_1"); } catch (IllegalSymbolException ex) { //uma exceção é lançada se voce utilizar um simbolo não IUB ex.printStackTrace(); } } }
SymbolList para String
Você pode chamar o metodo seqString() em um SymbolList ou uma Sequence para adquiri-la em forma de uma String.
import org.biojava.bio.symbol.*; public class SymbolListToString { public static void main(String[] args) { SymbolList sl = null; //insira um codigo aqui para instanciar sl //converte sl numa String String s = sl.seqString(); } }

