Introdução à Programação em Python para Ciências Biológicas 🧬🐍

Este notebook apresenta uma série de exercícios básicos em Python, com aplicações voltadas às Ciências Biológicas.


1. Variáveis e Tipos de Dados

Exercício 1.1 – Saudação biológica

Crie uma variável chamada pesquisador e atribua a ela o seu nome. Em seguida, imprima a mensagem:
"Bem-vindo(a), pesquisador(a) <nome> ao laboratório de biologia computacional!"

pesquisador = "Ana"
print(f"Bem-vindo(a), pesquisador(a) {pesquisador} ao laboratório de biologia computacional!")
## Bem-vindo(a), pesquisador(a) Ana ao laboratório de biologia computacional!

Exercício 1.2 – Informações de um espécime

Crie variáveis para representar o nome de uma espécie (especie), o seu peso médio (peso) e a sua expectativa de vida (expectativa_vida). Em seguida, imprima uma frase com essas informações.

especie = "Panthera onca"  # onça-pintada
peso = 90  # em kg
expectativa_vida = 12  # em anos
print(f"A espécie {especie} tem peso médio de {peso} kg e vive cerca de {expectativa_vida} anos.")
## A espécie Panthera onca tem peso médio de 90 kg e vive cerca de 12 anos.

2. Operadores Aritméticos

Exercício 2.1 – Cálculo da área foliar

Sabendo que a área de uma folha pode ser estimada por um círculo com raio de 4 cm, calcule a área da folha. Use a fórmula: área = π × raio²

import math

raio = 4  # em cm
area = math.pi * raio ** 2
print(f"A área estimada da folha é {area:.2f} cm².")
## A área estimada da folha é 50.27 cm².

Exercício 2.2 – Conversão de temperatura

Converta uma temperatura corporal de uma ave de 41°C para Fahrenheit. Use a fórmula: F = C × 9/5 + 32

temperatura_celsius = 41
temperatura_fahrenheit = temperatura_celsius * 9/5 + 32
print(f"A temperatura em Fahrenheit é {temperatura_fahrenheit:.2f}°F.")
## A temperatura em Fahrenheit é 105.80°F.

3. Estruturas Condicionais

Exercício 3.1 – Classificação etária de um animal

Informe a idade de um animal (em anos) e classifique como “jovem” se for menor que 2, “adulto” entre 2 e 10, e “idoso” acima de 10.

Código:

idade = 4

idade = int(input(“Digite a idade do animal (em anos):”))

if idade < 2:

print(“O animal é jovem.”)

elif idade <= 10: print(“O animal é adulto.”)

else: print(“O animal é idoso.”)

Exercício 3.2 – Verificação de pH

Peça ao usuário um valor de pH e classifique o meio como:

Ácido (pH < 7)

Neutro (pH == 7)

Básico (pH > 7)

Código:

ph = float(input(“Digite o valor de pH da amostra:”))

if ph< 7:

print(“Meio ácido.”)

elif ph == 7: print(“Meio neutro.”)

else: print(“Meio básico.”)

4. Laços de Repetição

Exercício 4.1 – Contagem de células

Imprima a contagem de células observadas no microscópio, de 1 a 10.

for celula in range(1, 11):
  print(f"Célula {celula} observada.")
## Célula 1 observada.
## Célula 2 observada.
## Célula 3 observada.
## Célula 4 observada.
## Célula 5 observada.
## Célula 6 observada.
## Célula 7 observada.
## Célula 8 observada.
## Célula 9 observada.
## Célula 10 observada.

Exercício 4.2 – Crescimento populacional

Mostre o crescimento de uma população bacteriana que dobra a cada hora. Começando com 1 bactéria, calcule o total após 10 horas.

populacao = 1

for hora in range(1, 11):
  populacao *= 2
  print(f"Hora {hora}: {populacao} bactérias")
## Hora 1: 2 bactérias
## Hora 2: 4 bactérias
## Hora 3: 8 bactérias
## Hora 4: 16 bactérias
## Hora 5: 32 bactérias
## Hora 6: 64 bactérias
## Hora 7: 128 bactérias
## Hora 8: 256 bactérias
## Hora 9: 512 bactérias
## Hora 10: 1024 bactérias

5. Listas

Exercício 5.1 – Lista de espécies

Crie uma lista com 5 espécies ameaçadas da Mata Atlântica e imprima uma mensagem para cada uma delas.

especies = ["muriqui", "anta", "onça-pintada", "tamanduá-bandeira", "jacu"]

for especie in especies:
  print(f"A espécie {especie} precisa de conservação urgente!")
## A espécie muriqui precisa de conservação urgente!
## A espécie anta precisa de conservação urgente!
## A espécie onça-pintada precisa de conservação urgente!
## A espécie tamanduá-bandeira precisa de conservação urgente!
## A espécie jacu precisa de conservação urgente!

Exercício 5.2 – Coleta de dados de massa

Informe 5 massas (em gramas) de sementes coletadas e armazene-as em uma lista. Depois, imprima:

A lista completa

O maior valor

O menor valor

A média

Código:

massas = []

for i in range(5):

massa = float(input(f”Digite a massa da semente {i+1} (em g): “))

massas.append(massa)

print(“Massas coletadas:”, massas)

print(“Maior massa:”, max(massas))

print(“Menor massa:”, min(massas))

print(“Média das massas:”, sum(massas)/len(massas))

6. Funções

Exercício 6.1 – Função de boas-vindas

def saudacao(nome):
  print(f"Olá, {nome}, bem-vindo(a) ao laboratório de Bio Computacional!")
  
saudacao("Obama")
## Olá, Obama, bem-vindo(a) ao laboratório de Bio Computacional!

Exercício 6.2 – Verificação de DNA válido

Crie uma função que receba uma sequência de DNA e retorne True se ela for válida (contendo apenas A, T, C ou G), e False caso contrário.

def dna_valido(sequencia):
  bases_validas = {"A", "T", "C", "G"}
  for base in sequencia:
    if base.upper() not in bases_validas:
      return False
    return True

Teste

print(dna_valido("ATGCGT"))  # True
## True
print(dna_valido("ATXG"))    # False
## True

7. Calculadora de taxa metabólica basal

Crie uma função que calcule a Taxa Metabólica Basal (TMB) de um animal a partir da massa corporal (em kg) e uma constante metabólica (k). Use a fórmula: TMB = k × massa^0.75

def calcular_tmb(massa, k):
  return k * (massa ** 0.75)

massa_animal = 35  # em kg
k_metabolico = 70  # constante fictícia
tmb = calcular_tmb(massa_animal, k_metabolico)
print(f"A taxa metabólica basal estimada é {tmb:.2f} kcal/dia.")
## A taxa metabólica basal estimada é 1007.28 kcal/dia.

Exercício Integrador 1 – Análise de Sequência de DNA

Você recebeu uma sequência de DNA e precisa implementar um programa que faça as seguintes análises:

  1. Validar a sequência (conter apenas os nucleotídeos A, T, C, G);
  2. Calcular a frequência de cada nucleotídeo na sequência;
  3. Determinar a porcentagem de conteúdo GC (Guanina + Citosina);
  4. Classificar a sequência quanto ao conteúdo GC:
    • “Baixo” se < 40%
    • “Moderado” se entre 40% e 60%
    • “Alto” se > 60%

Exemplo de entrada:

sequencia = "ATGCGCGTTAACG"

Saída esperada:

Sequência válida: True Frequência de nucleotídeos: {‘A’: 3, ‘T’: 3, ‘C’: 3, ‘G’: 4} Conteúdo GC: 53.85% Classificação do conteúdo GC: Moderado

código


def validar_dna(seq):
    bases_validas = {'A', 'T', 'C', 'G'}
    return all(base in bases_validas for base in seq.upper())

def contar_nucleotideos(sequencia):
    sequencia = sequencia.upper()
    contagem = {}
    bases = ['A', 'T', 'C', 'G']
    for base in bases:
        contagem[base] = sequencia.count(base)

    return contagem

def calcular_gc(seq):
    seq = seq.upper()
    total = len(seq)
    gc = seq.count('G') + seq.count('C')
    return (gc / total) * 100

def classificar_gc(gc_percentual):
    if gc_percentual < 40:
        return "Baixo"
    elif gc_percentual <= 60:
        return "Moderado"
    else:
        return "Alto"

Exemplo de uso

sequencia = "ATGCGCGTTAACG"

if validar_dna(sequencia):
    print("Sequência válida: True")
    freq = contar_nucleotideos(sequencia)
    print("Frequência de nucleotídeos:", freq)
    
    gc_percentual = calcular_gc(sequencia)
    print(f"Conteúdo GC: {gc_percentual:.2f}%")
    
    classificacao = classificar_gc(gc_percentual)
    print("Classificação do conteúdo GC:", classificacao)
else:
    print("Sequência válida: False")
## Sequência válida: True
## Frequência de nucleotídeos: {'A': 3, 'T': 3, 'C': 3, 'G': 4}
## Conteúdo GC: 53.85%
## Classificação do conteúdo GC: Moderado

Exercício Integrador 2 – Análise de Crescimento de Plantas

Problema: Um experimento foi realizado para acompanhar o crescimento de uma planta em diferentes condições de luz. Foram coletadas alturas (em cm) da planta durante 5 dias consecutivos, e deseja-se:

  1. Armazenar essas alturas em uma lista;
  2. Calcular o crescimento total e a média de crescimento diário;
  3. Verificar se a planta cresceu de forma constante (diferença entre dias semelhante);
  4. Classificar o padrão de crescimento como:
    • “Constante”, se a variação diária for praticamente a mesma (diferença máxima entre os crescimentos ≤ 0.5 cm);
    • “Irregular”, caso contrário.

Implemente um programa que execute essa análise a partir de uma lista de alturas fornecida. Use funções sempre que possível.

Exemplo de entrada:

alturas = [10.0, 11.2, 12.3, 13.5, 14.7]