Estruturas de Dados para Bioinformática
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciência de Computadores |
Ocorrência: 2024/2025 - 2S

Ciclos de Estudo/Cursos
Docência - Responsabilidades
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
O objetivo desta UC é desenvolver a capacidade de utilizar uma linguagem de programação (Python) como um instrumento de análise científica. A partir deste curso irá ser possível desenvolver programas complexos e automatizar tarefas práticas de exploração de dados, e oferecer uma introdução à extração, processamento, e visualização de dados, em particular dados biomédicos de uso real, i.e., com dimensionalidade, heterogeneidade e volume não triviais. Será dada especial atenção ao ecossistema de análise de dados do Python e às suas potentes bibliotecas de manipulação de dados (e.g. numpy, pandas), processamento científico e estatístico (e.g. scipy), visualização (e.g. matplotlib) ou análise avançada de dados utilizando outras bibliotecas de domínio.
Resultados de aprendizagem e competências
O estudante deverá ser capaz de:
- Utilizar com confiança as estruturas de dados básicas do Python e estruturas de dados avançadas que permitem a manipulação eficiente de grandes volumes de dados (e.g. pandas ou numpy).
- Programar com o nível adequado de abstração e encapsulamento.
- Produzir código correto, bem estruturado e bem documentado.
- Extrair e processar dados de fontes diversas em diferentes formatos (e.g., textuais, numéricos, tabulares ou semiestruturados), desde formatos genéricos a formatos de dados biomédicos.
Utilizar bibliotecas externas para visualização de dados numéricos e biomédicos (e.g. dados demográficos, dados de expressão génica).
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
É preferencial alguma familiaridade básica com a linguagem Python e o seu ambiente de desenvolvimento.
Programa
Tipos de dados para coleções: listas, tuplos, dicionários e conjuntos. Definição de novos tipos: noção de classe, objetos e métodos. Estruturação de código utilizando módulos. Três princípios básicos de programação: encapsulamento, abstração, e separação de conceitos.
Introdução ao ecossistema de computação científica do Python.
Introdução à criação, extração e processamento de dados (e.g. uso de numpy). Leitura de dados em diferentes formatos e conversão em estruturas de dados Python. Manipulação e tratamento de dados programaticamente (e.g. uso de Pandas). Introdução à visualização de dados e geração de gráficos (e.g matplotlib). Visualização de dados numéricos e biomédicos (e.g. geração de boxplots para comparar distribuições, geração de heatmaps para visualização de dados genómicos).
Bibliografia Obrigatória
Allen Downey;
How to think like a computer scientist. ISBN: 0-9716775-0-6
Bibliografia Complementar
Daniel Y. Chen; Pandas for Everyone, Addison-Wesley
Jake VanderPlas; Python data science handbook: Essential tools for working with data., O'Reilly Media, Inc (https://jakevdp.github.io/PythonDataScienceHandbook/)
Wes McKinney; Python for data analysis: Data wrangling with Pandas, NumPy, and IPython, O'Reilly Media, Inc
Christian Hill; Learning Scientific Programming with Python 2nd Edition, Cambridge University Press, 2020. ISBN: 1108745911 (https://scipython.com/book2/)
Martin Jones; Biological data exploration with Python, pandas and seaborn: Clean, filter, reshape and visualize complex biological datasets using the scientific Python stack, Independently published, 2020 (https://pythonforbiologists.com/)
Métodos de ensino e atividades de aprendizagem
- Aulas teóricas em parte expositivas e em parte demonstrativas da resolução de problemas.
- Aulas práticas em laboratório.
- Trabalhos de casa.
Software
Pycharm Community Edition
Palavras Chave
Ciências Físicas > Ciência de computadores > Programação
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Designação |
Peso (%) |
Trabalho prático ou de projeto |
70,00 |
Prova oral |
30,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
106,00 |
Frequência das aulas |
56,00 |
Total: |
162,00 |
Obtenção de frequência
Todos os estudantes que submetam os trabalhos práticos obtêm a frequência.
Fórmula de cálculo da classificação final
A avaliação será feita através de um trabalho prático individual (70%), a ser desenvolvido durante as aulas práticas e incluindo tarefas adicionais de trabalho de casa. Está prevista também uma prova oral para defesa do trabalho (30%).
A nota final será a soma das notas do trabalho e da prova oral.
Avaliação especial (TE, DA, ...)
Estudantes com estatuto de trabalhador estudante ou com acesso à época especial poderão submeter o trabalho prático completo.
Os estudantes com outras circunstâncias especiais devem discutir a sua situação com o responsável.
Melhoria de classificação
O trabalho prático pode ser melhorado e entregue em época de recurso, e nesse caso será exigida nova funcionalidade.