Introdução ao DNA
O ácido desoxirribonucleico (DNA) é a molécula que carrega a informação genética para o desenvolvimento, funcionamento, crescimento e reprodução de todos os organismos conhecidos e muitos vírus.
estrutura do DNA
O DNA é uma molécula de dupla hélice, composta por duas cadeias que se enrolam uma na outra.
Composição dos Nucleotídeos
Cada nucleotídeo é composto por três partes:
- Grupo Fosfato: Ligação entre nucleotídeos
- Açúcar (Desoxirribose): estrutura da cadeia
- Base Nitrogenada: Informação genética
Bases Nitrogenadas
Existem quatro tipos de bases nitrogenadas no DNA:
- Adenina (A): Pareia com Timina (T)
- Guanina (G): Pareia com Citosina (C)
- Citosina (C): Pareia com Guanina (G)
- Timina (T): Pareia com Adenina (A)
DNA e Câncer
Danos ao DNA podem levar a mutações, que são alterações na sequência de nucleotídeos:
- Mutações em Genes Reguladores: Controle do ciclo celular
- Acúmulo de Mutações: Transformação maligna
- Mecanismos de Reparo: Proteção contra danos
- Instabilidade Genômica: Característica do câncer
Aplicações Computacionais
Análise de Sequências
Instale o Biopython uma vez no ambiente:
bash
pip install biopythonpython
# NOTE: Exemplo educacional; não é um pipeline validado de análise.
from collections import Counter
from pathlib import Path
from Bio import SeqIO
from Bio.SeqUtils import gc_fraction
EXEMPLO_FASTA = Path("gene.fasta")
def escrever_fasta_exemplo(path: Path = EXEMPLO_FASTA) -> None:
"""Cria um FASTA pequeno para o exemplo rodar de ponta a ponta."""
path.write_text(
">gene_example\n"
"ATGCGTACGTACGTACGTAGCTAGCTAGCTACGTAGCTACGTAGCATGCTAGCTAGCTAGC\n"
"TAGCTAGCTAGCTAGCTAGCTAGCTACGTAGCTAGCTAGCTAGCTAGCTACGTAGCTAGCTAGC\n",
encoding="utf-8",
)
def analisar_sequencia_dna(sequence_file: str | Path) -> dict:
"""Analisa uma sequência FASTA de DNA com estatísticas educacionais básicas."""
record = SeqIO.read(str(sequence_file), "fasta")
dna_seq = str(record.seq).upper()
bases_permitidas = {"A", "C", "G", "T", "N"}
bases_invalidas = sorted(set(dna_seq) - bases_permitidas)
if bases_invalidas:
raise ValueError(f"Bases inesperadas no FASTA: {', '.join(bases_invalidas)}")
base_counts = Counter(dna_seq)
bases_canonicas = sum(base_counts[base] for base in "ACGT")
gc_content = gc_fraction(dna_seq) * 100
at_ratio = base_counts["A"] / base_counts["T"] if base_counts["T"] else None
gc_ratio = base_counts["G"] / base_counts["C"] if base_counts["C"] else None
return {
"record_id": record.id,
"length": len(dna_seq),
"canonical_base_count": bases_canonicas,
"gc_content": gc_content,
"base_counts": dict(base_counts),
"at_ratio": at_ratio,
"gc_ratio": gc_ratio,
}
escrever_fasta_exemplo()
results = analisar_sequencia_dna(EXEMPLO_FASTA)
print(f"Registro: {results['record_id']}")
print(f"Comprimento: {results['length']} bp")
print(f"Conteúdo GC: {results['gc_content']:.1f}%")
print(
f"Relação A/T: {results['at_ratio']:.2f}"
if results["at_ratio"] is not None
else "Relação A/T: n/a"
)Detecção de Mutações
python
def detect_mutations(reference_seq, sample_seq):
"""Detecta mutações entre sequências de referência e amostra."""
mutations = []
# Comparar posição por posição
for i, (ref_base, sample_base) in enumerate(zip(reference_seq, sample_seq)):
if ref_base != sample_base:
mutation = {
'position': i + 1,
'reference': ref_base,
'sample': sample_base,
'type': classify_mutation(ref_base, sample_base)
}
mutations.append(mutation)
return mutations
def classify_mutation(ref_base, sample_base):
"""Classifica o tipo de mutação."""
# Transições (purina ↔ purina, pirimidina ↔ pirimidina)
purines = {'A', 'G'}
pyrimidines = {'C', 'T'}
if (ref_base in purines and sample_base in purines) or \
(ref_base in pyrimidines and sample_base in pyrimidines):
return "Transição"
else:
return "Transversão"
# Exemplo
ref = "ATGCGATCGATCG"
sample = "ATGCGCTCGATCG"
mutations = detect_mutations(ref, sample)
for mut in mutations:
print(f"Posição {mut['position']}: {mut['reference']} → {mut['sample']} ({mut['type']})")Técnicas de Análise
- Sequenciamento: Determinação da ordem das bases
- PCR: Amplificação de regiões específicas
- Southern Blot: Detecção de sequências específicas
- Hibridização: Identificação de sequências complementares
Recursos de Aprendizado
- Livros: Watson et al., Molecular Biology of the Gene
- Cursos: Khan Academy: estrutura e replicação do DNA, Coursera Bioinformatics Specialization
- Ferramentas: NCBI, Ensembl, DNA Data Bank of Japan
Se essas mutações ocorrerem em genes que controlam o ciclo celular, elas podem levar ao desenvolvimento de câncer.