Communitygithub.com

biopython

Boîte à outils complète pour la biologie moléculaire. Utilisez-la pour la manipulation de séquences, l'analyse de fichiers (FASTA/GenBank/PDB), la phylogénétique, et l'accès programmatique à NCBI/PubMed (Bio.Entrez). Idéale pour le traitement par lots, les pipelines bio-informatiques personnalisés, et l'automatisation BLAST. Pour des requêtes rapides, utilisez gget ; pour une intégration multi-services, utilisez bioservices.

Qu'est-ce que biopython ?

Biopython est une boîte à outils Python complète et gratuite pour la biologie computationnelle, couvrant la manipulation de séquences (ADN, ARN, protéines), l'entrée/sortie de fichiers (FASTA, GenBank, PDB, etc.), l'accès aux bases de données NCBI via Entrez, l'exécution d'analyses BLAST, la bio-informatique structurale (Bio.PDB), la phylogénétique (Bio.Phylo), et des fonctionnalités avancées comme les motifs, la génétique des populations et les analyses de restriction. Cette compétence est idéale pour construire des pipelines bio-informatiques robustes et automatisés, en traitant efficacement de gros volumes de données. La version actuelle est Biopython 1.87, compatible avec Python 3.10-3.14 et PyPy3.10, nécessitant NumPy. Elle est particulièrement utile pour les développeurs et chercheurs en biologie qui souhaitent automatiser des analyses complexes et reproductibles, en s'appuyant sur une documentation détaillée accessible via des fichiers de référence dédiés. Pour les requêtes rapides, il est recommandé d'utiliser gget, et pour une intégration multi-services, bioservices.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Biopython : Biologie Moléculaire Computationnelle en Python

Vue d'ensemble

Biopython est un ensemble complet d'outils Python gratuits pour le calcul biologique. Il offre des fonctionnalités pour la manipulation de séquences, les entrées/sorties de fichiers, l'accès aux bases de données, la bio-informatique structurale, la phylogénétique et de nombreuses autres tâches bio-informatiques. La version actuelle est Biopython 1.87 (publiée le 30 mars 2026). Il prend en charge Python 3.10-3.14 et PyPy3.10, et nécessite NumPy. Biopython 1.87 traite également CVE-2025-68463 dans Bio.Entrez.Parser lors de l'analyse de fichiers non fiables, privilégiez donc la version 1.87+ pour les flux de travail qui analysent du XML Entrez fourni de l'extérieur.

Quand utiliser cette compétence

Utilisez cette compétence lorsque :

  • Vous travaillez avec des séquences biologiques (ADN, ARN ou protéine)
  • Vous lisez, écrivez ou convertissez des formats de fichiers biologiques (FASTA, GenBank, FASTQ, PDB, mmCIF, etc.)
  • Vous accédez aux bases de données NCBI (GenBank, PubMed, Protein, Gene, etc.) via Entrez
  • Vous exécutez des recherches BLAST ou analysez des résultats BLAST
  • Vous effectuez des alignements de séquences (alignements par paires ou multiples)
  • Vous analysez des structures protéiques à partir de fichiers PDB
  • Vous créez, manipulez ou visualisez des arbres phylogénétiques
  • Vous trouvez des motifs de séquence ou analysez des modèles de motifs
  • Vous calculez des statistiques de séquence (contenu GC, poids moléculaire, température de fusion, etc.)
  • Vous effectuez des tâches de bio-informatique structurale
  • Vous travaillez avec des données de génétique des populations
  • Toute autre tâche de biologie moléculaire computationnelle

Capacités de base

Biopython est organisé en sous-packages modulaires, chacun abordant des domaines spécifiques de la bio-informatique :

  1. Manipulation de séquences - Bio.Seq et Bio.SeqIO pour la manipulation de séquences et les entrées/sorties de fichiers
  2. Analyse d'alignement - Bio.Align et Bio.AlignIO pour les alignements de séquences par paires et multiples
  3. Accès aux bases de données - Bio.Entrez pour l'accès programmatique aux bases de données NCBI
  4. Opérations BLAST - Bio.Blast pour l'exécution et l'analyse de recherches BLAST
  5. Bio-informatique structurale - Bio.PDB pour travailler avec des structures protéiques 3D
  6. Phylogénétique - Bio.Phylo pour la manipulation et la visualisation d'arbres phylogénétiques
  7. Fonctionnalités avancées - Motifs, génétique des populations, utilitaires de séquence, etc.

Installation et configuration

Installez la version stable actuelle de Biopython avec une version explicite pour la reproductibilité :

uv pip install "biopython==1.87"

Pour l'accès aux bases de données NCBI, définissez toujours votre adresse e-mail (obligatoire pour NCBI). Pour les logiciels réutilisables, définissez une valeur stable Entrez.tool et enregistrez l'outil/email auprès de NCBI. Pour des limites de taux plus élevées (10 requêtes/s au lieu de 3 requêtes/s), lisez uniquement NCBI_API_KEY à partir de l'environnement — ne codez pas en dur les clés et ne chargez pas de variables d'environnement non liées :

import os
from Bio import Entrez

Entrez.email = "[email protected]"  # obligatoire — utilisez votre véritable e-mail
Entrez.tool = "nom_de_votre_outil"  # facultatif mais recommandé pour les logiciels réutilisables

# Facultatif : inscrivez-vous sur https://www.ncbi.nlm.nih.gov/account/settings/
if api_key := os.environ.get("NCBI_API_KEY"):
    Entrez.api_key = api_key

Utilisation de cette compétence

Cette compétence fournit une documentation complète organisée par domaine fonctionnel. Lorsque vous travaillez sur une tâche, consultez la documentation de référence pertinente :

1. Manipulation de séquences (Bio.Seq & Bio.SeqIO)

Référence : references/sequence_io.md

Utilisez pour :

  • Créer et manipuler des séquences biologiques
  • Lire et écrire des fichiers de séquences (FASTA, GenBank, FASTQ, etc.)
  • Convertir entre formats de fichiers
  • Extraire des séquences de gros fichiers
  • Traduction, transcription et complément inverse de séquences
  • Travailler avec des objets SeqRecord

Exemple rapide :

from Bio import SeqIO

# Lire des séquences à partir d'un fichier FASTA
for record in SeqIO.parse("sequences.fasta", "fasta"):
    print(f"{record.id} : {len(record.seq)} pb")

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

2. Analyse d'alignement (Bio.Align & Bio.AlignIO)

Référence : references/alignment.md

Utilisez pour :

  • Alignement de séquences par paires (global et local)
  • Lire et écrire des alignements de séquences multiples
  • Utiliser des matrices de substitution (BLOSUM, PAM)
  • Calculer des statistiques d'alignement
  • Personnaliser les paramètres d'alignement

Exemple rapide :

from Bio import Align

# Alignement par paires
aligneur = Align.PairwiseAligner()
aligneur.mode = 'global'
alignements = aligneur.align("ACCGGT", "ACGGT")
print(alignements[0])

3. Accès aux bases de données (Bio.Entrez)

Référence : references/databases.md

Utilisez pour :

  • Rechercher dans les bases de données NCBI (PubMed, GenBank, Protein, Gene, etc.)
  • Télécharger des séquences et des enregistrements
  • Récupérer des informations de publication
  • Trouver des enregistrements connexes entre bases de données
  • Téléchargement par lots avec limitation de débit appropriée

Exemple rapide :

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

# Recherche PubMed
handle = Entrez.esearch(db="pubmed", term="biopython", retmax=10)
results = Entrez.read(handle)
handle.close()
print(f"{results['Count']} résultats trouvés")

4. Opérations BLAST (Bio.Blast)

Référence : references/blast.md

Utilisez pour :

  • Exécuter des recherches BLAST via les services web NCBI
  • Exécuter des recherches BLAST locales
  • Analyser la sortie XML de BLAST
  • Filtrer les résultats par valeur E ou identité
  • Extraire les séquences des correspondances

Exemple rapide :

from Bio.Blast import NCBIWWW, NCBIXML

# Exécuter une recherche BLAST
result_handle = NCBIWWW.qblast("blastn", "nt", "ATCGATCGATCG")
blast_record = NCBIXML.read(result_handle)

# Afficher les meilleures correspondances
for alignment in blast_record.alignments[:5]:
    print(f"{alignment.title} : E-value={alignment.hsps[0].expect}")

5. Bio-informatique structurale (Bio.PDB)

Référence : references/structure.md

Utilisez pour :

  • Analyser des fichiers de structure PDB et mmCIF
  • Naviguer dans la hiérarchie des structures protéiques (SMCRA : Structure/Modèle/Chaîne/Résidu/Atome)
  • Calculer des distances, des angles et des angles dièdres
  • Attribution de structure secondaire (DSSP)
  • Superposition de structures et calcul RMSD
  • Extraire des séquences à partir de structures

Exemple rapide :

from Bio.PDB import PDBParser

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

# Calculer la distance entre les carbones alpha
chain = structure[0]["A"]
distance = chain[10]["CA"] - chain[20]["CA"]
print(f"Distance : {distance:.2f} Å")

6. Phylogénétique (Bio.Phylo)

Référence : references/phylogenetics.md

Utilisez pour :

  • Lire et écrire des arbres phylogénétiques (Newick, NEXUS, phyloXML)
  • Construire des arbres à partir de matrices de distance ou d'alignements
  • Manipulation d'arbres (élagage, réenracinement, échellement)
  • Calculer des distances phylogénétiques
  • Créer des arbres de consensus
  • Visualiser des arbres

Exemple rapide :

from Bio import Phylo

# Lire et visualiser un arbre
arbre = Phylo.read("arbre.nwk", "newick")
Phylo.draw_ascii(arbre)

# Calculer une distance
distance = arbre.distance("Espèce_A", "Espèce_B")
print(f"Distance : {distance:.3f}")

7. Fonctionnalités avancées

Référence : references/advanced.md

Utilisez pour :

  • Motifs de séquence (Bio.motifs) - Trouver et analyser des motifs
  • Génétique des populations (Bio.PopGen) - Fichiers GenePop, calculs Fst, tests de Hardy-Weinberg
  • Utilitaires de séquence (Bio.SeqUtils) - Contenu GC, température de fusion, poids moléculaire, analyse des protéines
  • Analyse de restriction (Bio.Restriction) - Trouver des sites de restriction enzymatiques
  • Regroupement (Bio.Cluster) - K-means et regroupement hiérarchique
  • Diagrammes génomiques (GenomeDiagram) - Visualisation de caractéristiques génomiques

Exemple rapide :

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

seq = Seq("ATCGATCGATCG")
print(f"Contenu GC : {gc_fraction(seq):.2%}")
print(f"Poids moléculaire : {molecular_weight(seq, seq_type='DNA'):.2f} g/mol")

Directives générales de flux de travail

Lecture de la documentation

Lorsqu'un utilisateur pose une question sur une tâche spécifique de Biopython :

  1. Identifiez le module pertinent en fonction de la description de la tâche
  2. Lisez le fichier de référence approprié à l'aide de l'outil Lire
  3. Extrayez les modèles de code pertinents et adaptez-les aux besoins spécifiques de l'utilisateur
  4. Combinez plusieurs modules lorsque la tâche l'exige

Exemples de modèles de recherche pour les fichiers de référence :

# Rechercher des informations sur des fonctions spécifiques
rg -n "SeqIO.parse" references/sequence_io.md

# Rechercher des exemples de tâches spécifiques
rg -n "BLAST" references/blast.md

# Rechercher des informations sur des concepts spécifiques
rg -n "alignement" references/alignment.md

Écrire du code Biopython

Suivez ces principes lors de l'écriture de code Biopython :

  1. Importez les modules explicitement

    from Bio import SeqIO, Entrez
    from Bio.Seq import Seq
    
  2. Définissez l'e-mail Entrez lors de l'utilisation des bases de données NCBI ; chargez uniquement NCBI_API_KEY de l'environnement si présente

    import os
    from Bio import Entrez
    
    Entrez.email = "[email protected]"
    Entrez.tool = "nom_de_votre_outil"
    if api_key := os.environ.get("NCBI_API_KEY"):
        Entrez.api_key = api_key
    
  3. Utilisez les formats de fichiers appropriés - Vérifiez quel format convient le mieux à la tâche

    # Formats courants : "fasta", "genbank", "fastq", "clustal", "phylip"
    
  4. Traitez les fichiers correctement - Fermez les handles après utilisation ou utilisez des gestionnaires de contexte

    with open("fichier.fasta") as handle:
        enregistrements = SeqIO.parse(handle, "fasta")
    
  5. Utilisez des itérateurs pour les gros fichiers - Évitez de tout charger en mémoire

    for enregistrement in SeqIO.parse("gros_fichier.fasta", "fasta"):
        # Traiter un enregistrement à la fois
    
  6. Gérez les erreurs avec élégance - Les opérations réseau et l'analyse de fichiers peuvent échouer

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

Modèles courants

Modèle 1 : Récupérer une séquence de GenBank

from Bio import Entrez, SeqIO

Entrez.email = "[email protected]"

# Récupérer la séquence
handle = Entrez.efetch(db="nucleotide", id="EU490707", rettype="gb", retmode="text")
enregistrement = SeqIO.read(handle, "genbank")
handle.close()

print(f"Description : {enregistrement.description}")
print(f"Longueur de la séquence : {len(enregistrement.seq)}")

Modèle 2 : Pipeline d'analyse de séquence

from Bio import SeqIO
from Bio.SeqUtils import gc_fraction

for enregistrement in SeqIO.parse("sequences.fasta", "fasta"):
    # Calculer les statistiques
    gc = gc_fraction(enregistrement.seq)
    longueur = len(enregistrement.seq)

    # Trouver les ORF, traduire, etc.
    proteine = enregistrement.seq.translate()

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

Modèle 3 : BLAST et récupération des meilleures correspondances

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

Entrez.email = "[email protected]"

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

# Obtenir les accessions des meilleures correspondances
accessions = [aln.accession for aln in blast_record.alignments[:5]]

# Récupérer les séquences
for acc in accessions:
    handle = Entrez.efetch(db="nucleotide", id=acc, rettype="fasta", retmode="text")
    enregistrement = SeqIO.read(handle, "fasta")
    handle.close()
    print(f">{enregistrement.description}")

Modèle 4 : Construire un arbre phylogénétique à partir de séquences

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

# Lire l'alignement
alignment = AlignIO.read("alignment.fasta", "fasta")

# Calculer les distances
calculateur = DistanceCalculator("identity")
dm = calculateur.get_distance(alignment)

# Construire l'arbre
constructeur = DistanceTreeConstructor()
arbre = constructeur.nj(dm)

# Visualiser
Phylo.draw_ascii(arbre)

Meilleures pratiques

  1. Lisez toujours la documentation de référence pertinente avant d'écrire du code
  2. Utilisez grep pour rechercher dans les fichiers de référence des fonctions ou exemples spécifiques
  3. Validez les formats de fichiers avant de les analyser
  4. Gérez les données manquantes avec élégance - Tous les enregistrements n'ont pas tous les champs
  5. Mettez en cache les données téléchargées - Ne téléchargez pas les mêmes séquences à plusieurs reprises
  6. Respectez les limites de débit de NCBI - Utilisez des clés API, des valeurs d'outil/email enregistrées pour les logiciels réutilisables, et l'historique/le traitement par lots d'Entrez pour les grands travaux
  7. Testez avec de petits ensembles de données avant de traiter de gros fichiers
  8. Maintenez Biopython à jour pour bénéficier des dernières fonctionnalités et corrections de bugs
  9. Utilisez des tables de codes génétiques appropriées pour la traduction
  10. Documentez les paramètres d'analyse pour la reproductibilité

Résolution des problèmes courants

Problème : "No handlers could be found for logger 'Bio.Entrez'"

Solution : Ce n'est qu'un avertissement. Définissez Entrez.email pour le supprimer.

Problème : "HTTP Error 400" de NCBI

Solution : Vérifiez que les ID/accessions sont valides et correctement formatés.

Problème : "ValueError: EOF" lors de l'analyse de fichiers

Solution : Vérifiez que le format du fichier correspond à la chaîne de format spécifiée.

Problème : L'alignement échoue avec "sequences are not the same length"

Solution : Assurez-vous que les séquences sont alignées avant d'utiliser AlignIO ou MultipleSeqAlignment.

Problème : Les recherches BLAST sont lentes

Solution : Utilisez BLAST local pour les recherches à grande échelle, ou mettez en cache les résultats.

Problème : Avertissements de l'analyseur PDB

Solution : Utilisez PDBParser(QUIET=True) pour supprimer les avertissements, ou examinez la qualité de la structure.

Problème : ImportError pour Bio.HMM, Bio.MarkovModel ou Bio.Application

Solution : Ces modules ont été supprimés dans Biopython 1.86. Utilisez hmmlearn pour les HMM et le module subprocess de la bibliothèque standard au lieu des wrappers CLI de Bio.Application.

Problème : PairwiseAligner renvoie moins d'alignements après la mise à niveau vers 1.86+

Solution : Le score de pénalité par défaut est passé de 0 à -1 dans la version 1.86, éliminant ainsi les alignements triviaux. Définissez aligneur.gap_score = 0 pour restaurer l'ancien comportement si nécessaire (voir references/alignment.md).

Ressources supplémentaires

[Ceci est une traduction du contenu original. Le contenu original a pu être tronqué.]

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 associés