[SP-pm] Bioinformática e Sequenciamento [Was: ordenando arquivos.]

Stanislaw Pusep creaktive at gmail.com
Fri Jul 29 14:15:58 PDT 2011


Perlssoal, não sei se isso tem a ver com o tópico, mas tenho a seguinte
coleção de strings (1 por linha):

<html><head><title>teste 1</title></head><body><h1>teste
1</h1>qwerty</body></html>
<html><head><title>teste 2</title></head><body><h1>teste
2</h1><h2>subtitulo</h2>asdfghj</body></html>
<html><head><title>404</title></head><body>not found</body></html>

Quero obter a seguinte estrutura (espécie de grafo):

                                                                     - teste
1 -           ---------- qwerty -----------
                                                                    /
    \         /                             \
                      - teste 1 -                           - <h1> -
    - </h1> -                               -
                     /           \                         /        \
    /         \                             / \
<html><head><title> --- teste 2 --- </title></head><body> -          - teste
2 -           - <h2>subtitulo</h2>asdfghj -   - </body></html>
                     \           /                         \
                                             /
                      --- 404 ---
------------------------- not found --------------------------

Estou ciente de que, se eu empregar grafo "as is", a minha RAM vai estourar
logo na home do UOL, a menos que eu "tokenize" por tags ou algo do gênero :/

ABS()



2011/7/29 Eden Cardim <edencardim em gmail.com>

> >>>>> "Thiago" == Thiago Yukio Kikuchi Oliveira <stratust em gmail.com>
> writes:
>
>    Thiago> Na verdade o sort não é feito no arquivo de sequências
>    Thiago> inicial.
>
> O que é "arquivo de sequências inicial"?
>
>    Thiago> É feito no arquivo de alinhamento.
>
> "Arquivo de alinhamento" é saída de algo como o BLAST, por exemplo?
>
>
>    Thiago>  O problema é que agora existem Sequenciadores de
>    Thiago> nova-geração que geram muitas sequencias, porém de tamanho
>    Thiago> pequene (entre 36bp-100pb). Cada corrida gera arquivos texto
>    Thiago> de tamanho entre 3GB - 15GB.
>
> A 5 anos atrás quando eu trabalhava com isso, era mais ou menos a mesma
> coisa só que a gente usava um "assemblador de contigs" pra calcular os
> overlaps e montar sequências maiores contínuas (contigs) baseadas no
> vetor de sequenciamento. O que mudou de lá pra cá?
>
>    Thiago> Só exemplificando:
>
>    Thiago> Incialmente temos um arquivo texto com as sequências no
>    Thiago> formato FASTQ que vem do sequenciamento.  O formato do
>    Thiago> arquivo é assim:
>
>    Thiago> @SEQ_ID
>    Thiago> GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
>    Thiago> +
>    Thiago> !''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65
>
>    Thiago> Um dos meus arquivos FASTQ possui 7.7G (com 168.061.844
>    Thiago> linhas). Na verdade são 2 arquivos pois ele é pareado, mas
>    Thiago> dá pra usar apenas um neste exemplo.
>
>    Thiago> Esse arquivo é alinhado contra o genoma do camundondo e
>    Thiago> aproximadamente 60% das sequências são mapeadas.
>
>    Thiago> Portanto o arquivo contendo o alinhamento tem ~60% do
>    Thiago> tamanho do arquivo com as posições cromossomicas:
>    Thiago> Ex:
>    Thiago> #chromossomo #start #end #sequencias #qualidade #etc..
>    Thiago> chr10 2345 2390 ...
>    Thiago> chr2 1234 1289 ...
>
>    Thiago> Esse arquivo de alinhamento não é ordenado. Uma das
>    Thiago> primeiras análises que fazemos nesse arquivo de alinhamento
>    Thiago> é descobrir a cobertura do sequenciamento (quantas
>    Thiago> sequencias cobrem a mesma região). E para fazer isso é
>    Thiago> necessário ter as coordenadas genômicas ordenadas.
>
> Ok, mas aí não precisa acumular tudo na memória né, é só separar os
> intervalos. Inclusive, o postgresql faz esse tipo de conta de overlap
> pra você com desempenho próximo do ideal sem foder tua RAM e você
> implementa em 40 minutos, o único trabalho é inserir cada linha como
> registro sendo que os números delimitando o intervalo são inseridos como
> uma única coluna do tipo reta.
>
> --
>   Eden Cardim       Need help with your Catalyst or DBIx::Class project?
>  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
>  Shadowcat Systems Ltd.  Want a managed development or deployment platform?
> http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/
> http://twitter.com/#!/edenc
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110729/a9fd1ddd/attachment.html>


More information about the SaoPaulo-pm mailing list