Imagem por Wikimedia Commons sob licença CC BY-SA 4.0

Ao longo da minha trajetória na bioinformática, deparei-me com algumas oportunidades de aprendizado que possuíam uma barreira de ativação não trivial. Particularmente para aqueles que, como eu, vieram de um background em ciências biológicas, certos obstáculos técnicos e conceituais podem surgir e a busca por ferramentas que nos ajudem a transpor esses desafios torna-se essencial. Com este post, meu objetivo é não apenas compartilhar reflexões sobre minha recente experiência com o livro “An Introduction to Statistical Learning with Applications in Python”, mas também apresentar ferramentas e táticas que considero valiosas para enfrentar problemas comuns na transição para a bioinformática. Sem mais demora, espero que possa ser útil. Os links para todas as ferramentas que eu citar estarão ao fim do artigo.

1. Um Livro para Todos, Mas Não Necessariamente para Estatísticos

Originalmente aclamado como um clássico para aprendizado estatístico em R, este livro agora se reinventa com uma abordagem voltada para Python. Adaptado para atender a uma ampla gama de profissionais, ele serve como um guia prático não apenas para estatísticos (ou, principalmente, para NÃO estatísticos), mas para qualquer um que busque aplicar estatística em sua área de atuação. Seja você um bioinformata, um engenheiro, um médico ou um cientista de dados, este livro oferece uma abordagem prática e acessível à aprendizagem estatística.

A abordagem pode não agradar alguns: a simplificação de conceitos com certeza tem limitações, mas você não precisa saber montar um carro para poder pilotar um. Este livro vai te explicar como o carro funciona para que você possa pilotar, mas nada te impede de procurar um mecânico se precisar e talvez aprender um pouco de mecânica para não ser enganado. (se eu soubesse disso antes talvez não tivesse feito duas graduações, por sinal)

2. Python e R: A Convergência das Linguagens na Bioinformática

Como já dito, originalmente o livro foi escrito com foco em R, uma linguagem intrinsecamente centrada em análises estatísticas. No entanto, a versatilidade e a ampla aplicabilidade do Python tornaram essencial uma adaptação que abrangesse essa linguagem. Não é por acaso que, em bioinformática, essa dualidade é a regra: a maioria dos pacotes é desenvolvida ou em R ou em Python. A obra, embora não mergulhe profundamente em todas as nuances, fornece instruções claras sobre comandos e ferramentas básicas para manipular matrizes, dataframes, gráficos e outros elementos essenciais. De maneira que você não tenha lá tanta experiência nas linguagens conseguirá acompanhar.

3. Estudando Exercícios com ChatGPT

Ao abordar os exercícios do livro, não me limitei a consultar as respostas não oficiais. Em vez disso, adotei uma abordagem interativa com o ChatGPT (GPT-4), aplicando algumas técnicas de prompt engineering. (Escrevi sobre isso num artigo publicado, vale a pena dar uma olhada):

  1. Contextualização: Instruo o ChatGPT (GPT-4) sobre o contexto, informando que estou estudando o livro e buscando um parceiro de diálogo para as questões. A ideia é que ele possa assumir uma persona que seja cuidadoso no sentido de explicar cada conceito usado.
  2. Apresentação da Questão: Forneço ao ChatGPT(GPT-4) as perguntas do livro e apresento as respostas não oficiais para que ele tenha uma base de comparação.
  3. Diálogo e exercício de respostas: Ítem a ítem deixo meus pensamentos mais livres para escrever, refletir e perguntar ao chat sem as travas que teria ao responder um questionário que seria avaliado para nota. Dessa maneira, sem compromisso com o erro, posso me concentrar em quais perguntas seriam mais essenciais para avaliar a questão

Caso você queira dar uma olhada nas primeiras interações desse tipo, estou tentando registrar a interação no repositório do github dedicado a isso de maneira experimental.

4. Ferramentas Modernas: Windows Subsystem for Linux, VsCode, Jupyter Notebooks e AppFlowy

Partindo da premissa que a maioria dos profissionais de bioinformática com background em biológicas teve pouca interação com o linux e IDEs (ambientes de desenvolvimento) anteriormente, escolher que ferramentas vão intermediar sua interação com o sistema são essenciais para que os degraus sejam suaves. Idealmente você poderia usar o terminal puro para tudo (e ter boas noções disso é importante haja visto que não são pucas situações onde tudo que você terá para trabalhar é um terminal), mas minha experiência com os ICs (alunos de iniciação científica) do laboratório em que atuo mostram que essas ferramentas podem ajudar.

Tenho utilizado o Windows Subsystem for Linux (WSL) para ter acesso a um ambiente Linux diretamente no meu sistema Windows, o que tem facilita para alunos que não estão acostumados e compartilham do medo de instalarem o linux diretamente na máquina. Ao contrário do que os mais puristas dizem, o WSL está com cada vez menos limitações e é um degrau importante para um primeiro contato com o linux. Além disso, o VsCode tem sido meu editor de código de escolha, oferecendo uma interface amigável e uma série de extensões úteis.

Essas duas indicações na verdade são para culminar em uma coisa: Jupyter Notebooks. O livro fornece todos os laboratórios sob a forma de Jupyter Notebooks para serem baixados. Longe de querer explicar estensivamente o que são notebooks, para esse texto basta você saber que eles são formas que permitirão um ciclo de tentativa/erro muito rápido e tranquilo, facilitando o pensamento expeculativo e experimentação (que basicamente é tudo que um aluno interessado precisa). Facilmente você integra código, texto e gráficos a partir dessa ferramenta, de maneira que foi uma escolha muito feliz dos autores.

Uso de código, texto e gráficos ao mesmo tempo. Clique para fonte

Há muitas maneiras que não essa de você utilizar notebooks, em um curso no qual pude ser instrutor enquanto trabalhava na TauGC utilizamos o Google Colab com bastante sucesso. Caso seja essa sua onda, pode surfar sem medo, mas eu realmente vejo virtudes em instalar o jupyter na sua máquina local e utilizar a través do Linux/WSL/VsCode.

Por fim, ainda que de forma menos essencial, uma boa plataforma de notas pode ajudar muito. Tive ótimas experiências com o Notion enquanto trabalhava, mas ele possui pelo menos um grave defeito: ele é pago, haha. Para os mesmos fins tenho utilizado o AppFlowy, gratuito e open source, com bastante sucesso para um uso pessoal, sem interação com outras pessoas e sem coneção com a nuvem.


Em conclusão, o livro “An Introduction to Statistical Learning with Applications in Python” aparenta ser um bom um guia didático, mais uma ferramenta que me orienta através do caminho da bioinformática e do aprendizado estatístico. Ao combinar teoria com prática, ele oferece uma abordagem acessível que é raramente encontrada em literaturas similares. As ferramentas e táticas que recomendei ao longo deste texto não só servem ao meu entendimento, mas podem te equipar com habilidades práticas para enfrentar desafios futuros bastante diversos.

Caso goste do conteúdo do meu trabalho, visite também minhas redes (links na parte inferior) ou entre em contato!

Abraços!

Sumário de Recursos e Ferramentas: