Postagens

Mostrando postagens de fevereiro, 2013

Jellyfish script

Eu precisei criar um histograma dos k-mers para diferentes tamanhos. O jellyfish surpreende em performance e facilidade de uso. Mas mesmo assim, precisamos de vários passos. Segue um script para facilitar o uso dele. O script precisa de dois parâmetros: o nome do arquivo fasta/fastq e o prefixo do arquivo de resultados. Ex: run.sh reads.fasta jf_kmer_ #!/bin/bash for kmerSize in {13..29..2} do    echo "kmer size $kmerSize - creating kmer-map..."    jellyfish count -m $kmerSize -o output -c 16 -s 500000000 -t 60 $1    arq_out=`ls -1 output* | wc -l`    banco=out_$kmerSize    if [ $arq_out -gt 1 ]; then       echo "merging"       jellyfish merge -o $banco output\*       rm -rf output*       sleep 5    else       echo "renaming..."       auxFileName=`ls -1 output*`       mv $auxFileName $banco    fi   ...

Portando o "Free Associative Neurons" (FAN) para o WEKA

O WEKA é a melhor ferramenta livre (open source) para mineração de dados disponível na atualidade. As concorrentes que conheço são: Orange , RapidMiner , JHepWork , Konstanz Information Miner (KNIME) e o R Analytical Tool To Learn Easily (RATTLE). No geral, as principais técnicas de classificação, associação e agrupamento estão disponíveis nessas ferramentas, mas considero o WEKA sendo a ferramenta mais fácil de integrar em outras aplicações. Tanto que existem extensões para usar o WEKA em alguns dos programas acima. Apenas para deixar essa pequena lista mais completa, durante alguns anos eu usei o Tanagra na disciplina de Tópicos de Banco de Dados (TADS/UFPR), muito bom. Mas no final, o fato do WEKA ter uma ótima documentação, dos fontes da aplicação estarem disponíveis para os interessados, sempre se mostrou, nos meus estudos, o mais interessante. O "Free Associative Neurons" (FAN) é um modelo neuro-fuzzy de rede neural, inventada pelo Roberto Raittz, que associa o...

Programadores JAVA que não sabem OO vivem fazendo isso...

Veja o código que encontrei em uma aplicação open source famosa:     static double[] getValues(double[] source, int index) {         double[] result = new double[obj.size() - 1];         int index = obj.getIndex();         if (index == 0) {            for(int i=1 ; i                result[i-1] = values[i];            }         } else {             if (index == result.length) {                for(int i=0 ; i                   result[i] = values[i];                }             } else {                for(int i=0 ; i             ...