<div>Perlssoal, não sei se isso tem a ver com o tópico, mas tenho a seguinte coleção de strings (1 por linha):</div><div><br></div><div><font class="Apple-style-span" face="'courier new', monospace" size="1"><html><head><title>teste 1</title></head><body><h1>teste 1</h1>qwerty</body></html></font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" size="1"><html><head><title>teste 2</title></head><body><h1>teste 2</h1><h2>subtitulo</h2>asdfghj</body></html></font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" size="1"><html><head><title>404</title></head><body>not found</body></html></font></div><div><br>

</div><div>Quero obter a seguinte estrutura (espécie de grafo):</div><div><br></div><div><font class="Apple-style-span" face="'courier new', monospace" size="1">                                                                     - teste 1 -           ---------- qwerty -----------</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" size="1">                                                                    /           \         /                             \</font></div><div>

<font class="Apple-style-span" face="'courier new', monospace" size="1">                      - teste 1 -                           - <h1> -             - </h1> -                               -</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" size="1">                     /           \                         /        \           /         \                             / \</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" size="1"><html><head><title> --- teste 2 --- </title></head><body> -          - teste 2 -           - <h2>subtitulo</h2>asdfghj -   - </body></html></font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" size="1">                     \           /                         \                                                              /</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" size="1">                      --- 404 ---                           ------------------------- not found --------------------------</font></div>
<div>
<br></div><div>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 :/</div><br>ABS()<br><br>
<br><br><div class="gmail_quote">2011/7/29 Eden Cardim <span dir="ltr"><<a href="mailto:edencardim@gmail.com">edencardim@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

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