Em formação

Saída de explosão - programa para contar o número de acertos

Saída de explosão - programa para contar o número de acertos


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Tenho que usar a versão antiga do Blast (não Blast +) para comparar as sequências de DNA e tenho que saber o número de todas as ocorrências. Eles não são fornecidos no cabeçalho e eu tenho que conhecê-los por muitas das saídas de explosão e é quase impossível contá-los (ou exportá-los para o Excel). Acho que provavelmente terei que escrever um 'Script Perl' e fiz o meu melhor, mas não estou familiarizado com programação e não está funcionando. Além disso, dei uma olhada na internet e eles estão sempre comparando com o BIO Search. Eu tenho um código, que para mim parece muito bom, mas também fiz uma comparação com o BIO Search, o que eu não preciso / quero.

use estrito; use avisos; use Bio :: SearchIO;

Informação de uso

die "Uso: $ 0    n ", if (@ARGV! = 3); my ($ infile, $ numHits, $ outfile) = @ARGV; print" Analisando o resultado BLAST… "; my $ in = Bio :: SearchIO-> new (- format => 'blast', -file => $ infile); open (OUT, "> $ outfile") ou die "Impossível abrir $ outfile: $!"; # imprimir a informação do cabeçalho para colunas delimitadas por tabulação imprimir OUT " query_name  tquery_length  taccession_number  tlength  tdescription  tE value  tbit score  tframe  tquery_start  t "; imprimir OUT" query_end  thit_start  thit_end  tpositives  tidentical  n "; # extração de informações para cada resultado recursivamente enquanto (meu $ result = $ in-> next_result) {# o nome da seqüência de consulta imprime OUT $ result-> query_name. " t"; # o comprimento da seqüência de consulta imprime OUT $ result-> query_length; # output "sem acertos found "se não houver ocorrências if ($ result-> num_hits == 0) {print OUT"  tNenhuma ocorrência encontrada  n ";} else {my $ count = 0; # processa cada ocorrência recursivamente while (my $ hit = $ result-> next_hit) {print OUT " t" if ($ count> 0); # obtém os números de acesso dos hits print OUT " t". $ hit-> access íon. " t"; # obtém os comprimentos das sequências de acertos print OUT $ hit-> length. " t"; # obter a descrição das sequências de acertos print OUT $ hit-> description. " t"; # obtém o valor E do hit print OUT $ hit-> meaning. " t"; #obter a pontuação de bits do acerto imprima OUT $ hit-> bits. " t"; meu $ hspcount = 0; # processa o HSP principal para o hit principal while (my $ hsp = $ hit-> next_hsp) {print OUT " t  t  t  t  t  t  t", if ($ hspcount> 0); # obter o quadro da seqüência de consulta imprimir OUT $ hsp-> consulta-> quadro. " t"; # obtém o início e o fim da seqüência de consulta no alinhamento print OUT $ hsp-> start ('query'). " t". $ hsp-> end ('consulta'). " t"; # obtém o início e o fim da sequência de acertos no alinhamento print OUT $ hsp-> start ('hit'). " t". $ hsp-> end ('hit'). " t"; # obtém o valor de similaridade printf OUT "% .1f", ($ hsp-> frac_conserved * 100); imprimir OUT "%  t"; # obtém o valor de identidade printf OUT "% .1f", ($ hsp-> frac_identical * 100); imprimir OUT "%  n"; $ hspcount ++; } $ count ++; # controle de fluxo para o número de acertos necessários por último if ($ count == $ numHits); } } } fechar; imprimir "FEITO !!!  n";

Que alguém me ajude, por favor. Preciso de um programa que primeiro me diga o cabeçalho e depois o número de acessos. Estou um pouco desesperado e ficaria muito feliz se alguém pudesse me ajudar. Isso seria tão bom. Saudações tina


Este script, denominado blast2table.pl, é do código que acompanha o livro Blast de Korf & Yandell (há um terceiro autor que não conheci).

#! / usr / bin / perl -w use estrito; use Getopt :: Std; use vars qw ($ opt_p $ opt_b $ opt_e $ opt_m $ opt_n); getopts ('p: b: e: m: n:'); meu $ PERCENT = $ opt_p? $ opt_p: 0; meu $ BITS = $ opt_b? $ opt_b: 0; meu $ EXPECT = $ opt_e? $ opt_e: 1e30; meu $ START = $ opt_m? $ opt_m: 0; meu $ END = $ opt_n? $ opt_n: 1e30; meu ($ Query, $ Sbjct); meu $ HSP = ""; while (<>) {if (/ ^ Query =  s + ( S +) /) {outputHSP (); $ Query = $ 1} elsif (/ ^> ( S +) /) {outputHSP (); $ Sbjct = $ 1} elsif (/ ^ Pontuação = /) {outputHSP (); meu @stat = ($ _); while (<>) {último a menos que /  S /; push @stat, $ _} my $ stats = join ("", @stat); meus ($ bits) = $ estatísticas = ~ / ( d  S +) bits /; my ($ expect) = $ stats = ~ / Expect  S * = ([ d .  +  - e] +) /; $ expect = "1 $ expect" if $ expect = ~ / ^ e /; my ($ match, $ total, $ percent) = $ stats = ~ / Identities = ( d +)  / ( d +)  (( d +)% ) /; meu $ mismatch = $ total - $ match; $ HSP = {bits => $ bits, expect => $ expect, mismatch => $ mismatch, percent => $ percent, q_begin => 0, q_end => 0, q_align => 0, q_align => 0, Kalignin => 0, s_end = > 0, s_align => ""}; } elsif (/ ^ Consulta:  s + ( d +)  s + ( S +)  s + ( d +) /) {$ HSP -> {q_begin} = $ 1 a menos que $ HSP -> {q_begin}; $ HSP -> {q_end} = $ 3; $ HSP -> {q_align}. = $ 2; } elsif (/ ^ Sbjct:  s + ( d +)  s + ( S +)  s + ( d +) /) {$ HSP -> {. $ HSP -> {s_end} = $ 3; $ HSP -> {s_align}. = $ 2; }} outputHSP (); sub outputHSP {retornar a menos que $ HSP; retorna se $ HSP -> {percent} <$ PERCENT; retorna se $ HSP -> {bits} <$ BITS; retorna se $ HSP -> {esperar}> $ EXPECT; retorna if ($ HSP -> {q_begin} <$ START ou $ HSP -> {q_end} <$ START); retorna if ($ HSP -> {q_begin}> $ END ou $ HSP -> {q_end}> $ END); foreach my $ field ('percent', 'q_align', 'mismatch', 's_align', 'q_begin', 'q_end', 'containeregin', 's_end', 'expect', 'bits') {print "$ field não definido  n "se não definido $ HSP -> {$ field}; } print join (" t", $ Query, $ Sbjct, $ HSP -> {percent}, length ($ HSP -> {q_align}), $ HSP -> {mismatch}, countGaps ($ HSP -> {q_align }) + countGaps ($ HSP -> {s_align}), $ HSP -> {q_begin}, $ HSP -> {q_end}, $ HSP -> {Pacegin}, $ HSP -> {s_end}, $ HSP-> {esperar}, $ HSP -> {bits}), " n"; $ HSP = ""; } sub countGaps {my ($ string) = @_; minha $ contagem = 0; while ($ string = ~ /  - + / g) {$ count ++} return $ count; }

Solução de problemas

ERRO: "Nenhuma semelhança significativa encontrada"

  • Sequências curtas de consulta: Alinhamentos curtos podem ter valores Esperados acima do limite padrão, que é 10 na maioria das páginas e, portanto, não são exibidos. Tente aumentar o limite esperado (em 'Parâmetros do algoritmo'). Além disso, consulte as Perguntas frequentes sobre o envio de primers ou outras sequências curtas.
  • Filtrando: Alguns dos programas BLAST mascaram regiões de baixa complexidade por padrão. Essas regiões não têm permissão para iniciar alinhamentos, portanto, se sua consulta for de baixa complexidade, o filtro pode impedir todos os acessos ao banco de dados. Nas páginas Basic BLAST, ajuste as configurações de filtro na seção 'Filtros e Mascaramento', em 'Parâmetros de algoritmo'. Para obter uma descrição dos filtros de baixa complexidade, consulte "O que é sequência de baixa complexidade?"

ERROR: Ocorreu um erro no servidor, muitos HSPs para salvar todos

  • 1.) Ative as repetições específicas da espécie, se aplicável, consulte Como filtrar as repetições intercaladas (específicas do organismo).
  • 2) Se estiver usando tblastx, tente blastx em seu lugar. O programa tblastx consome muito a CPU, pois não apenas traduz a consulta em seis quadros de leitura, mas também em todas as sequências de banco de dados. Freqüentemente, o uso de tblastx é uma medida de último recurso; uma pesquisa de blastx em um banco de dados de proteínas conhecidas pode fornecer o que você precisa.
  • 3) Pesquise um banco de dados menor, como refseq_rna. Bancos de dados maiores obviamente contêm mais sequências e, para algumas consultas, isso resulta em várias ocorrências de "segundo plano". Se você deseja um banco de dados de mRNAs conhecidos (e suas traduções), refseq_rna é uma boa escolha.
  • 4) Divida as consultas grandes em partes menores - envie cada uma delas em uma busca separada. Uma causa comum de erros no BLAST é pesquisar com uma sequência enorme, como um cromossomo completo, em um grande banco de dados como o nr. Isso é melhor realizado em porções do que em uma sequência grande e contínua.
  • 5) Limite o banco de dados por taxonomia. Comece com grandes grupos, como mamíferos, bactérias, etc. Qualquer nó taxonômico ou número de identificação fiscal que você pode encontrar no navegador de Taxonomia pode ser usado na caixa de texto 'Organismo', consulte o FAQ do BLAST, Como limitar uma pesquisa a um organismo ou grupo taxonômico. "Consulte também o navegador de Taxonomia.
  • 5) Você pode estar atingindo um grande número de registros de 'PREDIÇÃO' ou 'proteína hipotética'. Se você não quiser esses resultados, use uma Consulta Entrez como: todos [filtro] NÃO previsto [título].
  • 6) Para pesquisas megablast e blastn, tente aumentar o tamanho da palavra e / ou diminuir o limite esperado.

ERROR: Ocorreu um erro no servidor, [blastsrv4.REAL]: Erro: o limite de uso da CPU foi excedido, resultando em SIGXCPU (24).

Se você receber esse erro, terá várias opções, dependendo de seus objetivos. Consulte a FAQ do BLAST, "ERRO: Ocorreu um erro no servidor, Muitos HSPs para salvar todos".

Por que recebo a mensagem "ERROR: BLASTSetUpSearch: Incapaz de calcular os parâmetros de Karlin-Altschul, verifique a sequência da consulta"?

Por que algumas pesquisas em lote na web podem demorar mais do que o esperado.

O servidor NCBI WWW BLAST é um recurso compartilhado e seria injusto que alguns usuários o monopolizassem. Para evitar isso, o servidor dá prioridade aos usuários interativos que executam um número moderado de pesquisas. O servidor também controla quantas consultas estão na fila para cada usuário, bem como quantas pesquisas um usuário realizou recentemente e prioriza as pesquisas de acordo.

O envio de pesquisas fora do horário comercial (20h00 às 8h00 EST) pode fornecer um melhor rendimento. Os usuários com um grande número de consultas devem usar BLAST independente ou serviços em um provedor de nuvem. Veja aqui os detalhes.


Saída de explosão - programa para contar o número de acertos - Biologia

Uma ferramenta para analisar a saída de pesquisa do BLAST para sequências de RNA.

O rboAnalyzer é uma ferramenta que complementa o algoritmo BLAST na busca de uma sequência de consulta que é um RNA com estrutura secundária (que não precisa ser conhecida).

Os pares de alta pontuação (HSPs) na saída do BLAST são frequentemente incompletos (ou seja, o alinhamento no HSP não cobre toda a sequência de consulta). Esta é uma grande desvantagem ao tentar caracterizar o potencial ncRNA indicado pelo HSP.

Portanto, rboAnalyzer tenta encontrar sequências de RNA de comprimento total das HSPs incompletas da saída do BLAST e prever suas estruturas secundárias com um ou mais métodos. A pontuação de semelhança (como proxy para homologia) entre a sequência de comprimento total estimada e a sequência de consulta também é calculada. A saída do BLAST é combinada com dados computados e apresentada na forma de uma página HTML interativa.

Para conseguir isso, rboAnalyzer usa como entrada:

  • a sequência de consulta
  • a saída do BLAST
  • o banco de dados BLAST contendo sequências dentro da saída

O artigo para esta ferramenta está disponível aqui.

Você também pode experimentar o servidor da web rboanalyzer implementando análise HSP interativa com métodos de predição de estrutura secundária selecionados.

Esta ferramenta foi testada em Linux de 64 bits (Ubuntu 14, 18 e Centos 7).

A maneira mais conveniente de instalar este pipeline é usar o gerenciador de pacotes Conda.

Se você não tem Conda para Python3, instale-o. Recomendamos o miniconda3.

O pacote rboanalyzer está disponível no canal schwarz.marek. Você também precisa incluir os canais bioconda e conda-forge ao instalar o rboanalyzer.

Instalação em novo ambiente virtual

O rboAnalyzer e suas dependências estarão disponíveis apenas na sessão de shell para a qual o ambiente virtual foi ativado. Você precisará ativar o ambiente virtual para cada sessão.

Os comandos a seguir irão instalar o rboAnalyzer em um novo ambiente conda chamado "rbo". Se você não deseja instalar o rboAnalyzer no novo ambiente, omita os comandos 1) e 2).

Pré-requisitos

python & gt = 3.4, & lt3.8 link Verifique se você tem o pip3 compatível mais recente. Se você tentar usar o EOL python, consulte o script setup.py em versões pip3 e setuptools compatíveis e use-os.

link ncbi-blast + & gt = 2.8.1, & lt2.10 (o pipeline pode usar o blast da versão 2.6.0, no entanto, esta versão não é compatível com o blast dbv5)

  • viennarna & gt = 2.3.5, & lt3 (com refold.pl no PATH) link Não se esqueça de adicionar refold.pl ao seu PATH. O script refold.pl está localizado em ViennaRNA- [version] / src / Utils /.
  • centroid_homfold & gt = 0.0.15, & lt0.1 link
  • RNAstructure & gt = 6.0, & lt7 (TurboFold - Interfaces de texto (linha de comando)) Não se esqueça de definir o link da variável de ambiente DATAPATH.

Opcional (alguns métodos de previsão não estão disponíveis sem):

Baixe este repositório (ou versão), descompacte-o se necessário. Vá para o diretório com o código-fonte do rboAnalyzer e execute

Observe que a opção --user coloca os executáveis ​​em $ HOME / .local / bin e pode ser necessário adicioná-los ao PATH.

O executável rboAnalyzer deve ser criado. Para testá-lo, reinicie o terminal (feche e abra um novo) e execute

que deve retornar o número da versão.

Para funcionar corretamente, o rboAnalyzer precisa de uma cópia do banco de dados Rfam.

    Execute rboAnalyzer com o sinalizador --download_rfam.

Isso baixará os modelos de covariância Rfam para o diretório padrão ([INSTALL_LOCATION] / rna_blast_analyze / 3rd_party_source / rfam).

  1. Alternativamente, baixe o arquivo Rfam.cm.gz do Rfam CURRENT, descompacte-o e adicione o caminho do diretório que contém o arquivo Rfam.cm ao seu arquivo config.txt. Note que rodar rboAnalyzer com --download_rfam irá sobrescrever este arquivo instalado manualmente.

Instalando UNAFold (opcional)

Os métodos de previsão que usam estruturas subótimas precisam do software UNAFold para funcionar. Ele está disponível aqui http://www.unafold.org. Siga as instruções de instalação. O pipeline usa o programa hybrid-ss-min. Adicione-o ao PATH ou adicione o caminho ao diretório que contém o executável para o arquivo config.txt.

Autocomplete Shell (opcional)

O rboAnalyzer é equipado com conclusão de argumento para o shell bash. Para ativar este recurso, o pacote argcomplete precisa ser instalado (versão & gt1.6, & lt2) e o script deve ser registrado em seu shell. Ele é instalado por padrão no pacote conda. Para instalá-lo manualmente, execute

Observe que a opção --user coloca os executáveis ​​em $ HOME / .local / bin e pode ser necessário adicioná-los ao PATH.

Para registrar o script em seu shell (mais informações aqui).

O rboAnalyzer precisa obter regiões 5 'e 3' relevantes da sequência de assunto de HSPs, para isso usamos o banco de dados BLAST usado na pesquisa do BLAST. Para cada análise, você precisa fornecer o banco de dados do BLAST de nucleotídeos contendo sequências inteiras (genomas completos, etc.) para os ids de sequência presentes na saída do BLAST.

O procedimento sobre como obter os bancos de dados BLAST para os exemplos é descrito na seção Exemplo. Para obter informações gerais, consulte a seção de bancos de dados do BLAST.

Os exemplos são fornecidos no diretório de exemplos.

Para experimentar exemplos, você precisará:

Instale o rboAnalyzer e baixe o Rfam. Como?.

Obtenha uma cópia do diretório de exemplo. Se você clonou ou baixou o programa, você já deve tê-lo. Caso contrário, está aqui.

Analisando subconjunto de HITs de blast NCBI para RNA 6S.

Agora você precisa obter uma cópia do banco de dados do BLAST com todos os acessos que estão na saída do BLAST. Como acima, você pode obter o banco de dados NCBI nt ou baixar apenas as sequências (genomas) da saída do BLAST. Aqui, descrevemos a variante com o download apenas das sequências necessárias. Isso é feito usando genomes_from_blast, chamando:

O parâmetro -e YOUR_EMAIL_ADDRESS deve ser seu endereço de e-mail válido no qual a equipe do NCBI poderia contatá-lo se necessário. Não é registrado pela ferramenta.

O parâmetro -in é o caminho para o arquivo (neste exemplo 6S_super_short.xml) contendo a saída do BLAST.

O parâmetro -o é o caminho do arquivo de saída. Neste comando, o banco de dados BLAST com o nome genomes.bdb foi criado para você se tudo foi bem-sucedido. Você precisará dele na próxima etapa.

O arquivo intermediário genomes.bdb.fasta também foi criado e contém todas as sequências adicionadas ao banco de dados BLAST. Quando outra saída do BLAST é analisada (e sequências são necessárias), apenas aquelas sequências não presentes no arquivo FASTA intermediário são baixadas (assumindo que o mesmo nome BLAST db seja usado).

Agora você pode executar o pipeline:

A saída é um único arquivo html. Você pode percorrer os HSPs analisados, mostrar os loci genômicos do HSP e selecionar dados para exportar.

Analisando possíveis homólogos remotos para RNA de MS1. Isso leva cerca de 10 minutos em um pc médio.

O BLAST foi executado com banco de dados onde as famílias Streptomycetaceae e Mycobacteriaceae foram excluídas. Como o RNA MS1 é conhecido principalmente pela família Mycobacteriaceae, podemos esperar HITs incompletos e muitos falsos positivos.

Você também pode notar que a saída do BLAST estava no formato de texto, o rboAnalyzer aceita a saída do BLAST em texto simples e xml.

O banco de dados BLAST é obtido com comando semelhante ao do exemplo anterior. Como o arquivo de banco de dados do BLAST de saída é o mesmo de antes, o genomes_from_blast verificará o arquivo fasta intermediário (genomes.bdb.fasta) e fará o download apenas das sequências que não estão presentes.

Podemos esperar que a saída do BLAST contenha muitos HSPs positivos falsos, portanto, selecionamos métodos de predição desses, que não dependem de informações na própria saída do BLAST. Estes são:

  • Rnafold
  • rfam-Rc
  • rfam-centroid
  • Turbo-rápido com o parâmetro "max_seqs_in_prediction" definido como 2 (sinalizador --turbo_fast_preset)
  • centróide rápido com o parâmetro "max_seqs_in_prediction" definido como 1 (sinalizador --centroid_fast_preset)
  • rfam-sub (se UnaFold estiver instalado.)

A saída do BLAST txt da WEB não é reconhecida
Motivo: o NCBI alterou a saída txt do WEB BLAST quando mudou para um novo design. Nosso analisador txt é compatível com a saída txt da linha de comando (-outfmt 0), que também era a saída txt do WEB BLAST.
Solução: Baixe a saída xml ou mude para a "página de resultados tradicional" e baixe o txt lá.

Um ou mais registros não encontrados
Motivo: o blastdbcmd não conseguiu localizar as sequências com os respectivos ids no banco de dados fornecido. Isso se deve à inconsistência entre os acessos de sequência e o banco de dados BLAST. A inconsistência pode surgir de:

  1. sequência não está no banco de dados
    Solução: Forneça o banco de dados de explosão correto (atualize o atual ou crie um novo com genomes_from_blast).
  2. capturar regexp não captura o número de acesso
    Solução: Fornece captura de expressão regular (sintaxe python 3) para capturar o id de sequência do cabeçalho fasta (ele deve corresponder ao id do banco de dados BLAST usado)
  3. o banco de dados BLAST foi criado sem o sinalizador -parse_seqids
    Solução: Crie um novo banco de dados a partir das sequências usadas para criar um novo, desta vez com o sinalizador -parse_seqids.

Outra opção é chamar o pipeline com o sinalizador --skip_missing. Isso irá ignorar as sequências que faltam.

Observe que nenhum HSP para a sequência ausente será incluído na saída do pipeline e alguns métodos de predição podem ser influenciados pela sequência ausente.

O genomes_from_blast falhou
O script genomes_from_blast foi construído para lidar com downloads com falha, mas por padrão ele tenta apenas 10 vezes. Se você estiver em uma conexão instável, poderá obter melhores resultados configurando --retry para um número maior. Verifique também se os serviços NCBI entrez estão funcionando.

Se você usou o BLAST usando o serviço da web NCBI em um banco de dados pré-formatado, pode fazer download de todo o banco de dados ou usar um script genomes_from_blast para fazer download apenas das sequências em sua saída de explosão.

baixando banco de dados inteiro (

50 GB)
Os bancos de dados mais recentes são fornecidos aqui NCBI LATEST. Observe que os bancos de dados incluídos nos releases do banco de dados BLAST não são os mais recentes. Este snippet de código pode ser usado para obter e atualizar o banco de dados:

baixando apenas sequências relevantes
Se você não deseja baixar o blastdb inteiro, você pode usar o script preparado genomes_from_blast, que baixa apenas as sequências necessárias (aquelas na saída do BLAST) e construir o blastdb a partir delas. Este comando fará o download de todos os genomas necessários e criará o banco de dados BLAST para você.

Se o banco de dados customizado foi usado para a pesquisa do BLAST, você precisa garantir várias coisas para o rboAnalyzer localizar as sequências corretamente.

  1. o banco de dados personalizado é nucleotídeo e foi criado com -parse_seqids (isso torna as sequências recuperáveis ​​por seus ids).
  2. fornecer uma expressão regular capturando os ids de sequência. Por padrão, o rboAnalyzer captura a Accession.Version conforme documentado aqui.

A descrição da lógica do pipeline está disponível na publicação.

Os detalhes também podem ser encontrados aqui.

Este leia-me e a documentação nos documentos são válidos para a última versão 0.1.4 e dev 0.1.5a1.

  • ViennaRNA: Lorenz, Ronny e Bernhart, Stephan H. e Höner zu Siederdissen, Christian e Tafer, Hakim e Flamm, Christoph e Stadler, Peter F. e Hofacker, Ivo L. ViennaRNA Package 2.0. https://doi.org/10.1186/1748-7188-6-26. Incluímos aqui uma cópia do script refold.pl com licença Viennarna para sua conveniência. local na rede Internet
  • Locarna: Sebastian Will, Tejal Joshi, Ivo L. Hofacker, Peter F. Stadler e Rolf Backofen. LocARNA-P: Predição precisa do limite e detecção aprimorada de RNAs estruturais. RNA, 18 no. 5, pp. 900-14, 2012. https://doi.org/10.1261/rna.029041.111, website
  • NCBI BLAST: Camacho C., Coulouris G., Avagyan V., Ma N., Papadopoulos J., Bealer K., & amp Madden T.L. (2008) "BLAST +: arquitetura e aplicações." BMC Bioinformatics 10: 421. https://doi.org/10.1186/1471-2105-10-421, site
  • RSEARCH: Encontrando homólogos de sequências de RNA estruturadas simples. R. J. Klein, S. R. Eddy. BMC Bioinformatics, 4:44, 2003. https://doi.org/10.1186/1471-2105-4-44, website
  • Infernal: Infernal 1.1: Pesquisas de homologia de RNA 100 vezes mais rápidas. E. P. Nawrocki, S. R. Eddy. Bioinformatics, 29: 2933-2935, 2013. https://doi.org/10.1093/bioinformatics/btt509, website
  • Clustal omega: Sievers F, Wilm A, Dineen DG, Gibson TJ, Karplus K, Li W, Lopez R, McWilliam H, Remmert M, Söding J, Thompson JD, Higgins DG (2011). Geração rápida e escalonável de alinhamentos de múltiplas sequências de proteínas de alta qualidade usando Clustal Omega. Molecular Systems Biology 7: 539. https://doi.org/10.1038/msb.2011.75, website
  • MUSCLE: Edgar, R.C. (2004) MUSCLE: alinhamento de sequência múltipla com alta precisão e alto rendimento Nucleic Acids Res. 32 (5): 1792-1797. https://doi.org/10.1093/nar/gkh340, website
  • Centróide homfold: Michiaki Hamada, Koichiro Yamada, Kengo Sato, Martin C. Frith, Kiyoshi Asai CentroidHomfold-LAST: previsão precisa da estrutura secundária de RNA usando sequências homólogas coletadas automaticamente, Nucleic Acids Research, Volume 39, Issue suppl_2, 1 July 2011, Pages W100 – W106. https://doi.org/10.1093/nar/gkr290, github
  • TurboFold (RNAstructure): Tan, Z., Fu, Y., Sharma, G., & amp Mathews, D. H. (2017). TurboFold II: Alinhamento estrutural de RNA e predição de estrutura secundária informada por vários homólogos. Nucleic Acids Research. 45: 11570-11581. https://doi.org/10.1093/nar/gkx815, website
  • UNAFold: Markham N.R., Zuker M. (2008) UNAFold. Em: Keith J.M. (eds) Bioinformatics. Methods in Molecular Biology ™, vol 453. Humana Press. https://doi.org/10.1007/978-1-60327-429-6_1, site
  • Biopython: Cock, P.J.A. et al. Biopython: ferramentas Python disponíveis gratuitamente para biologia molecular computacional e bioinformática. Bioinformatics 2009 Jun 1 25 (11) 1422-3. http://dx.doi.org/10.1093/bioinformatics/btp163, website
  • Site NumPy
  • Site Pandas
  • Site Jinja2
  • Site da Matplotlib

Se você achar este software útil, cite este artigo.

Schwarz, M., Vohradský, J., Modrák, M. e Pánek, J., 2020. rboAnalyzer: um software para melhorar a caracterização de RNAs não codificantes de saída de pesquisa de banco de dados de sequência. Fronteiras em genética, 11, p.675.

A versão rboAnalyzer usada para o papel é 0.1.4.

Este trabalho foi apoiado pelo projeto de infraestrutura de pesquisa ELIXIR CZ (MEYS Grant No: LM2015047) incluindo acesso a instalações de computação e armazenamento.

Este trabalho foi financiado pelo Fundo Europeu de Desenvolvimento Regional - Projeto "ELIXIR-CZ: Budování kapacit" (nº CZ.02.1.01 / 0.0 / 0.0 / 16_013 / 0001777).


Referências

Altschul SF, Madden TL, Schaffer AA, Zhang J, Zhang Z, Miller W, Lipman DJ: Gapped BLAST e PSI-BLAST: uma nova geração de programas de pesquisa de banco de dados de proteínas. Nucleic Acids Res. 1997, 25 (17): 3389-3402. 10.1093 / nar / 25.17.3389.

Ashburner M, Ball CA, Blake JA, Botstein D, Butler H, Cherry JM, Davis AP, Dolinski K, Dwight SS, Eppig JT: Ontologia genética: ferramenta para a unificação da biologia. The Gene Ontology Consortium. Nat Genet. 2000, 25 (1): 25-29. 10.1038 / 75556.

Liang C, Wang G, Liu L, Ji G, Liu Y, Chen J, Webb JS, Reese G, Dean JF: WebTraceMiner: um serviço da web para processamento e mineração de arquivos de rastreamento de sequência EST. Nucleic Acids Res. 2007, W137-142. 10.1093 / nar / gkm299. 35 Servidor Web

Nagaraj SH, Deshpande N, Gasser RB, Ranganathan S: ESTExplorer: uma plataforma de montagem e anotação de tag de sequência expressa (EST). Nucleic Acids Res. 2007, W143-147. 10.1093 / nar / gkm378. 35 Servidor Web

Pirooznia M, Gong P, Guan X, Inouye LS, Yang K, Perkins EJ, Deng Y: Clonagem, análise e anotação funcional de marcas de sequência expressas da Minhoca Eisenia fetida. BMC Bioinformatics. 2007, 8 (Suplemento 7): S7-10.1186 / 1471-2105-8-S7-S7.

Mangalam H: Os kits de ferramentas Bio * - uma breve visão geral. Brief Bioinform. 2002, 3 (3): 296-302. 10.1093 / bib / 3.3.296.

Stajich JE, Bloco D, Boulez K, Brenner SE, Chervitz SA, Dagdigian C, Fuellen G, Gilbert JG, Korf I, Lapp H: O kit de ferramentas Bioperl: módulos Perl para as ciências da vida. Genome Res. 2002, 12 (10): 1611-1618. 10.1101 / gr.361602.


Conclusão e discussão

Propomos uma abordagem de duas etapas para atribuição taxonômica, na qual obtemos o máximo de informações que pudermos da saída do BLAST antes de usar métodos computacionalmente caros baseados em árvore filogenética em sequências que são difíceis de classificar. Neste artigo, desenvolvemos um método de detecção de outliers para atribuição de taxonomia usando resultados do BLAST que separa correspondências filogeneticamente corretas de correspondências com sequências de organismos semelhantes, mas filogeneticamente mais distantes. Este método pode, portanto, ser usado para a etapa um de uma abordagem de duas etapas, para identificar sequências que podem ser atribuídas a rótulos precisos usando apenas uma pesquisa BLAST de um banco de dados de referência.

Como todas as sequências de rRNA 16S estão relacionadas, estatísticas como o valor E do BLAST ou pontuação de bits não fornecem informações prontas para separar sequências de diferentes categorias filogenéticas. Nossos experimentos mostram também que não há um único corte que pode ser usado para selecionar acertos do BLAST para atribuir rótulos taxonômicos corretamente. Experimentamos encontrar outliers usando distribuições de pontuação de bits, mas descobrimos que eles forneciam informações insuficientes para detectar correspondências filogeneticamente corretas (dados não mostrados). Nossos experimentos também mostram que, embora a porcentagem de identidade de seu melhor hit BLAST esteja correlacionada a uma sequência sendo atribuída a um rótulo taxonômico, nenhum corte de porcentagem de identidade específico pode separar aquelas sequências que podem ser classificadas daquelas que não podem. Isso motivou nosso desenvolvimento de um método baseado em pontuação BILD para identificar quando os principais acertos do BLAST produzirão rótulos taxonômicos precisos.

Como nosso método é usado como uma etapa de filtragem, procuramos classificar com precisão o maior número possível de sequências de consulta, ao mesmo tempo em que cometemos poucos erros de classificação. As sequências que deixamos sem classificação devem ser tratadas por um método filogenético. Nossos resultados em conjuntos de dados metagenômicos de rRNA 16S simulados e reais mostram que nosso método tem alta precisão em todos os níveis taxonômicos, atribuindo rótulos corretos em níveis mais elevados para a maioria das sequências, e que é computacionalmente eficiente em comparação com métodos de atribuição taxonômica baseados em árvore filogenética. Isso demonstra a promessa de uma abordagem de atribuição taxonômica em duas etapas, usando nosso método como uma etapa de filtragem.

No futuro, planejamos estudar sequências que foram classificadas corretamente por métodos filogenéticos, mas não pelos nossos, para obter informações sobre possíveis melhorias. Também planejamos estudar a eficácia da restrição de métodos baseados em árvore filogenética à subárvore abrangida pelos valores discrepantes de nosso método. Finalmente, observe que nosso método foi desenvolvido e testado em dados de rRNA 16S, e não é aplicável como está a conjuntos de dados de sequenciamento do genoma completo (WGS). No entanto, a ideia de usar uma abordagem em duas etapas para atribuição de taxonomia em conjuntos de dados WGS é um caminho interessante para a pesquisa.


  • começa com um regular explosão pesquisa (consulta de proteína vs banco de dados de proteína)
  • usa os melhores resultados acima de um limite (E -10 ^ 5) para criar alinhamento e calcular o perfil de proteína
  • usa o perfil de proteína para realizar as próximas iterações de pesquisa, adicionando novos melhores resultados ao perfil
  • muito bom em identificar relações distantes entre proteínas
  • execute a pesquisa com blastp regular, observe os resultados
  • repita a série com PSI-BLAST, execute 3 iterações, observe novos sucessos

verifique primeiro se $ BLASTDB e $ BLASTMAT estão definidos (deve exibir esses nomes sem sinais $ e caminhos de amp):

Se você receber um espaço em branco e eles não estiverem configurados em seu '

ou siga as instruções para criar '

para criar um banco de dados a partir de seu arquivo fasta:

Para mais opções digite 'formatdb -h'


Reconhecimentos

S.A.R., S.M.C. e G.L.H. reconhecer o financiamento do EMBL. N.F. e S.A.R. agradecer o financiamento do Wellcome Trust (concessão no. 081989 / Z / 07 / A). Agradecemos a L. Baldacci, F. Fenninger, G. Torrance, S. Choudhary, N. Gopal e S.T. Williams por suas contribuições técnicas. Agradecemos a D. Schomburg, J. Mitchell e C. Steinbeck por seu apoio à comissão IUBMB-EC por seu apoio e incentivo J. May por melhorar a biblioteca de detecção de estéreo e E. Willighagen e outros desenvolvedores de Kit de Desenvolvimento de Química (CDK) por ajudar com a biblioteca CDK e revisão oportuna dos patches.


Como contar bases não DNA em uma sequência usando Python

Percebi recentemente que duas questões específicas estão aparecendo com bastante regularidade em meus registros de pesquisa: "como contar bases não-DNA em uma sequência" e "como saber se uma sequência contém DNA" (presumivelmente em oposição à proteína). Ocorreu-me que a segunda questão é realmente um caso especial da primeira - uma vez que temos uma maneira de contar o número de bases de DNA em uma sequência, podemos simplesmente aplicar uma regra que se mais de 80% (ou qualquer outro número, escolha) de bases em uma sequência são A, T, G ou C, então é provavelmente DNA.

Vamos começar com a coisa mais simples que achamos que funcionará - simplesmente contaremos o número de caracteres A, T, G e C em uma sequência, dividiremos pelo comprimento e multiplicaremos por 100 para obter uma porcentagem. Para este exemplo, estou usando uma sequência de DNA que tem três caracteres não ATGC: um de cada um de N, Y e R. Eu incluí a correção da divisão no início do código, caso você queira executá-lo no Python 2 :

A saída desse trecho de código mostra que está funcionando conforme o esperado:

No entanto, em algumas circunstâncias, podemos querer permitir caracteres diferentes de A, T, G e C em nossas sequências de DNA. Dê uma olhada nesta tabela que mostra o conjunto de códigos de ambigüidade IUPAC padrão:

Dependendo de qual subconjunto deles queremos permitir, podemos contar até dezesseis caracteres diferentes. Em vez de empinar dezesseis chamadas diferentes para count () em uma linha, provavelmente é melhor percorrer os caracteres permitidos e aumentar a contagem um de cada vez. Aqui está um pouco de código para fazer isso, usando uma lista para definir o conjunto de caracteres permitidos. Para este exemplo, estou permitindo as quatro bases padrão mais purinas (R) e pirimidinas (Y):

Como esperado, a resposta é maior do que em nosso primeiro exemplo porque agora estamos contando R e Y como bases de DNA:

Este parece ser um pedaço de código perfeito para se transformar em uma função. Faremos a sequência de DNA e a lista de bases permitidas em argumentos de função e usaremos um padrão sensato de contar apenas caracteres ATGC.

Observe como alteramos a sequência de entrada e as bases permitidas para maiúsculas, para ter certeza de que a função funcionará independentemente da caixa das entradas. Aqui estão alguns testes rápidos:

Tendo escrito esta função, é bastante simples definir uma função para testar se uma sequência é DNA. Para tornar a função o mais flexível possível, atribuiremos padrões razoáveis ​​para as bases permitidas e a porcentagem mínima de bases que devem corresponder. Vamos passar a sequência de entrada e a lista de bases permitidas para a função count_dna () e, em seguida, comparar o resultado dessa chamada ao mínimo. Esta é a função junto com algumas linhas para testá-la:

As you can see, the function is very concise – we simply ask whether the percentage of DNA bases returned by our earlier function is greater than the minimum, and return the result. As the output shows, we can make the test more stringent by increasing the minimum, or more lenient by allowing some ambiguous bases:

Another, much more concise way to write the counting function would be to use a list comprehension to select just the characters that are in some group:


To adapt the bioinformatics activities to a classroom context properly integrated in the high school curricula, the exercises were designed in collaboration with the teachers who took part in the pilot trial. Taking into account teachers’ suggestions, we propose a class workflow comprising four parts (I–IV), as schematically represented in Figure 1 and detailed below. To further assist teachers in implementing the class workflow, a tutorial video detailing the four parts was produced (see the online version of the journal to view the supplemental video). The estimated times correspond to the average time required by teachers to implement the full set of activities described below with their students. Regardless of the suggested timeline, it is important to emphasize that each teacher may easily reschedule the class workflow according to their teaching agenda either by cutting one or more of the four parts or, alternatively, by stimulating the students’ discussion after each exercise.

Setting up the theoretical background (estimated time: 60 minutes): The teacher emphasizes the importance of identifying genes from a genomic sequence. Besides recalling basic concepts such as genome, chromosomes, genes (structural, operator, repressor, regulator, promotor), and operons, students are introduced to important notions, namely start and stop codons, open reading frames (ORFs), synteny, and comparative genomics.

Introduction to bioinformatics databases and tools (estimated time: 30 minutes): The teacher highlights the importance of bioinformatics by explaining the exercises and introducing students to the bioinformatics resources and tools they will use, namely NCBI database, NCBI ORF finder, NCBI BLAST, and Microscope (MaGe). The tutorial video (Supplemental Material) should help teachers in this task and assist students throughout the exercises.

Bioinformatics exercises (estimated time: 70 minutes): Students carry out the exercises autonomously with the teacher's supervision to identify difficulties and answer questions.

Discussion of the results (estimated time: 20 minutes): The class discusses the results obtained in each exercise and assay to draw conclusions. Ultimately, the teacher might challenge the students to explore other case studies and study different genomic regions. In addition, we should not neglect students’ endeavor to explore autonomously the bioinformatics resources, particularly taking into account their user-friendly and intuitive interfaces. In fact, during the pilot trial, we observed that some students took the initiative to extend their em sílico experiments beyond the assigned activities by pursuing their own research queries, as, for instance: “What is the size of the genome of a spider?” “Are virus genomes such as HIV also available at this database?” or “Let's search for the gene coding for insulin.”


Assista o vídeo: OBMEP SEGUNDA FASE: ÚLTIMAS DICAS!!! (Junho 2022).


Comentários:

  1. Trowbridge

    Eu concordo totalmente!

  2. Fenrilkis

    Eu posso consultá-lo sobre esta questão e foi especialmente registrado para participar da discussão.

  3. Merril

    Na minha opinião, ele está errado. Vamos tentar discutir isso.

  4. Kazikora

    Desculpe por interferir ... mas esse tópico está muito perto de mim. Pronto para ajudar.



Escreve uma mensagem