Communitygithub.com

biopython

Kit de herramientas integral de biología molecular. Útil para manipulación de secuencias, análisis de archivos (FASTA/GenBank/PDB), filogenética y acceso programático a NCBI/PubMed (Bio.Entrez). Ideal para procesamiento por lotes, pipelines personalizados de bioinformática y automatización de BLAST.

¿Qué es biopython?

Biopython es un conjunto completo y gratuito de herramientas de Python para computación biológica. Proporciona funcionalidades para manipulación de secuencias (ADN, ARN, proteínas), lectura y escritura de formatos biológicos comunes (FASTA, GenBank, FASTQ, PDB), acceso programático a bases de datos de NCBI (GenBank, PubMed) y ejecución de búsquedas BLAST. También incluye módulos para alineamiento de secuencias, análisis de estructuras de proteínas (Bio.PDB), filogenética (Bio.Phylo) y análisis de motivos. La versión actual (1.87) soporta Python 3.10-3.14 y PyPy3.10, y requiere NumPy. Es ideal para pipelines de bioinformática personalizados, procesamiento por lotes de datos genómicos y análisis estructurales. Para consultas rápidas de datos, se recomienda gget; para integración de múltiples servicios, bioservices.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/biopython

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Biopython: Biología Molecular Computacional en Python

Resumen

Biopython es un conjunto completo de herramientas de Python de libre acceso para la computación biológica. Proporciona funcionalidad para la manipulación de secuencias, entrada/salida de archivos, acceso a bases de datos, bioinformática estructural, filogenética y muchas otras tareas bioinformáticas. La versión actual es Biopython 1.87 (publicada el 30 de marzo de 2026). Soporta Python 3.10-3.14 y PyPy3.10, y requiere NumPy. Biopython 1.87 también aborda CVE-2025-68463 en Bio.Entrez.Parser al analizar archivos no confiables, por lo que se prefiere la versión 1.87+ para flujos de trabajo que analizan XML de Entrez suministrados externamente.

Cuándo Usar Esta Habilidad

Use esta habilidad cuando:

  • Trabaje con secuencias biológicas (ADN, ARN o proteínas)
  • Lea, escriba o convierta formatos de archivos biológicos (FASTA, GenBank, FASTQ, PDB, mmCIF, etc.)
  • Acceda a bases de datos de NCBI (GenBank, PubMed, Proteína, Gen, etc.) a través de Entrez
  • Ejecute búsquedas BLAST o analice resultados de BLAST
  • Realice alineamientos de secuencias (pareados o múltiples)
  • Analice estructuras de proteínas a partir de archivos PDB
  • Cree, manipule o visualice árboles filogenéticos
  • Encuentre motivos de secuencia o analice patrones de motivos
  • Calcule estadísticas de secuencias (contenido GC, peso molecular, temperatura de fusión, etc.)
  • Realice tareas de bioinformática estructural
  • Trabaje con datos de genética de poblaciones
  • Cualquier otra tarea de biología molecular computacional

Capacidades Principales

Biopython está organizado en subpaquetes modulares, cada uno abordando dominios bioinformáticos específicos:

  1. Manejo de Secuencias - Bio.Seq y Bio.SeqIO para manipulación de secuencias y E/S de archivos
  2. Análisis de Alineamientos - Bio.Align y Bio.AlignIO para alineamientos pareados y múltiples
  3. Acceso a Bases de Datos - Bio.Entrez para acceso programático a bases de datos de NCBI
  4. Operaciones BLAST - Bio.Blast para ejecutar y analizar búsquedas BLAST
  5. Bioinformática Estructural - Bio.PDB para trabajar con estructuras 3D de proteínas
  6. Filogenética - Bio.Phylo para manipulación y visualización de árboles filogenéticos
  7. Características Avanzadas - Motivos, genética de poblaciones, utilidades de secuencias y más

Instalación y Configuración

Instale la versión estable actual de Biopython con una versión explícita para reproducibilidad:

uv pip install "biopython==1.87"

Para el acceso a bases de datos de NCBI, siempre configure su dirección de correo electrónico (requerido por NCBI). Para software reutilizable, establezca un valor estable de Entrez.tool y registre la herramienta/correo electrónico con NCBI. Para límites de velocidad más altos (10 solicitudes/s en lugar de 3 solicitudes/s), lea solo NCBI_API_KEY del entorno; no codifique claves ni cargue variables de entorno no relacionadas:

import os
from Bio import Entrez

Entrez.email = "[email protected]"  # requerido — use su correo electrónico real
Entrez.tool = "your_tool_name"  # opcional pero recomendado para software reutilizable

# Opcional: regístrese en https://www.ncbi.nlm.nih.gov/account/settings/
if api_key := os.environ.get("NCBI_API_KEY"):
    Entrez.api_key = api_key

Uso de Esta Habilidad

Esta habilidad proporciona documentación completa organizada por área de funcionalidad. Cuando trabaje en una tarea, consulte la documentación de referencia relevante:

1. Manejo de Secuencias (Bio.Seq & Bio.SeqIO)

Referencia: references/sequence_io.md

Úselo para:

  • Crear y manipular secuencias biológicas
  • Leer y escribir archivos de secuencias (FASTA, GenBank, FASTQ, etc.)
  • Convertir entre formatos de archivo
  • Extraer secuencias de archivos grandes
  • Traducción, transcripción y complemento inverso de secuencias
  • Trabajar con objetos SeqRecord

Ejemplo rápido:

from Bio import SeqIO

# Leer secuencias de un archivo FASTA
for record in SeqIO.parse("sequences.fasta", "fasta"):
    print(f"{record.id}: {len(record.seq)} pb")

# Convertir GenBank a FASTA
SeqIO.convert("input.gb", "genbank", "output.fasta", "fasta")

2. Análisis de Alineamientos (Bio.Align & Bio.AlignIO)

Referencia: references/alignment.md

Úselo para:

  • Alineamiento pareado de secuencias (global y local)
  • Leer y escribir alineamientos múltiples
  • Usar matrices de sustitución (BLOSUM, PAM)
  • Calcular estadísticas de alineamiento
  • Personalizar parámetros de alineamiento

Ejemplo rápido:

from Bio import Align

# Alineamiento pareado
aligner = Align.PairwiseAligner()
aligner.mode = 'global'
alignments = aligner.align("ACCGGT", "ACGGT")
print(alignments[0])

3. Acceso a Bases de Datos (Bio.Entrez)

Referencia: references/databases.md

Úselo para:

  • Buscar bases de datos de NCBI (PubMed, GenBank, Proteína, Gen, etc.)
  • Descargar secuencias y registros
  • Obtener información de publicaciones
  • Encontrar registros relacionados entre bases de datos
  • Descarga por lotes con límites de velocidad adecuados

Ejemplo rápido:

from Bio import Entrez
Entrez.email = "[email protected]"

# Buscar en PubMed
handle = Entrez.esearch(db="pubmed", term="biopython", retmax=10)
results = Entrez.read(handle)
handle.close()
print(f"Se encontraron {results['Count']} resultados")

4. Operaciones BLAST (Bio.Blast)

Referencia: references/blast.md

Úselo para:

  • Ejecutar búsquedas BLAST a través de servicios web de NCBI
  • Ejecutar búsquedas BLAST locales
  • Analizar la salida XML de BLAST
  • Filtrar resultados por valor E o identidad
  • Extraer secuencias de coincidencias

Ejemplo rápido:

from Bio.Blast import NCBIWWW, NCBIXML

# Ejecutar búsqueda BLAST
result_handle = NCBIWWW.qblast("blastn", "nt", "ATCGATCGATCG")
blast_record = NCBIXML.read(result_handle)

# Mostrar las mejores coincidencias
for alignment in blast_record.alignments[:5]:
    print(f"{alignment.title}: Valor-E={alignment.hsps[0].expect}")

5. Bioinformática Estructural (Bio.PDB)

Referencia: references/structure.md

Úselo para:

  • Analizar archivos de estructura PDB y mmCIF
  • Navegar la jerarquía de estructura de proteínas (SMCRA: Estructura/Modelo/Cadena/Residuo/Átomo)
  • Calcular distancias, ángulos y diedros
  • Asignación de estructura secundaria (DSSP)
  • Superposición de estructuras y cálculo de RMSD
  • Extraer secuencias de estructuras

Ejemplo rápido:

from Bio.PDB import PDBParser

# Analizar estructura
parser = PDBParser(QUIET=True)
structure = parser.get_structure("1crn", "1crn.pdb")

# Calcular distancia entre carbonos alfa
chain = structure[0]["A"]
distance = chain[10]["CA"] - chain[20]["CA"]
print(f"Distancia: {distance:.2f} Å")

6. Filogenética (Bio.Phylo)

Referencia: references/phylogenetics.md

Úselo para:

  • Leer y escribir árboles filogenéticos (Newick, NEXUS, phyloXML)
  • Construir árboles a partir de matrices de distancia o alineamientos
  • Manipulación de árboles (poda, re-enraizamiento, escalonamiento)
  • Calcular distancias filogenéticas
  • Crear árboles de consenso
  • Visualizar árboles

Ejemplo rápido:

from Bio import Phylo

# Leer y visualizar árbol
tree = Phylo.read("tree.nwk", "newick")
Phylo.draw_ascii(tree)

# Calcular distancia
distance = tree.distance("Species_A", "Species_B")
print(f"Distancia: {distance:.3f}")

7. Características Avanzadas

Referencia: references/advanced.md

Úselo para:

  • Motivos de secuencia (Bio.motifs) - Encontrar y analizar patrones de motivos
  • Genética de poblaciones (Bio.PopGen) - Archivos GenePop, cálculos de Fst, pruebas de Hardy-Weinberg
  • Utilidades de secuencias (Bio.SeqUtils) - Contenido GC, temperatura de fusión, peso molecular, análisis de proteínas
  • Análisis de restricción (Bio.Restriction) - Encontrar sitios de enzimas de restricción
  • Agrupamiento (Bio.Cluster) - Agrupamiento K-means y jerárquico
  • Diagramas genómicos (GenomeDiagram) - Visualización de características genómicas

Ejemplo rápido:

from Bio.SeqUtils import gc_fraction, molecular_weight
from Bio.Seq import Seq

seq = Seq("ATCGATCGATCG")
print(f"Contenido GC: {gc_fraction(seq):.2%}")
print(f"Peso molecular: {molecular_weight(seq, seq_type='DNA'):.2f} g/mol")

Pautas Generales de Flujo de Trabajo

Lectura de Documentación

Cuando un usuario pregunta sobre una tarea específica de Biopython:

  1. Identifique el módulo relevante según la descripción de la tarea
  2. Lea el archivo de referencia apropiado usando la herramienta Read
  3. Extraiga patrones de código relevantes y adáptelos a las necesidades específicas del usuario
  4. Combine múltiples módulos cuando la tarea lo requiera

Ejemplos de patrones de búsqueda para archivos de referencia:

# Encontrar información sobre funciones específicas
rg -n "SeqIO.parse" references/sequence_io.md

# Encontrar ejemplos de tareas específicas
rg -n "BLAST" references/blast.md

# Encontrar información sobre conceptos específicos
rg -n "alignment" references/alignment.md

Escribir Código Biopython

Siga estos principios al escribir código Biopython:

  1. Importe módulos explícitamente

    from Bio import SeqIO, Entrez
    from Bio.Seq import Seq
    
  2. Establezca el correo electrónico de Entrez al usar bases de datos de NCBI; cargue solo NCBI_API_KEY del entorno si está presente

    import os
    from Bio import Entrez
    
    Entrez.email = "[email protected]"
    Entrez.tool = "your_tool_name"
    if api_key := os.environ.get("NCBI_API_KEY"):
        Entrez.api_key = api_key
    
  3. Use formatos de archivo apropiados - Verifique qué formato se adapta mejor a la tarea

    # Formatos comunes: "fasta", "genbank", "fastq", "clustal", "phylip"
    
  4. Maneje archivos correctamente - Cierre los manejadores después de usarlos o use administradores de contexto

    with open("file.fasta") as handle:
        records = SeqIO.parse(handle, "fasta")
    
  5. Use iteradores para archivos grandes - Evite cargar todo en la memoria

    for record in SeqIO.parse("large_file.fasta", "fasta"):
        # Procesar un registro a la vez
    
  6. Maneje errores con gracia - Las operaciones de red y el análisis de archivos pueden fallar

    from urllib.error import HTTPError
    
    try:
        handle = Entrez.efetch(db="nucleotide", id=accession)
    except HTTPError as e:
        print(f"Error: {e}")
    

Patrones Comunes

Patrón 1: Obtener Secuencia de GenBank

from Bio import Entrez, SeqIO

Entrez.email = "[email protected]"

# Obtener secuencia
handle = Entrez.efetch(db="nucleotide", id="EU490707", rettype="gb", retmode="text")
record = SeqIO.read(handle, "genbank")
handle.close()

print(f"Descripción: {record.description}")
print(f"Longitud de la secuencia: {len(record.seq)}")

Patrón 2: Pipeline de Análisis de Secuencias

from Bio import SeqIO
from Bio.SeqUtils import gc_fraction

for record in SeqIO.parse("sequences.fasta", "fasta"):
    # Calcular estadísticas
    gc = gc_fraction(record.seq)
    length = len(record.seq)

    # Encontrar ORFs, traducir, etc.
    protein = record.seq.translate()

    print(f"{record.id}: {length} pb, GC={gc:.2%}")

Patrón 3: BLAST y Obtener las Mejores Coincidencias

from Bio.Blast import NCBIWWW, NCBIXML
from Bio import Entrez, SeqIO

Entrez.email = "[email protected]"

# Ejecutar BLAST
result_handle = NCBIWWW.qblast("blastn", "nt", sequence)
blast_record = NCBIXML.read(result_handle)

# Obtener accesiones de las mejores coincidencias
accessions = [aln.accession for aln in blast_record.alignments[:5]]

# Obtener secuencias
for acc in accessions:
    handle = Entrez.efetch(db="nucleotide", id=acc, rettype="fasta", retmode="text")
    record = SeqIO.read(handle, "fasta")
    handle.close()
    print(f">{record.description}")

Patrón 4: Construir Árbol Filogenético a partir de Secuencias

from Bio import AlignIO, Phylo
from Bio.Phylo.TreeConstruction import DistanceCalculator, DistanceTreeConstructor

# Leer alineamiento
alignment = AlignIO.read("alignment.fasta", "fasta")

# Calcular distancias
calculator = DistanceCalculator("identity")
dm = calculator.get_distance(alignment)

# Construir árbol
constructor = DistanceTreeConstructor()
tree = constructor.nj(dm)

# Visualizar
Phylo.draw_ascii(tree)

Mejores Prácticas

  1. Siempre lea la documentación de referencia relevante antes de escribir código
  2. Use grep para buscar en archivos de referencia funciones o ejemplos específicos
  3. Valide los formatos de archivo antes de analizarlos
  4. Maneje datos faltantes con gracia - No todos los registros tienen todos los campos
  5. Almacene en caché los datos descargados - No descargue repetidamente las mismas secuencias
  6. Respete los límites de velocidad de NCBI - Use claves API, valores registrados de herramienta/correo electrónico para software reutilizable, e historial/agrupación de Entrez para trabajos grandes
  7. Pruebe con conjuntos de datos pequeños antes de procesar archivos grandes
  8. Mantenga Biopython actualizado para obtener las últimas funciones y correcciones de errores
  9. Use tablas de códigos genéticos apropiadas para la traducción
  10. Documente los parámetros de análisis para reproducibilidad

Solución de Problemas Comunes

Problema: "No handlers could be found for logger 'Bio.Entrez'"

Solución: Esto es solo una advertencia. Establezca Entrez.email para suprimirla.

Problema: "HTTP Error 400" de NCBI

Solución: Verifique que los IDs/accesiones sean válidos y estén formateados correctamente.

Problema: "ValueError: EOF" al analizar archivos

Solución: Verifique que el formato del archivo coincida con la cadena de formato especificada.

Problema: El alineamiento falla con "sequences are not the same length"

Solución: Asegúrese de que las secuencias estén alineadas antes de usar AlignIO o MultipleSeqAlignment.

Problema: Las búsquedas BLAST son lentas

Solución: Use BLAST local para búsquedas a gran escala, o almacene en caché los resultados.

Problema: Advertencias del analizador PDB

Solución: Use PDBParser(QUIET=True) para suprimir advertencias, o investigue la calidad de la estructura.

Problema: ImportError para Bio.HMM, Bio.MarkovModel o Bio.Application

Solución: Estos módulos fueron eliminados en Biopython 1.86. Use hmmlearn para HMMs y el módulo estándar subprocess en lugar de los envoltorios CLI de Bio.Application.

Problema: PairwiseAligner devuelve menos alineamientos después de actualizar a 1.86+

Solución: La puntuación de brecha predeterminada cambió de 0 a -1 en 1.86, eliminando alineamientos de empate triviales. Establezca aligner.gap_score = 0 para restaurar el comportamiento anterior si es necesario (consulte references/alignment.md).

Recursos Adicionales

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

cobrapy

Constraint-based metabolic modeling (COBRA). FBA, FVA, gene knockouts, flux sampling, SBML models, for systems biology and metabolic engineering analysis.

Skills relacionados