Cara, esse título não está nada claro.
Você usou algum tradutor automático? Se esse for o caso poste a forma original, melhor do que usar essa bagaça.
Anyway, poste dúvidas mais pontuais, o que você fez foi postar o enunciado e perguntar por algorítimos, nisso ninguém poderá te ajudar a menos que façam seu trabalho todo (o que não vai ser o caso). Comece a implementar ou faça perguntas mais específicas, pontuais, tenha foco.
Carinha, outra coisa, se esse banco de sequências é muito grande, talvez seja mais interessante que ele fosse armazenado em um banco de dados relacional, como o MySQL. Daí é possível fazer buscas de texto nessa base.
Quando eu trabalhava com bioinformatica eu usava bastante Perl.
Primeiro, varios aquivos de sequencias no formato FASTA no seu diretorio, vc vai ter pegar uma lista dos arquivos, com Perl vc pode fazer algo do tipo:
Voce tera que ignorar a primeira linha do arquivo, ai eh soh fazer uma regular expression para pegar o valor que vc quiser, vc tem que verificar quantos aminoacidos em sequencia vc vai considerar um match.
Mais ou menos assim:
#!/usr/bin/perl
@list_of_files = `ls *.fasta`;
foreach $file (@list_of_files)
{
open(INPUT, "<", $filename) || die "Can't open file!! buhhhhh!!!! "
@file_content = <INPUT>;
for($i = 1; $i < $#file_content; $i++) {
$line = $file_content[i];
// faz regular expression, se achar, pega o resultado escreve para um arquivo.
}
close(INPUT);
}
PS: Perdoe se estiver alguma coisa errada, faz anos que eu nao programo em Perl e eu nao testei o codigo!
Pretende-se usar linguagem Java para fazer o programa. O FASTA é um tipo de formato usado em bioinformática, mas não passa de um ficheiro txt normal.
A minha dúvida é como se implementa um método que leia um ficheiro de texto e que e que depois de correr o programa guarde o resultado num outro ficheiro txt.
Pretende-se usar linguagem Java para fazer o programa. O FASTA é um tipo de formato usado em bioinformática, mas não passa de um ficheiro txt normal.
A minha dúvida é como se implementa um método que leia um ficheiro de texto e que e que depois de correr o programa guarde o resultado num outro ficheiro txt.[/quote]
Dá uma olhada no Biojava: http://biojava.org/wiki/Main_Page, com ele é fácil ler e escrever arquivos FASTA, ele também faz operações de alinhamento.
Porém, acredito que a busca que você quer é realizada por um programa chamado BLAST (http://www.ebi.ac.uk/Tools/sss/ncbiblast/nucleotide.html ou http://blast.ncbi.nlm.nih.gov/Blast.cgi). Se você quiser fazer essa busca em um dos bancos de dados do consórcio INSDC (NCBI, EMBL e DDBJ) você possui Webservices (veja nos sites deles, um dos mais fáceis de usar é a URLAPI do NCBI, ou QBLAST como também é chamado), mas se você quer fazer a busca na sua base eu acho uma boa alternativa você usar o programa BLAST em linha de comando (http://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=BlastDocs&DOC_TYPE=Download), pois é necessário preparar a sua base (que será um arquivo FASTA com todas as sequências dessa base), então você pode chamar o BLAST a partir do Java e fazer o parse dos resultados com Biojava por exemplo, e pode acreditar o BLAST é muito rápido - mesmo em bases grandes.
Com relação a como você quer exibir para o usuário o resultado das consultas, eu acho que você deveria se inspirar nos próprios programas que já existem (o BLAST do NCBI é muito bom), pois seu usuário provavelmente já está habituado com o padrão de exibição deles.