super_banner_728x90

sexta-feira, 6 de fevereiro de 2015

Sorteio do livro "Como ser um programador melhor", da editora Novatec, e desconto de 20% para leitores do blog

Novatec Editora lança o livro “Como ser um programador melhor”

Título reúne as melhores práticas da programação e dicas de comportamento para impulsionar a carreira e tornar o trabalho mais agradável e produtivo 

Bons programadores escrevem bons códigos. E bons códigos não surgem do nada ou por sorte. É preciso trabalhar com dedicação e inteligência e saber o que você está fazendo, além de investir tempo e esforço em seu trabalho. Também é necessário ter alguns conhecimentos básicos sobre codificação, conhecer as melhores práticas de programação e ter o comportamento adequado no ambiente de trabalho para que ele não se torne uma tarefa árdua e difícil.

Foi pensando em tudo isso que o autor Pete Goodliffe reuniu no livro “Como ser um programador melhor”, publicado no Brasil pela Novatec Editora, tudo o que aprendeu em seus 15 anos de carreira sobre como lidar com códigos, conhecer bem os negócios e melhorar seu desempenho no trabalho. O conteúdo é útil tanto para desenvolvedores experientes como para profissionais novatos e estudantes.




Como ser um programador melhor” possui dicas divididas em cinco categorias:
  • Técnicas de codificação para compor linhas de código, testar, depurar e lidar com a complexidade.
  • Práticas, abordagens e atitudes para manter a simplicidade, trabalhar bem em equipe e reutilizar e criar códigos maleáveis.
  • Táticas para aprender de maneira eficiente, comportar-se de modo ético, encontrar desafios e evitar a estagnação.
  • Maneiras práticas de completar tarefas: as ferramentas certas, qual é a aparência de “pronto” e procurar ajuda dos colegas
  • Hábitos para trabalhar bem com outras pessoas e encarar o desenvolvimento como uma atividade social.
 
Sobre o autor
Pete Goodliffe é programador, colunista que escreve sobre desenvolvimento de software, músico e autor. Ele jamais permanece no mesmo ponto da cadeia alimentar de software. Pete é autor de uma coluna chamada “Becoming a Better Programmer” (Como ser um programador melhor) para uma revista, colaborou com vários livros sobre desenvolvimento de software e dá palestras regularmente sobre esse assunto.
“Este livro alimentará a sua paixão pela arte e pela ciência da programação. Pete entende que um bom software é resultado de boas pessoas fazendo o seu melhor trabalho.”– Lisa Crispin, autora de Agile Testing: A Practical Guide for Testers and Agile Teams

Livro: Como ser um programador melhor - Um manual para programadores que se importam com código
Autor: Pete Goodliffe
Tradução: Lúcia A. Kinoshita
Revisão gramatical: Marta Almeida de Sá
ISBN: 978-85-7522-415-1
Número de páginas: 384
 



Para participar, você deve seguir as regras de sempre:
1. O participante deverá curtir a página da Novatec (https://www.facebook.com/novatec)
2. O participante deverá ter um endereço de entrega no Brasil
3. O sorteio será realizado até 23h59 do dia 09/03/2015
4. O ganhador terá até uma semana (dia 16/03/2015) para entrar em contato, através desta fanpage ("Estudar Computação") ou pelo e-mail lelimaufc@gmail.com. Caso contrário, o sorteio será refeito.
5. O perfil do participante deve ser real. Não serão aceitos perfis que são usados somente para a participação em promoções ou somente para o uso de jogos.
6. A Novatec conferirá se o ganhador seguiu as regras da promoção. Se estiver tudo certo, o livro escolhido pelo ganhador será enviado. Caso contrário, o sorteio será refeito.

Link para o sorteio: https://www.sorteiefb.com.br/tab/promocao/425356




E continua o desconto de 20% em qualquer livro comprado no site da editora Novatec se for adicionado o código ESTUDARCOMPUTACAO. Esse desconto continua válido até o fim de 2015.


quarta-feira, 4 de fevereiro de 2015

Startup americana propõe soluções para desenvolvedores


Com sede em Belo Horizonte, a Appbase promete melhorar o desempenho dos processos de desenvolvimento de aplicativos.

Por trás de uma experiência positiva no uso dos aplicativos, existe um processo de programação bastante complexo e que existe atenção do desenvolvedor. Com o objetivo de intermediar esse processo, a Appbase é uma startup que se propõe a solucionar problemas de escalabilidade, permitir uma melhor administração do banco de dados e aplicações em tempo real. Criada em 2014 em Pittsburgh, na Pensilvânia, nos Estados Unidos, a empresa chegou ao Brasil graças ao programa de aceleração Start-Up Brasil. O produto está disponível para cadastro no site http://appbase.io/. Atualmente os fundadores da Appbase, os indianos Siddharth Kothari e Sagar Chandarana, participam de um projeto de aceleração de startups nos Estados Unidos, a Techstars Cloud, famosa por fomentar investimentos de grandes empresas. Porém, parte da equipe se mantém em Belo Horizonte, graças ao potencial econômico e de inovação e tecnologia da cidade.
Funcionando como uma interface de programação de aplicativos (API), a Appbase proporciona que o desenvolvedor esteja focado nos processos de front-end, já que a ferramenta se encarrega de monitorar e organizar os bastidores. Ou seja, o serviço é responsável por todo processo de back-end e banco de dados. Outra característica importante do Appbase é a possibilidade de programação de aplicativos que atuem em tempo real, que conferem mais interatividade à plataforma que está sendo criada. Sendo assim, o serviço evita que os desenvolvedores tenham que utilizar vários serviços de banco de dados, o que diminui custos e aumentar a produtividade. Ainda tratando das vantagens para o desenvolvedor, a Appbase se encarrega da proteção e segurança dos dados em utlização.
Sobre a sua aplicabilidade mercadológica, a Appbase já despertou o interesse de desenvolvedores, e foi utilizada na elaboração de mais 50 aplicativos. Além disso, a API já recebeu mais de 4 milhões de requisições, em menos de um ano de funcionamento. Com o objetivo de demonstrar a potencialidade do serviço, os desenvolvedores da Appbase, construíram uma plataforma semelhante ao microblog Twitter, contando com apenas 300 linhas de códigos. Para os leigos, é importante ressaltar que a criação de um aplicativo com essas características a partir desse método, torna o processo bastante simplificado.

Infográfico - clique para expandir

Parceria internacional
A Appbase surgiu do encontro dos indianos, Siddharth e Sagar, que trabalhavam com desenvolvimento de jogos infantis nos Estados Unidos. Foi nesse projeto que encontraram o problema que a Appbase pretende solucionar: a sincronização de dados nos aplicativos. A proposta para a criação da ferramenta partiu da americana Shannon Sullivan, que também encontrava os mesmos impasses. A oportunidade dar continuidade com os trabalhos no Brasil surge com o edital da Start-Up Brasil, programa do Governo Federal que oferece consultoria de mercado, infraestrutura, oportunidade de parceria com grandes empresas, e um ambiente propício ao empreendedorismo a empresas de base tecnológica. “Belo Horizonte conta com uma grande aceleradora, a AceleraMGTI, que oferece terra fértil com seus programas de aceleração, e uma equipe competente de mentores”, esclarece o engenheiro de software da Appbase, Sagar Chandarana.
Sobre a experiência de instalar a Appbase no Brasil, o CEO da empresa, Siddharth, ressalta que “o mercado brasileiro tem um enorme potencial de crescimento, e o Start-Up Brasil torna possível alavancar o serviço no mercado sem os obstáculos iniciais que as novas empresas geralmente enfrentam”. Outro fator que incentiva a instalação de empresas de tecnologia estrangeira no Brasil, é a concessão facilitada de visto de trabalho.
No contexto das empresas de tecnologia, uma equipe diversa e plural representa uma tendência que está se firmando nas novas gerações de startups. “A diversidade da equipe nos ajuda a criar perspectivas diferentes e gerar inovação, na parte técnica e na cultura corporativa. Somos unidos pela própria cultura que criamos e pelo desejo de resolvermos este grande problema que desenvolvedores como nós enfrentam”, explica Saggar. Ele ainda destaca a fluência em inglês é determinante para que haja uma boa comunicação no ambiente de trabalho: “Somos uma equipe unicamente internacional. Os diversos membros da nossa equipe representam três países diferentes, quatro religiões distintas, e falam cinco idiomas, porém sempre nos comunicamos em inglês”.
Sobre a possibilidade de trabalhar com pessoas de todo mundo, o desenvolvedor William Silva, que integra a equipe há quase um mês, destaca que “essa é uma oportunidade de aumentar a bagagem cultural e profissional, aprendendo conceitos que são aplicados em diferentes lugares do mundo. Cada um traz experiências e vivências pessoais que só contribuem para um bom trabalho”.

Equipe Appbase:  em sentido horário: Shannon Sullivan, Henrique Pinheiro Sá, William Silva, Sagar Chandarana, Isabela Magalhães e Siddharth Kothari.


Contato:
Fernanda Mafia
Analista de Comunicação da Appbase
Telefone: (31) 9360-4402
E-mail: nandamafia@gmail.com


terça-feira, 9 de dezembro de 2014

Mais um sorteio de livro no blog (dessa vez você escolhe o livro)

Olá, pessoal.

A Editora Novatec está com três super lançamentos. Vamos fazer um sorteio e o ganhador vai poder escolher o livro que irá receber!

Os livros são:
  1. HTML5 em Ação
  2. E-Commerce com PHP e MySQL
  3. AngularJS – Uma abordagem prática e objetiva
Descrições mais detalhadas dos livros vão abaixo.

Para participar, você deve seguir as regras de sempre:
1. O participante deverá curtir a página da Novatec (https://www.facebook.com/novatec)
2. O participante deverá ter um endereço de entrega no Brasil
3. O sorteio será realizado até 23h59 do dia 17/12/2014
4. O ganhador terá até 1 (uma) semana (dia 27/12/2014) para entrar em contato, através desta fanpage ("Estudar Computação") ou pelo e-mail lelimaufc@gmail.com. Caso contrário, o sorteio será refeito. Quando mais rápido o ganhador entrar em contato, mais rápido o livro será entregue (se entrar em contato em até 2 dias, o livro ainda poderá ser entregue esse mês).
5. A Novatec conferirá se o ganhador seguiu as regras da promoção. Se estiver tudo certo, o livro escolhido pelo ganhador será enviado. Caso contrário, o sorteio será refeito.

Link para participar do sorteio:
https://www.sorteiefb.com.br/tab/promocao/411991

***********************************************

Novatec Editora lança livro sobre desenvolvimento web com HTML5
HTML5 em Ação é uma introdução ao assunto por meio de códigos e exemplos do mundo real

Há uma boa razão para o HTML5 ser um dos tópicos mais falados do desenvolvimento web. Além de ser a última versão da linguagem de marcação da web, define um padrão totalmente novo para o desenvolvimento de aplicações. 
O HTML5 é a primeira versão a adotar a web como uma plataforma para o desenvolvimento de aplicativos web, e não constitui apenas tags e recursos novos adicionados a um velho padrão. Ele é a base da Web moderna, alavancando seus serviços interativos, UI de página única, jogos interativos e aplicativos empresariais complexos. Tem também suporte ao desenvolvimento de aplicativos móveis baseados em padrões, recursos poderosos (como o armazenamento local e WebSockets), ótimas APIs de áudio e vídeo e novas opções de layout com o uso de CSS3, SVG e Canvas.
O livro HTML5 em Ação lançado pela Novatec Editora é uma introdução completa ao assunto direcionada a desenvolvedores de aplicações web, web designers e interessados no assunto. A obra examina a especificação HTML5 por meio de códigos e exemplos do mundo real e é um guia útil e prático para a construção segura de aplicativos e sites.
O conteúdo inclui explicações sobre os novos elementos semânticos, tipos de entrada de formulário, design de aplicativo de página única, criação de elementos gráficos interativos, aplicativos web móveis e tudo sobre os novos recursos HTML5.
Sobre os autores:
Rob Crowther é desenvolvedor web, blogueiro e autor de Hello! HTML5 & CSS3.
Joe Lennon é desenvolvedor de aplicativos empresariais móveis.
Ash Blue constrói projetos interativos premiados.
Greg Wanish é desenvolvedor independente da Web e de e-commerce.



Livro que ensina passo a passo para a criação de lojas virtuais é lançado pela Novatec Editora
E-Commerce com PHP e MySQL” ensina o processo de criação de lojas online seguras e eficientes 
A pergunta para a qual todo desenvolvedor web de lojas virtuais quer encontrar a resposta: como criar um site de e-commerce bom e seguro? O sucesso de qualquer site depende de sua confiabilidade e de seu desempenho, e foi pensando nisso que o autor Larry Ullman escreveu o livro E- Commerce com PHP e MySQL, um guia com um passo a passo completo para a criação de sites de e-commerce, lançado pela Novatec Editora.
O livro conduz o leitor por todos os passos do processo de desenvolvimento: design da interface visual, criação do banco de dados, apresentação do conteúdo, criação de um catálogo online, administração do carrinho de compras, tratamento dos pedidos, processamento dos pagamentos e atendimento. 
E-Commerce com PHP e MySQL utiliza dois exemplos com vários recursos e diversos objetivos para apresentar a maior variedade possível do que significa fazer um site eficiente. Explica também o método Stripe para processamento de pagamentos e as alterações mais recentes nas opções e metodologias do PayPal e do Authorize.net
O leitor aprenderá a criar um ambiente de servidor e um banco de dados seguros, utilizar transações seguras, evitar vulnerabilidades comuns, incorporar diferentes gateways de pagamento, fazer o design de sites escaláveis fáceis de manter e muito mais.
Sobre o autor:
Larry Ullman é escritor, instrutor e desenvolvedor. Já escreveu inúmeros livros aclamados pela crítica, que já venderam mais de 350 mil cópias em todo o mundo em mais de 20 idiomas. Conforme seus leitores, estudantes e clientes podem atestar, o ponto forte de Larry está em sua habilidade de converter assuntos técnicos e misteriosos em algo compreensível e útil.



Novatec Editora lança livro com abordagem prática sobre AngularJS
Título é indicado para desenvolvedores que querem aprender a tecnologia de forma simples e objetiva

O AngularJS é o framework revolucionário criado e mantido por um time de engenheiros do Google. Ele simplifica o desenvolvimento de aplicações web robustas e de sucesso, e é por isso que tem crescido e sido considerado a melhor tecnologia do momento para os desenvolvedores.
Os estudantes e profissionais que querem aprender a trabalhar com o AngularJS têm agora um material objetivo e simplificado, lançado pela Novatec Editora: o livro AngularJS – Uma abordagem prática e objetiva, do Michael Henrique R. Pereira. Com uma série de exemplos, o título proporciona um conhecimento sólido sobre conceitos do framework.
O leitor será capaz de criar uma aplicação single-page com AngularJS, criar módulos, aplicar MVC de maneira correta, ampliar o vocabulário HTML, utilizar o mecanismo de rotas do AngularJS, internacionalizar a aplicação, criar formulários e aplicar CSS, implementar a comunicação de componentes por meio de eventos, efetuar a comunicação com o servidor, criar uma aplicação utilizando AngularJS e RequireJS e muito mais.
Sobre o autor:
Michael Henrique R. Pereira é arquiteto e desenvolvedor de software, apaixonado por JavaScript e um aficionado por tecnologias de ponta, como o AngularJS. Já desenvolveu aplicações utilizando diversas tecnologias de backend e frontend e dá cursos e palestras sobre várias tecnologias, como tecnologias da plataforma Java, JavaScript, Node.js, arquiteturas RESTful e o próprio AngularJS.

segunda-feira, 1 de dezembro de 2014

Pipeline de exoma completo - parte 2 (alinhamento/mapeamento das sequências)

# 2_alinhamento.sh
# Criado em 15/08/2014
# Modificado em 27/11/2014
# Autor: Leandro Lima <llima@ime.usp.br>

# Baixando o programa para alinhar as sequências (bwa)
# A versão mais nova pode ser encontrada aqui:
# http://sourceforge.net/projects/bio-bwa/files/
cd $mydir/tools
# Quando fiz esse tutorial, a versão mais nova era a 0.7.10
wget http://downloads.sourceforge.net/project/bio-bwa/bwa-0.7.10.tar.bz2
tar -xvjf bwa-0.7.10.tar.bz2
cd bwa-0.7.10
make # para compilar o programa na sua máquina

# Para ficar mais fácil de encontrarmos o bwa, vamos criar uma variável
# para acessar a localização dele na sua máquina. Se você souber o que
# significa adicionar o programa ao PATH, fique à vontade para fazer isso.
BWA=$mydir/tools/bwa-0.7.10/bwa


# O 'bwa' precisa que a referência tenha um índice (index), para que as
# sequência sejam localizadas mais facilmente. A boa notícia é que o
# próprio bwa é usado para criar esse índice.

# Comando para criar o arquivo de índices do genoma.
# Isso pode levar alguns minutos.
$BWA index $hg19

# Instalando o 'samtools', para visualização de arquivos sam/bam
# http://sourceforge.net/projects/samtools/files/latest/download
cd $mydir/tools
wget http://downloads.sourceforge.net/project/samtools/samtools/1.0/samtools-1.0.tar.bz2
tar -xvjf samtools-1.0.tar.bz2
cd samtools-1.0
make
SAMTOOLS=$mydir/tools/samtools-1.0/samtools

# Agora vamos para a parte do alinhamento.
cd $mydir/results
mkdir 2_aln
cd 2_aln

# ALINHAMENTO
# Isso também vai levar bastante tempo, dependendo do número de sequências
# a serem mapeadas. Basicamente é a parte mais demorada do pipeline.
# O 'bwa' gera um arquivo de saída que contem informações sobre todas as
# sequências usadas no alinhamento (como: onde foram mapeadas, se foram
# mapeadas perfeitamente ou se houve inclusão, remoção ou troca de bases,
# e até mesmo se a sequência não foi mapeada em nenhum lugar). Esse arquivo
# (SAM, de "Sequence Alignment/Map") é bem grande, já que guarda bastante
# informações sobre as sequências. No entanto, ele tem uma versão compactada,
# ou binária (BAM), que pode ser gerada usando-se o programa samtools.
# As 4 próximas linhas, que estão comentadas, equivalem exatamente às próximas
# linhas que vêm neste script. Vamos usar o 'bwa' para mapear as sequências,
# e depois pegar a saída do mapeamento (arquivo SAM) e transformar num
# arquivo BAM. A diferença é que os comandos não comentados fazem isso sem
# precisar guardar o arquivo SAM (grande), economizando espaço em disco.
# Isso é muito bom, ainda contando com o fato de que o arquivo SAM pode ser
# gerado usando-se o arquivo BAM através do programa 'samtools'.

# Saiba mais sobre o 'bwa':
# http://bio-bwa.sourceforge.net/bwa.shtml

# Saiba mais sobre o 'samtools':
# http://samtools.sourceforge.net/samtools.shtml

# Você não precisa rodar as 4 linhas abaixo!
# $BWA mem -t 4 $hg19 $SINGLE > aln_se.sam
# $BWA mem -t 4 $hg19 $R1 $R2 > aln_pe.sam
# $SAMTOOLS view -Sb aln_se.sam > aln_se.bam
# $SAMTOOLS view -Sb aln_pe.sam > aln_pe.bam

# Como explicado anteriormente, os comandos abaixo irão mapear
# as sequências usando o 'bwa' (com 4 threads, ou seja, seu
# mapeamento será executada em 4 processos paralelamente),
# depois a saída desse alinhamento é passada como entrada
# para o programa 'samtools' com a opção 'view', que irá pegar
# um arquivo SAM (argumento 'S') e gerar um arquivo binário
# (argumento 'b').
$BWA mem -t 4 $hg19 $SINGLE | $SAMTOOLS view - -Sb > aln_se.bam
$BWA mem -t 4 $hg19 $R1 $R2 | $SAMTOOLS view - -Sb > aln_pe.bam

# Depois, iremos juntar as sequências pareadas (método "paired-end")
# com as sequências não-pareadas (método "single-end") usando
# o programa 'samtools' com a opção 'merge'.
$SAMTOOLS merge aln_se_pe.bam aln_se.bam aln_pe.bam

# Agora, vamos visualizar algumas informaçõe sobre os arquivos
# usando o programa 'samtools' com a opção 'view'.

# Primeiramente, vamos entender como funciona um arquivo SAM.
# Um arquivo SAM (ou BAM) contem algumas colunas com diversas
# informações sobre cada sequência.
# Coluna 1: o nome da sequência (que originalmente estava no
# arquivo "fastq").
# Coluna 2: contem um número inteiro que é a soma de diversos
# valores menores que apresentam características da sequência
# e seu alinhamento.
# Coluna 3: nome da sequência que serviu de referência para o
# alinhamento (nesse caso, um cromossomo).
# Coluna 4: a posição, na referência (cromossomo), em que o
# alinhamento começou.
# Coluna 5: qualidade do alinhamento/mapeamento

# Saiba mais sobre as especificações dos arquivos SAM/BAM:
# http://samtools.sourceforge.net/samtools.shtml#5

# Quant. de sequências pareadas no arquivo de single-end
$SAMTOOLS view -f 0x1 aln_se.bam | wc -l 

# Quant. de sequências pareadas no arquivo de paired-end
$SAMTOOLS view -f 0x1 aln_pe.bam | wc -l 

# Quant. de sequências pareadas no arquivo com todas as sequências (merge)
$SAMTOOLS view -f 0x1 aln_se_pe.bam | wc -l 

# Quant. de sequências mapeadas
$SAMTOOLS view -F 0x4 aln_se.bam | wc -l 
# Quant. de sequências não-mapeadas
$SAMTOOLS view -f 0x4 aln_se.bam | wc -l 

# Obs: a soma do número de sequências mapeadas com o número de sequências
# não-mapeadas sempre deve ser igual ao total de sequências
$SAMTOOLS view aln_se.bam | wc -l 

$SAMTOOLS view -F 0x4 aln_pe.bam | wc -l 
$SAMTOOLS view -F 0x4 aln_se_pe.bam | wc -l 

# Observe que o número de seqs. mapeadas do arquivo com todas as seqs.
# deve ser a soma das seqs. single-end (189558) com as seqs. paired-end (14797410)
# 189558 + 14797410 = 14986968

# Depois de ver essas estatísticas, podemos remover os arquivos
# separados, para economizar espaço em disco.
rm aln_se.bam aln_pe.bam


Acesse aqui o pipeline completo: http://www.estudarcomputacao.com/2014/09/pipeline-de-exoma-completo-parte-0.html

quinta-feira, 27 de novembro de 2014

Pipeline de exoma completo - parte 1 (FastQC e qualidade das sequências)

# Parte 1: controle de qualidade das sequências
# Criado em 15/08/2014
# Modificado em 27/11/2014
# Autor: Leandro Lima <llima@ime.usp.br>

# Vamos continuar usando o diretório padrão
# utilizado na parte 0 do pipeline

cd $mydir # 'cd' muda o diretório de trabalho para $mydir

# FERRAMENTAS
# Agora vamos criar um diretório específico
# para guardar as ferramentas
mkdir tools
cd tools

# FASTQC - Ferramenta para olhar verificar a qualidade geral das sequências
# Mais informações sobre o programa podem ser encontradas aqui:
# http://www.bioinformatics.babraham.ac.uk/projects/fastqc/

wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.2.zip
unzip fastqc_v0.11.2.zip
cd FastQC/
chmod +x fastqc # Adicionando permissão de execução
FASTQC=$mydir/tools/FastQC/fastqc

# Criando um diretório para o fastqc
cd $mydir/results
mkdir 1_fastqc
cd 1_fastqc

# Rodando o fastqc para os diferentes arquivos de sequências
$FASTQC $R1 
$FASTQC $R2 
$FASTQC $SINGLE

# Abra os arquivos "html" gerados para dar uma olhada nas estatísticas geradas.
# Nesse tutorial não iremos a fundo em todas essas informações, mas é interessante
# passar por todas elas e tentar entender o que é cada medida.
# É desejável que para todas as medidas, haja um "sinal verde", mas não é isso que
# ocorre geralmente. Vou chamar atenção principalmente para a medida "Per base
# sequence quality", que mostra a qualidade média das bases por posição nas sequências.
# Por causa do processo de leitura das bases, é esperado que as bases iniciais tenham
# uma qualidade melhor, e que depois a qualidade vá caindo. Por enquanto, não vamos
# remover nenhuma sequência, mas poderemos filtrá-las lá na frente, no processo.
# Algumas pessoas cortam/quebram a sequência para que ela fique somente com a
# parte que tem mais qualidade. No entanto, isso vai confundir os programas
# que forem remover sequências repetidas (duplicadas), lá na frente, neste
# pipeline. Portanto, deixaremos as sequências inalteradas. Nas próximas
# etapas, iremos usar a medida de qualidade do genótipo (genotype quality),
# que une várias medidas numa só, levando em consideração, além da qualidade
# do alinhamento, a qualidade da base.


Acesse aqui o pipeline completo: http://www.estudarcomputacao.com/2014/09/pipeline-de-exoma-completo-parte-0.html

quinta-feira, 30 de outubro de 2014

Sorteio do livro "Python para desenvolvedores", da Editora Novatec

Lançado o livro Python para Desenvolvedores, um curso rápido e prático sobre o assunto
A Novatec traz mais um título de Python repleto de exemplos para desenvolvedores
As linguagens dinâmicas, que no passado eram vistas apenas como linguagens script, hoje conquistam cada vez mais espaço no mercado, chamando a atenção de grandes fornecedores de tecnologia. Entre elas, o Python se destaca como uma das mais populares e poderosas.
O Python inclui diversas estruturas de alto nível (listas, dicionários, data/hora, complexos e outras) e uma vasta coleção de módulos prontos para uso, além de frameworks de terceiros que podem ser adicionados. Também inclui recursos como geradores, introspecção, persistência, metaclasses e unidades de teste. 
O livro Python para Desenvolvedores, lançado pela Novatec Editora, descreve os principais recursos da linguagem Python, focado em sua versão 3.3, com um texto direto e conciso, repleto de exemplos para descrever desde os conceitos mais básicos até recursos avançados, como a integração com outras linguagens.
O livro aborda conceitos básicos de linguagem, biblioteca-padrão, geradores, programação funcional, classes, testes automatizados, armazenamento de dados, aplicações web, processamento numérico, interface gráfica, computação gráfica, processamento distribuído, plataformas portáteis, empacotamento e distribuição e integração com aplicativos e outras linguagens.
Sobre o autor:
Luiz Eduardo Borges é engenheiro eletrônico e analista de sistemas, com pós-graduação em Computação Gráfica pela Universidade do Estado do Rio de Janeiro (UERJ). Atua há mais de duas décadas na área de informática.

Clique aqui para ir para a página do sorteio, que vai ocorrer dia 24/11/2014.
https://www.sorteiefb.com.br/tab/promocao/397685


domingo, 28 de setembro de 2014

Pipeline de exoma completo - parte 0 (Bioinformática)

Atualização com as partes já publicadas.

Parte 0: referências e conceitos básicos
http://www.estudarcomputacao.com/2014/09/pipeline-de-exoma-completo-parte-0.html

Parte 1: controle de qualidade das sequências
http://www.estudarcomputacao.com/2014/11/pipeline-de-exoma-completo-parte-1.html

Parte 2: alinhamento/mapeamento das sequências
http://www.estudarcomputacao.com/2014/12/pipeline-de-exoma-completo-parte-2.html

----------------------------------------------------------

# Parte 0: referências e conceitos básicos
# Criado em 15/08/2014
# Modificado em 30/09/2014
# Autor: Leandro Lima 

# Oi pessoal. Tudo bem?
# Meu nome é Leandro de Araújo Lima. No momento (fim de 2014) estou concluindo meu
# doutorado em Bioinformática na Universidade de São Paulo (USP), e estou fazendo
# estágio sanduíche no Children's Hospital of Philadelphia (http://www.chop.edu),
# mais especificamente no Center for Applied Genomics (http://caglab.org).

# Você pode me encontrar através do e-mail llima@ime.usp.br ou através da página
# http://www.ime.usp.br/~llima, que tem mais informações sobre mim.

# Este pipeline foi feito para quem não tem experiência com Bioinformática, e
# mesmo para quem não tem experiência com o uso do terminal do Linux (ou Mac,
# por exemplo). Se você tem experiência com o terminal e/ou Bioinformática, mas
# não tem experiência com análise de exomas, este pipeline também é pra você.

# Antes de começar, você precisa ter algumas noções de Biologia Molecular.
# Se você não sabe ou não lembra dois conceitos de DNA, cromossomo e genoma
# (humanos), recomendo que você dê uma relembrada. E, é claro, exoma!
# http://pt.wikipedia.org/wiki/Ácido_desoxirribonucleico
# http://pt.wikipedia.org/wiki/Sequência_de_DNA
# http://pt.wikipedia.org/wiki/Cromossomo
# http://pt.wikipedia.org/wiki/Genoma
# http://pt.wikipedia.org/wiki/Genoma_humano
# http://pt.wikipedia.org/wiki/Exoma

# Não continue sem saber os conceitos acima. Dê pelo menos uma olhada nesses
# artigo da Wikipedia. Alguns deles, inclusive, são bem curtos.

# Recomendo também que você leia alguns post no blog da Genomika.
# Os posts estão em português, e muito bem escritos.
# http://www.genomika.com.br/blog/

# Continuando...

# Todos os comandos a seguir deverão ser executados em um terminal, seja este
# no Linux, BSD ou Mac (por exemplo). Esse código que você está vendo, incluindo
# este texto nas linhas que começam com '#' (jogo-da-velha), são um código de
# uma linguagem própria para ser interpretada e usada no terminal. Esses programas,
# que se comunicam com o Sistema Operacional, são chamados de "shell". O que
# você vai executar são comandos do "bash", que é um tipo específico de shell.
# Saiba mais sobre o "bash": http://pt.wikipedia.org/wiki/Bash (artigo muito legal!)

# Os comandos poderão/deverão ser executados copiando-os e colando-os no terminal.
# Todas as linhas que NÃO começam com o "#" são comandos executáveis. Já as linhas
# que começam com o "#" são comentários, e serão descartadas no terminal.


# OK, agora vamos começar!

# Abra o terminal do Linux e crie um diretório de trabalho. Você pode fazer isso
# usando o comando "mkdir ". Certifique-se de ter uma
# máquina com pelo menos 4GB de memória e 100GB de espaço em disco.

# Caso você não tenha tanto espaço em disco, entre em contato, por favor!
# Posso disponibilizar arquivos menores.

# O "mydir" vai ser o diretório de trabalho. Você pode substituir $PWD por outro
# diretório qualquer ou simplesmente copiar a linha abaixo para tornar o diretório
# em que você está o diretório de trabalho. "mydir" vai passar a ser uma variável
# que vai ser referenciada usando o caracter $ na frente (ou seja, $mydir)

mydir=$PWD

cd $mydir # 'cd' muda o diretório de trabalho para $mydir

# REFERÊNCIAS
mkdir reference # 'mkdir' cria um diretório
cd reference 

# Baixando o genoma humano (versão de montagem: GRCh37, para o 1000 genomas)
# O comando 'wget' serve para baixar um arquivo.
wget ftp://gsapubftp-anonymous@ftp.broadinstitute.org/bundle/2.8/b37/human_g1k_v37.fasta.gz
gunzip human_g1k_v37.fasta.gz # gunzip para descompactar o arquivo .gz

# Saiba mais sobre as versões usadas no 1000 genomas aqui:
# http://www.1000genomes.org/faq/which-reference-assembly-do-you-use

# esse comando vai criar uma variável que representa o caminho para o
# genoma e pode ser acessada pelo terminal
hg19=$mydir/reference/human_g1k_v37.fasta

# Entenda mais sobre as versões do genoma no link abaixo
# http://en.wikipedia.org/wiki/Reference_genome

# Observe que o arquivo tem a extensão 'fasta'
# Em poucas palavras, um arquivo fasta é um arquivo texto com sequências.
# Nesse arquivo do genoma humano, cada sequência é um dos cromossomos
# humanos, e mais algumas sequências de regiões ainda não montadas
# completamente, ou de DNA mitocondrial.
# Você pode ler mais sobre as especificações do arquivo fasta nos links abaixo.
# http://rosalind.info/glossary/fasta-format/
# http://en.wikipedia.org/wiki/FASTA_format

# Para visualizar um arquivo de texto, você pode usar o comando "less". Por exemplo:

less $hg19

# Pressione "q" para sair

# Você vai observar que o arquivo contem, além das sequências, os nomes (rótulos)
# da cada sequência. As linhas com esses nomes têm um sinal de maior (">") logo
# no início. Você pode usar o comando "grep" para ver quais os nomes das sequências
# que estão no arquivo do hg19. Por exemplo:

grep '^>' $hg19
# o sinal circunflexo diz para o grep que você só quer pegar o sinal ">" que esteja
# no início da linha.

# AMOSTRAS
# Agora vamos criar um diretório e baixar os arquivos das sequências que deverão ser mapeadas
cd .. # vai para o diretório pai
mkdir data
cd data

# O "1000 genomas" é um projeto que tem o objetivo de encontrar as variantes mais
# frequentes em diferentes populações. Foram escolhidas mais de 1000 pessoas com
# origens diferentes (afro-americanos, europeus, asiáticos, etc.) e o genoma dessas
# pessoas foi utilizado para encontrar as frequências das variações em cada população,
# além de deixar públicos os dados brutos das sequências.
# Saiba mais sobre o projeto "1000 genomas": http://www.1000genomes.org/

# O sequenciamento das amostras do 1000 genomas foi feito usando o método pareado
# ("paired-end"). Nesse método, a máquina que faz o sequenciamento faz a leitura
# das sequências de duas formas, que é usando cada uma das pontas da sequência
# gerada como início (ou seja, uma leitura do começo para o final, e outra do
# final para o começo). Essa leituras são colocadas em arquivos diferentes,
# mas têm o mesmo nome, só mudando a indicação de se é a sequência 1 (do
# início) ou a 2 (do fim). Depois de baixar as amostras, vamos ver isso.
# Também há um arquivo separado com as sequências cujo par não foi encontrado.
# Saiba mais sobre o sequnciamento pareado ("paired-end"):
# http://en.wikipedia.org/wiki/Paired-end_tag
# http://www.cureffi.org/2012/12/19/forward-and-reverse-reads-in-paired-end-sequencing/
# http://technology.illumina.com/technology/next-generation-sequencing/paired-end-sequencing_assay.html

# Baixando dados das sequências de uma amostra do projeto 1000 genomas
# Sequências do início
wget ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/data/HG01242/sequence_read/SRR100169_1.filt.fastq.gz
# Sequências do fim
wget ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/data/HG01242/sequence_read/SRR100169_2.filt.fastq.gz
# Sequências sem par
wget ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/data/HG01242/sequence_read/SRR100169.filt.fastq.gz

# Vamos criar variáveis para referenciar o caminho completo das sequências
R1=$mydir/data/SRR100169_1.filt.fastq.gz
R2=$mydir/data/SRR100169_2.filt.fastq.gz
SINGLE=$mydir/data/SRR100169.filt.fastq.gz

# Vamos visualizar um dos arquivos "fastq". Como ele está compactado,
# vamos usar o comando "zcat". Como não queremos que todo o conteúdo
# do arquivo seja jogado de uma vez só na tela, vamos usar o comando
# "less" para abrir o conteúdo do arquivo e olhá-lo com calma.
# Para pegar a saída de um programa (ex: zcat) e direcionar para a entrada
# de outro programa (ex: less), usamos o sinal da barra vertical ("|"),
# também conhecido como "pipe". Por exemplo:
zcat $R1 | less # Lembre-se de pressionar "q" para sair

# Observação: os dois comandos acima podem ser resumidos usando-se 
# o comando "zless" (ex: zless $R1).

# O comando "wc" ("word count") serve para contar palavras em um
# arquivo. Mas além de contar palavras, ele também tem uma opção
# para contar linhas (-l). Por exemplo:
wc -l $R1 # isso vai contar o número de linhas do arquivo $R1

# Arquivos "fastq" são uma extensão do arquivo "fasta",
# mas que possibilita incluir a qualidade das bases.
# Essa qualidade é importante para sabermos o quanto devemos confiar
# se cada base é mesmo o que foi lido no processo de sequenciamento.
# No arquivo "fastq", as sequências são mostradas a cada 4 linhas.
# Veja isso usando o comando "head", que mostra as primeiras linhas
# de um arquivo texto (use a opção -n para definir a quantidade,
# que por padrão é de 10 linhas). Nos exemplos abaixo, serão mostradas
# a 8 primeiras linhas (ou seja, 2 sequências de cada arquivo. Compare
# os nomes das sequências de R1 com as sequências de R2.
zcat $R1 | head -n8
zcat $R2 | head -n8

# A primeira linha, que inicia com "@", apresenta o nome da sequência
# (no arquivo "fasta" era o símbolo ">", lembra?).
# A segunda linha apresenta a sequência propriamente dita.
# A terceira linha contem somente um sinal de "+".
# A quarta linha contem as qualidades de cada letra representada na
# 2a linha (cada caractere representa um valor de qualidade da base).
# Entenda mais sobre o formato de arquivo de sequências "fastq"
# http://en.wikipedia.org/wiki/FASTQ_format
# http://maq.sourceforge.net/fastq.shtml
# http://rosalind.info/problems/tfsq/

# Exercícios
# 1 - Quantas sequências há em cada arquivo?
numero_de_linhas=`zcat $R1 | wc -l`
expr $numero_de_linhas / 4
# ou, em uma linha só...
zcat $R1 | echo $((`wc -l`/4))

# O número de linhas/sequências do arquivo R2 deve ser exatamente
# igual ao número de linhas do arquivo R1, pois para cada sequência
# do arquivo R1, há o par correspondente no arquivo R2.

# Infelizmente, não podemos fazer como nos arquivos "fasta",
# buscando pelas linhas que começam com "@" com o grep e 
# depois contá-las. Isso porque o caracter "@" também é
# usado como caracter de qualidade, então ele não só aparece
# no início das linhas com nomes (o mesmo ocorre com o "+").


# 2 - Como imprimir somente os nomes (labels) das sequências (reads)?
zcat $R1 | awk 'NR % 4 == 1' | less
# Observação: o programa "awk" está sendo usado para verificar uma
# condição, que é se a linha sendo lida é a primeira de uma série de 4
# (ou seja, se o número da linha dividido por 4 deixa resto 1)